@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
165 lines • 5.8 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.createAddressResource = createAddressResource;
exports.createAddressDataResource = createAddressDataResource;
const zod_1 = require("zod");
const schemas_1 = require("../schemas");
const schemas_2 = require("../../../core/schemas");
const UnknownResponseSchema = (0, schemas_2.BaseResponseSchema)(zod_1.z.unknown());
const UnknownArrayResponseSchema = (0, schemas_2.BaseResponseSchema)(zod_1.z.array(zod_1.z.unknown()));
/**
* Creates the address resource methods
* OpenAPI Path: /address → address.*
* @description Address management operations for shipping and delivery configuration
*/
function createAddressResource(executeRequest, createListMethod) {
const listMethod = createListMethod('/address', schemas_1.AddressListParamsSchema, UnknownArrayResponseSchema);
return {
/**
* List all addresses with filtering capabilities
* @fullPath api.p21Core.address.list
* @service p21-core
* @domain address-and-shipping-management
* @dataMethod addressData.list
* @discoverable true
*/
list: listMethod,
/**
* Get address details by ID
* @fullPath api.p21Core.address.get
* @service p21-core
* @domain address-and-shipping-management
* @dataMethod addressData.get
* @discoverable true
*/
get: async (params) => {
return executeRequest({
method: 'GET',
path: '/address/{id}',
responseSchema: UnknownResponseSchema,
}, undefined, { id: params.id });
},
/**
* Corporate address operations
*/
corpAddress: {
/**
* Get corporate address list
* @fullPath api.p21Core.address.corpAddress.list
* @service p21-core
* @domain address-and-shipping-management
* @dataMethod addressData.corpAddress.list
* @discoverable true
*/
list: async (params) => {
return executeRequest({
method: 'GET',
path: '/address/{id}/corp-address',
paramsSchema: schemas_1.AddressCorpListParamsSchema,
responseSchema: UnknownArrayResponseSchema,
}, params, { id: params.id });
},
},
/**
* Default address operations
*/
default: {
/**
* Set address as default shipping method
* @fullPath api.p21Core.address.default.get
* @service p21-core
* @domain address-and-shipping-management
* @dataMethod addressData.default.get
* @discoverable true
*/
get: async (params) => {
return executeRequest({
method: 'GET',
path: '/address/{id}/default',
responseSchema: UnknownResponseSchema,
}, undefined, { id: params.id });
},
},
/**
* Address enable/disable operations
*/
enable: {
/**
* Enable or disable address as shipping method
* @fullPath api.p21Core.address.enable.get
* @service p21-core
* @domain address-and-shipping-management
* @dataMethod addressData.enable.get
* @discoverable true
*/
get: async (params) => {
return executeRequest({
method: 'GET',
path: '/address/{id}/enable',
paramsSchema: schemas_1.AddressEnableParamsSchema,
responseSchema: UnknownResponseSchema,
}, params, { id: params.id });
},
},
/**
* Address refresh operations
*/
refresh: {
/**
* Trigger data refresh for address synchronization
* @fullPath api.p21Core.address.refresh.get
* @service p21-core
* @domain address-and-shipping-management
* @dataMethod addressData.refresh.get
* @discoverable true
*/
get: async () => {
return executeRequest({
method: 'GET',
path: '/address/refresh',
responseSchema: UnknownResponseSchema,
});
},
},
};
}
/**
* Creates the addressData resource methods (data-only versions)
*/
function createAddressDataResource(address) {
return {
list: async (params) => {
const response = await address.list(params);
return response.data;
},
get: async (params) => {
const response = await address.get(params);
return response.data;
},
corpAddress: {
list: async (params) => {
const response = await address.corpAddress.list(params);
return response.data;
},
},
default: {
get: async (params) => {
const response = await address.default.get(params);
return response.data;
},
},
enable: {
get: async (params) => {
const response = await address.enable.get(params);
return response.data;
},
},
refresh: {
get: async () => {
const response = await address.refresh.get();
return response.data;
},
},
};
}
//# sourceMappingURL=address.js.map