@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
161 lines • 5.61 kB
JavaScript
import { z } from 'zod';
import { AddressListParamsSchema, AddressCorpListParamsSchema, AddressEnableParamsSchema, } from '../schemas';
import { BaseResponseSchema } from '../../../core/schemas';
const UnknownResponseSchema = BaseResponseSchema(z.unknown());
const UnknownArrayResponseSchema = BaseResponseSchema(z.array(z.unknown()));
/**
* Creates the address resource methods
* OpenAPI Path: /address → address.*
* @description Address management operations for shipping and delivery configuration
*/
export function createAddressResource(executeRequest, createListMethod) {
const listMethod = createListMethod('/address', 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: 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: 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)
*/
export 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