UNPKG

@simpleapps-com/augur-api

Version:

TypeScript client library for Augur microservices API endpoints

163 lines 6.98 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createDistributorsResource = createDistributorsResource; exports.createDistributorsDataResource = createDistributorsDataResource; const zod_1 = require("zod"); const schemas_1 = require("../schemas"); /** * Creates the distributors resource methods * OpenAPI Path: /distributors → distributors.* * @description Methods for CRUD operations on distributors and supplier relationships */ function createDistributorsResource(executeRequest) { const resource = { /** * List distributors with filtering * @description Returns distributors for a customer with optional status filtering and pagination * @param params Filtering and pagination parameters (customerId is required) * @returns Array of distributor objects * @throws ValidationError When parameters are invalid or response is malformed */ list: async (params) => { return executeRequest({ method: 'GET', path: '/distributors', paramsSchema: schemas_1.DistributorListParamsSchema, responseSchema: schemas_1.DistributorListResponseSchema, }, params); }, /** * Get distributor details by ID * @description Returns detailed information for a specific distributor * @param distributorsUid Distributor unique identifier * @returns Distributor details * @throws ValidationError When response is malformed */ get: async (distributorsUid) => { return executeRequest({ method: 'GET', path: `/distributors/${distributorsUid}`, responseSchema: schemas_1.DistributorResponseSchema, }, undefined); }, /** * Create a new distributor * @description Creates a new distributor with contact information * @param request Distributor creation data * @returns Created distributor information * @throws ValidationError When request is invalid or response is malformed */ create: async (request) => { return executeRequest({ method: 'POST', path: '/distributors', paramsSchema: schemas_1.CreateDistributorRequestSchema, responseSchema: schemas_1.DistributorResponseSchema, }, request); }, /** * Update distributor information * @description Updates distributor details with provided data * @param distributorsUid Distributor unique identifier * @param request Distributor update data * @returns Updated distributor information * @throws ValidationError When request is invalid or response is malformed */ update: async (distributorsUid, request) => { return executeRequest({ method: 'PUT', path: `/distributors/${distributorsUid}`, paramsSchema: schemas_1.UpdateDistributorRequestSchema, responseSchema: schemas_1.DistributorResponseSchema, }, request); }, /** * Soft delete a distributor * @description Marks distributor as deleted without removing data * @param distributorsUid Distributor unique identifier * @returns Boolean indicating successful deletion * @throws ValidationError When response is malformed */ delete: async (distributorsUid) => { await executeRequest({ method: 'DELETE', path: `/distributors/${distributorsUid}`, responseSchema: zod_1.z.unknown(), }); return true; }, /** * Enable, disable, or delete a distributor * @description Changes distributor status using status codes * @param distributorsUid Distributor unique identifier * @param request Status change request with new status code * @returns Updated distributor information * @throws ValidationError When request is invalid or response is malformed */ enable: async (distributorsUid, request) => { return executeRequest({ method: 'PUT', path: '/distributors/{distributorsUid}/enable', paramsSchema: schemas_1.EnableDistributorRequestSchema, responseSchema: schemas_1.DistributorResponseSchema, }, request, { distributorsUid: String(distributorsUid) }); }, /** * Distributor products endpoints * @description Methods for managing products associated with distributors */ products: { /** * Create product associated with distributor * @description Creates a new product and associates it with a distributor * @param distributorsUid Distributor unique identifier * @param request Product creation data * @returns Created product information * @throws ValidationError When request is invalid or response is malformed */ create: async (distributorsUid, request) => { return executeRequest({ method: 'POST', path: '/distributors/{distributorsUid}/products', paramsSchema: schemas_1.CreateProductRequestSchema, responseSchema: schemas_1.ProductResponseSchema, }, request, { distributorsUid: String(distributorsUid) }); }, }, }; return resource; } /** * Creates the distributorsData resource methods (data-only versions) */ function createDistributorsDataResource(distributors) { return { list: async (params) => { const response = await distributors.list(params); return response.data; }, get: async (distributorsUid) => { const response = await distributors.get(distributorsUid); return response.data; }, create: async (request) => { const response = await distributors.create(request); return response.data; }, update: async (distributorsUid, request) => { const response = await distributors.update(distributorsUid, request); return response.data; }, enable: async (distributorsUid, request) => { const response = await distributors.enable(distributorsUid, request); return response.data; }, products: { create: async (distributorsUid, request) => { const response = await distributors.products.create(distributorsUid, request); return response.data; }, }, }; } //# sourceMappingURL=distributors.js.map