@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
106 lines • 4.81 kB
JavaScript
import { TransCompanyParamsSchema, TransCompanyCreateParamsSchema, TransCompanyResponseSchema, } from '../schemas';
/**
* Creates the transCompany resource methods
* OpenAPI Path: /trans-company → transCompany.*
* @description Company management and CRUD operations following OpenAPI path mirroring pattern
*/
export function createTransCompanyResource(executeRequest) {
return {
/**
* Create new transaction company - OpenAPI Path: /trans-company
* @description Creates a new company entity within the P21 transactional system. Returns the created company details for verification and further operations.
*
* @fullPath api.p21Apis.transCompany.create
* @service p21-apis
* @domain company-management
* @dataMethod transCompanyData.create
* @discoverable true
* @searchTerms ["create company", "new company", "company creation", "add company"]
* @relatedEndpoints ["api.p21Apis.transCompany.get", "api.p21Apis.transCompany.update", "api.p21Core.company.list"]
* @commonPatterns ["Create new company", "Add company to system", "Company setup", "Business entity creation"]
* @workflow ["company-setup", "business-management", "corporate-structure", "entity-management"]
* @prerequisites ["Valid site ID", "Company creation permissions", "Authentication"]
* @nextSteps ["api.p21Apis.transCompany.get for verification", "api.p21Core.company for company operations"]
* @businessRules ["Site-scoped company creation", "Unique company constraints", "Corporate hierarchy support"]
* @functionalArea "company-management"
* @performance "Real-time company creation with immediate availability"
*/
create: async (params) => {
return executeRequest({
method: 'POST',
path: '/trans-company',
paramsSchema: TransCompanyCreateParamsSchema,
responseSchema: TransCompanyResponseSchema,
}, params || {});
},
/**
* Get transaction company details by company UID - OpenAPI Path: /trans-company/{companyUid}
*/
get: async (companyUid, params) => {
return executeRequest({
method: 'GET',
path: `/trans-company/${companyUid}`,
paramsSchema: TransCompanyParamsSchema,
responseSchema: TransCompanyResponseSchema,
}, { companyUid, ...params }, { companyUid: String(companyUid) });
},
/**
* Update transaction company by company UID - OpenAPI Path: /trans-company/{companyUid}
*/
update: async (companyUid, params) => {
return executeRequest({
method: 'PUT',
path: `/trans-company/${companyUid}`,
paramsSchema: TransCompanyParamsSchema,
responseSchema: TransCompanyResponseSchema,
}, { companyUid, ...params }, { companyUid: String(companyUid) });
},
/**
* Delete transaction company by company UID - OpenAPI Path: /trans-company/{companyUid}
*/
delete: async (companyUid, params) => {
return executeRequest({
method: 'DELETE',
path: `/trans-company/${companyUid}`,
paramsSchema: TransCompanyParamsSchema,
responseSchema: TransCompanyResponseSchema,
}, { companyUid, ...params }, { companyUid: String(companyUid) });
},
};
}
/**
* Creates the transCompanyData resource methods (data-only versions)
*/
export function createTransCompanyDataResource(transCompany) {
return {
/**
* Create company and return only data without response metadata
*/
create: async (params) => {
const response = await transCompany.create(params);
return response.data;
},
/**
* Get company and return only data without response metadata
*/
get: async (companyUid, params) => {
const response = await transCompany.get(companyUid, params);
return response.data;
},
/**
* Update company and return only data without response metadata
*/
update: async (companyUid, params) => {
const response = await transCompany.update(companyUid, params);
return response.data;
},
/**
* Delete company and return only data without response metadata
*/
delete: async (companyUid, params) => {
const response = await transCompany.delete(companyUid, params);
return response.data;
},
};
}
//# sourceMappingURL=trans-company.js.map