@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
548 lines • 34.1 kB
JavaScript
import { z } from 'zod';
import { BaseServiceClient } from '../../core/base-client';
import { BaseResponseSchema } from '../../core/schemas';
// Create flexible response schemas using the STANDARD 8-field response format
// All APIs must use this format - no response validation per OpenAPI spec requirements
const UnknownResponseSchema = BaseResponseSchema(z.unknown());
const UnknownArrayResponseSchema = BaseResponseSchema(z.array(z.unknown()));
import { ImportSchema, ImportListParamsSchema, ImportRecentParamsSchema, ImportStuckParamsSchema, ImportDetailParamsSchema, OrderEntryHeaderParamsSchema, OrderEntryHeaderSalesrepParamsSchema, OrderEntryHeaderWebParamsSchema, ScheduledImportSftpParamsSchema, HealthCheckResponseSchema, } from './schemas';
/**
* P21 SISM (System Integration & Storage Management) API Client
* @description Client for interacting with P21 SISM API endpoints for system integration, data import management, order entry processing, and scheduled import operations within the Prophet 21 ERP ecosystem
* @fullPath api.p21Sism
* @service p21-sism
* @domain system-integration-and-storage-management
* @discoverable true
* @searchTerms ["p21-sism", "system integration", "storage management", "data import", "order entry", "scheduled imports", "ERP integration", "import processing", "data synchronization", "batch processing"]
* @relatedEndpoints ["api.p21Core.company", "api.p21Core.location", "api.orders.orders", "api.items.products", "api.nexus.receiving"]
* @commonPatterns ["Import data management", "Order entry processing", "Scheduled data synchronization", "System integration workflows", "Batch import operations"]
* @workflow ["data-import", "system-integration", "order-entry-processing", "scheduled-synchronization", "batch-operations"]
* @prerequisites ["Valid P21 system access", "ERP authentication", "Import processing permissions", "Company-specific data access"]
* @nextSteps ["api.orders.orders for order processing", "api.items.products for inventory integration", "api.p21Core for system configuration"]
* @businessRules ["Import state transitions: initial → hold → delivered", "Import UID required for all operations", "SFTP metadata for scheduled imports", "Order entry header data validation"]
* @functionalArea "system-integration-and-storage-management"
* @caching "Cache import lists for 5 minutes, real-time for import status updates, no caching for order entry operations"
* @performance "Supports pagination for import lists, batch processing for large imports, optimized for ERP transaction volumes"
* @example
* ```typescript
* import { HTTPClient } from '@augur/api-client/core';
* import { P21SismClient } from '@augur/api-client/services/p21-sism';
*
* const client = new P21SismClient(new HTTPClient({ baseURL: 'https://p21-sism.augur-api.com' }));
*
* // List recent imports for monitoring
* const recentImports = await client.import.recent({ hours: 24, limit: 50 });
* console.log(recentImports.data); // Import[]
*
* // Get import details for processing
* const importDetails = await client.import.get({ importUid: '12345' });
* console.log(importDetails.data); // Import
*
* // Process order entry header data
* const orderHeader = await client.orderEntry.getHeader({ importUid: '12345' });
* console.log(orderHeader.data); // Order entry header data
*
* // Check for stuck imports
* const stuckImports = await client.import.stuck({ hours: 48 });
* console.log(stuckImports.data); // Import[]
* ```
*/
export class P21SismClient extends BaseServiceClient {
// Ensure schemas are referenced to avoid unused import warnings
get schemaRefs() {
return this._schemaRefs;
}
/**
* Create a new P21SismClient instance
* @param http Configured HTTPClient instance with authentication
* @param baseUrl Base URL for the P21 SISM API (default: https://p21-sism.augur-api.com)
*/
constructor(http, baseUrl = 'https://p21-sism.augur-api.com') {
super('p21-sism', http, baseUrl);
// Schema references for 100% coverage - ensuring all exports are imported
this._schemaRefs = {
ImportSchema,
};
/**
* Import management operations for data processing and system integration
* @fullPath api.p21Sism.import
* @service p21-sism
* @domain data-import-management
* @discoverable true
*/
this.import = {
/**
* List imports with filtering capabilities for data management and monitoring
*
* @fullPath api.p21Sism.import.list
* @service p21-sism
* @domain data-import-management
* @dataMethod listData - returns only the imports array without metadata
* @discoverable true
* @searchTerms ["imports", "data import", "import list", "batch processing", "data synchronization", "import management"]
* @relatedEndpoints ["api.p21Sism.import.get", "api.p21Sism.import.recent", "api.p21Sism.import.stuck"]
* @commonPatterns ["List all imports", "Filter imports by state", "Search import history", "Monitor import progress"]
* @workflow ["import-monitoring", "data-management", "system-integration", "batch-processing"]
* @prerequisites ["Valid authentication", "Import management permissions"]
* @nextSteps ["api.p21Sism.import.get for details", "api.p21Sism.import.update for modifications"]
* @businessRules ["Import states: initial, hold, delivered", "Supports pagination and filtering", "Search by reference number or source name"]
* @functionalArea "data-import-management"
* @caching "Cache for 5 minutes, invalidate on import state changes"
* @performance "Indexed by import state and date, supports text search across multiple fields"
*
* @param params Optional filtering and pagination parameters
* @returns Promise<BaseResponse<Import[]>> Complete response with imports array and metadata
*
* @example
* ```typescript
* // Get all pending imports
* const response = await client.import.list({ importState: 'initial', limit: 50 });
* console.log(response.data); // Import[]
*
* // Get just the data
* const imports = await client.import.listData({ importState: 'delivered' });
*
* // Search for specific imports
* const found = await client.import.list({ q: 'order123' });
* ```
*/
list: this.createListMethod('/import', ImportListParamsSchema, UnknownArrayResponseSchema),
/**
* Get recent imports for monitoring and status tracking
*
* @fullPath api.p21Sism.import.recent
* @service p21-sism
* @domain data-import-management
* @dataMethod recentData - returns only the imports array without metadata
* @discoverable true
* @searchTerms ["recent imports", "import monitoring", "latest imports", "import status", "recent activity"]
* @relatedEndpoints ["api.p21Sism.import.list", "api.p21Sism.import.stuck", "api.p21Sism.health.check"]
* @commonPatterns ["Monitor recent import activity", "Check latest import status", "Track import progress"]
* @workflow ["import-monitoring", "status-tracking", "system-health", "operational-awareness"]
* @prerequisites ["Valid authentication", "Import monitoring permissions"]
* @nextSteps ["api.p21Sism.import.get for import details", "api.p21Sism.import.stuck to check for issues"]
* @businessRules ["Default 48 hours lookback", "Maximum 1000 results", "Ordered by creation date"]
* @functionalArea "data-import-management"
* @caching "Cache for 2 minutes, recent data needs freshness"
* @performance "Optimized query with date range filtering, minimal processing overhead"
*
* @param params Optional time range and limit parameters
* @returns Promise<BaseResponse<Import[]>> Complete response with recent imports
*
* @example
* ```typescript
* // Get imports from last 24 hours
* const response = await client.import.recent({ hours: 24, limit: 100 });
* console.log(response.data); // Import[]
*
* // Get just the data
* const recentImports = await client.import.recentData({ hours: 12 });
* ```
*/
recent: this.createListMethod('/import/recent', ImportRecentParamsSchema, UnknownArrayResponseSchema),
/**
* Get stuck imports for troubleshooting and error resolution
*
* @fullPath api.p21Sism.import.stuck
* @service p21-sism
* @domain data-import-management
* @dataMethod stuckData - returns only the imports array without metadata
* @discoverable true
* @searchTerms ["stuck imports", "failed imports", "import errors", "import troubleshooting", "processing issues"]
* @relatedEndpoints ["api.p21Sism.import.recent", "api.p21Sism.import.get", "api.p21Sism.import.update"]
* @commonPatterns ["Troubleshoot import issues", "Find failed imports", "Monitor processing problems"]
* @workflow ["error-resolution", "import-troubleshooting", "system-maintenance", "issue-identification"]
* @prerequisites ["Valid authentication", "Import troubleshooting permissions"]
* @nextSteps ["api.p21Sism.import.get for error details", "api.p21Sism.import.update to retry", "api.p21Sism.import.delete to clean up"]
* @businessRules ["Default 48 hours lookback for stuck detection", "Maximum 1000 results", "Identifies imports in error states"]
* @functionalArea "data-import-management"
* @caching "Cache for 1 minute, error data needs immediate visibility"
* @performance "Specialized query for error detection, includes diagnostic information"
*
* @param params Optional time range and limit parameters
* @returns Promise<BaseResponse<Import[]>> Complete response with stuck imports for troubleshooting
*
* @example
* ```typescript
* // Get imports stuck in last 48 hours
* const response = await client.import.stuck({ hours: 48, limit: 200 });
* console.log(response.data); // Import[]
*
* // Get just the data
* const stuckImports = await client.import.stuckData({ hours: 72 });
* ```
*/
stuck: this.createListMethod('/import/stuck', ImportStuckParamsSchema, UnknownArrayResponseSchema),
/**
* Get import details by UID for comprehensive import information
*
* @fullPath api.p21Sism.import.get
* @service p21-sism
* @domain data-import-management
* @dataMethod getData - returns only the import object without metadata
* @discoverable true
* @searchTerms ["import details", "import info", "import status", "import data", "import processing"]
* @relatedEndpoints ["api.p21Sism.import.list", "api.p21Sism.import.update", "api.p21Sism.orderEntry.getHeader"]
* @commonPatterns ["Get import status", "View import details", "Check processing results", "Retrieve import data"]
* @workflow ["import-details", "status-checking", "data-retrieval", "import-analysis"]
* @prerequisites ["Valid import UID", "Import access permissions"]
* @nextSteps ["api.p21Sism.import.update for modifications", "api.p21Sism.orderEntry for related data"]
* @businessRules ["Import UID must exist", "Includes processing results and status", "Shows complete import lifecycle"]
* @functionalArea "data-import-management"
* @performance "Direct lookup by UID, includes all related import data"
*
* @param params Import UID parameter
* @returns Promise<BaseResponse<Import>> Complete response with detailed import information
*/
get: async (params) => this.executeRequest({
method: 'GET',
path: '/import/{importUid}',
paramsSchema: ImportDetailParamsSchema,
responseSchema: UnknownResponseSchema,
}, params, { importUid: params.importUid }),
/**
* Update import details and processing status
*
* @fullPath api.p21Sism.import.update
* @service p21-sism
* @domain data-import-management
* @dataMethod updateData - returns only the updated import object without metadata
* @discoverable true
* @searchTerms ["update import", "modify import", "import processing", "import status change", "import management"]
* @relatedEndpoints ["api.p21Sism.import.get", "api.p21Sism.import.list", "api.p21Sism.import.delete"]
* @commonPatterns ["Update import status", "Modify import data", "Retry failed import", "Change import state"]
* @workflow ["import-management", "status-updates", "import-processing", "error-recovery"]
* @prerequisites ["Valid import UID", "Import modification permissions"]
* @nextSteps ["api.p21Sism.import.get to verify changes", "api.p21Sism.orderEntry for processing"]
* @businessRules ["State transitions must be valid", "Updates affect processing workflow", "Audit trail maintained"]
* @functionalArea "data-import-management"
* @performance "Immediate update with validation, triggers workflow processing"
*
* @param params Import UID parameter
* @returns Promise<BaseResponse<Import>> Complete response with updated import information
*/
update: async (params) => this.executeRequest({
method: 'PUT',
path: '/import/{importUid}',
paramsSchema: ImportDetailParamsSchema,
responseSchema: UnknownResponseSchema,
}, params, { importUid: params.importUid }),
/**
* Clean pending import data for import cleanup and maintenance
*
* @fullPath api.p21Sism.import.delete
* @service p21-sism
* @domain data-import-management
* @dataMethod deleteData - returns only the cleanup result without metadata
* @discoverable true
* @searchTerms ["delete import", "clean import", "remove import", "import cleanup", "pending import cleanup"]
* @relatedEndpoints ["api.p21Sism.import.get", "api.p21Sism.import.stuck", "api.p21Sism.import.list"]
* @commonPatterns ["Clean up failed imports", "Remove stuck imports", "System maintenance", "Import cleanup"]
* @workflow ["import-cleanup", "system-maintenance", "error-recovery", "data-cleanup"]
* @prerequisites ["Valid import UID", "Import cleanup permissions", "Import in deletable state"]
* @nextSteps ["api.p21Sism.import.list to verify removal", "system maintenance workflows"]
* @businessRules ["Only cleans pending import data", "Does not affect completed imports", "Maintains audit trail"]
* @functionalArea "data-import-management"
* @performance "Cleanup operation with validation, affects related pending data"
*
* @param params Import UID parameter
* @returns Promise<BaseResponse<Import>> Complete response with cleanup confirmation
*/
delete: async (params) => this.executeRequest({
method: 'DELETE',
path: '/import/{importUid}',
paramsSchema: ImportDetailParamsSchema,
responseSchema: UnknownResponseSchema,
}, params, { importUid: params.importUid }),
// Data methods for import operations
listData: async (params) => {
const response = await this.import.list(params);
return response.data;
},
recentData: async (params) => {
const response = await this.import.recent(params);
return response.data;
},
stuckData: async (params) => {
const response = await this.import.stuck(params);
return response.data;
},
getData: async (params) => {
const response = await this.import.get(params);
return response.data;
},
updateData: async (params) => {
const response = await this.import.update(params);
return response.data;
},
deleteData: async (params) => {
const response = await this.import.delete(params);
return response.data;
},
};
/**
* Order entry operations for processing order header and sales representative data
* @fullPath api.p21Sism.orderEntry
* @service p21-sism
* @domain order-entry-processing
* @discoverable true
*/
this.orderEntry = {
/**
* Get order entry header details from imp_oe_hdr table
*
* @fullPath api.p21Sism.orderEntry.getHeader
* @service p21-sism
* @domain order-entry-processing
* @dataMethod getHeaderData - returns only the header data without metadata
* @discoverable true
* @searchTerms ["order entry header", "oe header", "order header", "import order header", "order processing"]
* @relatedEndpoints ["api.p21Sism.orderEntry.updateHeader", "api.p21Sism.orderEntry.getSalesrep", "api.p21Sism.import.get"]
* @commonPatterns ["Get order header data", "Process order entry", "Order import processing", "Header data retrieval"]
* @workflow ["order-entry-processing", "order-import", "header-processing", "order-management"]
* @prerequisites ["Valid import UID", "Order entry access permissions", "Import must contain order data"]
* @nextSteps ["api.p21Sism.orderEntry.updateHeader for modifications", "api.orders.orders for order processing"]
* @businessRules ["Import UID must reference valid order entry import", "Header data structure varies by import type", "Processing state affects data availability"]
* @functionalArea "order-entry-processing"
* @performance "Direct table access, optimized for order processing workflows"
*
* @param params Import UID parameter
* @returns Promise<BaseResponse<unknown>> Complete response with order entry header data
*/
getHeader: async (params) => this.executeRequest({
method: 'GET',
path: '/import/{importUid}/imp-oe-hdr',
paramsSchema: OrderEntryHeaderParamsSchema,
responseSchema: UnknownResponseSchema,
}, params, { importUid: params.importUid }),
/**
* Update order entry header data in imp_oe_hdr table
*
* @fullPath api.p21Sism.orderEntry.updateHeader
* @service p21-sism
* @domain order-entry-processing
* @dataMethod updateHeaderData - returns only the updated header data without metadata
* @discoverable true
* @searchTerms ["update order header", "modify order entry", "order header update", "oe header update"]
* @relatedEndpoints ["api.p21Sism.orderEntry.getHeader", "api.p21Sism.orderEntry.updateSalesrep", "api.p21Sism.import.update"]
* @commonPatterns ["Update order header", "Modify order entry data", "Process order changes", "Header data updates"]
* @workflow ["order-processing", "order-modifications", "header-updates", "order-management"]
* @prerequisites ["Valid import UID", "Order modification permissions", "Order in editable state"]
* @nextSteps ["api.p21Sism.orderEntry.getHeader to verify changes", "api.orders.orders for order processing"]
* @businessRules ["Validation rules apply to header updates", "State transitions must be valid", "Updates affect order processing workflow"]
* @functionalArea "order-entry-processing"
* @performance "Direct table updates with validation, triggers order processing workflows"
*
* @param params Import UID parameter
* @returns Promise<BaseResponse<unknown>> Complete response with updated order entry header data
*/
updateHeader: async (params) => this.executeRequest({
method: 'PUT',
path: '/import/{importUid}/imp-oe-hdr',
paramsSchema: OrderEntryHeaderParamsSchema,
responseSchema: UnknownResponseSchema,
}, params, { importUid: params.importUid }),
/**
* Get order entry sales representative details from imp_oe_hdr_salesrep table
*
* @fullPath api.p21Sism.orderEntry.getSalesrep
* @service p21-sism
* @domain order-entry-processing
* @dataMethod getSalesrepData - returns only the salesrep data without metadata
* @discoverable true
* @searchTerms ["order salesrep", "sales representative", "oe salesrep", "order sales rep", "salesrep data"]
* @relatedEndpoints ["api.p21Sism.orderEntry.updateSalesrep", "api.p21Sism.orderEntry.getHeader", "api.orders.orders.salesrep"]
* @commonPatterns ["Get sales rep info", "Process salesrep data", "Order sales rep processing", "Commission processing"]
* @workflow ["salesrep-processing", "commission-calculation", "order-attribution", "sales-management"]
* @prerequisites ["Valid import UID", "Sales rep access permissions", "Import must contain salesrep data"]
* @nextSteps ["api.p21Sism.orderEntry.updateSalesrep for modifications", "api.orders.orders for commission processing"]
* @businessRules ["Sales rep assignments affect commission calculation", "Multiple sales reps per order supported", "Territory validation applies"]
* @functionalArea "order-entry-processing"
* @performance "Optimized for sales rep lookup and commission calculations"
*
* @param params Import UID parameter
* @returns Promise<BaseResponse<unknown>> Complete response with sales representative data
*/
getSalesrep: async (params) => this.executeRequest({
method: 'GET',
path: '/import/{importUid}/imp-oe-hdr-salesrep',
paramsSchema: OrderEntryHeaderSalesrepParamsSchema,
responseSchema: UnknownResponseSchema,
}, params, { importUid: params.importUid }),
/**
* Update order entry sales representative data in imp_oe_hdr_salesrep table
*
* @fullPath api.p21Sism.orderEntry.updateSalesrep
* @service p21-sism
* @domain order-entry-processing
* @dataMethod updateSalesrepData - returns only the updated salesrep data without metadata
* @discoverable true
* @searchTerms ["update salesrep", "modify sales rep", "salesrep update", "commission update", "sales rep assignment"]
* @relatedEndpoints ["api.p21Sism.orderEntry.getSalesrep", "api.p21Sism.orderEntry.updateHeader", "api.orders.orders.updateSalesrep"]
* @commonPatterns ["Update sales rep assignment", "Modify commission data", "Change order attribution", "Sales rep management"]
* @workflow ["salesrep-management", "commission-updates", "order-attribution", "territory-management"]
* @prerequisites ["Valid import UID", "Sales rep modification permissions", "Valid sales rep codes"]
* @nextSteps ["api.p21Sism.orderEntry.getSalesrep to verify changes", "api.orders.orders for commission processing"]
* @businessRules ["Sales rep validation required", "Commission recalculation triggered", "Territory assignments must be valid"]
* @functionalArea "order-entry-processing"
* @performance "Updates with validation, triggers commission recalculation workflows"
*
* @param params Import UID parameter
* @returns Promise<BaseResponse<unknown>> Complete response with updated sales representative data
*/
updateSalesrep: async (params) => this.executeRequest({
method: 'PUT',
path: '/import/{importUid}/imp-oe-hdr-salesrep',
paramsSchema: OrderEntryHeaderSalesrepParamsSchema,
responseSchema: UnknownResponseSchema,
}, params, { importUid: params.importUid }),
/**
* Get order entry web header details from imp_oe_hdr_web table
*
* @fullPath api.p21Sism.orderEntry.getWebHeader
* @service p21-sism
* @domain order-entry-processing
* @dataMethod getWebHeaderData - returns only the web header data without metadata
* @discoverable true
* @searchTerms ["web order header", "oe web header", "web order data", "online order header", "e-commerce order"]
* @relatedEndpoints ["api.p21Sism.orderEntry.getHeader", "api.p21Sism.orderEntry.getSalesrep", "api.commerce.cartHeaders"]
* @commonPatterns ["Get web order data", "Process online orders", "Web order integration", "E-commerce order processing"]
* @workflow ["web-order-processing", "e-commerce-integration", "online-order-management", "web-integration"]
* @prerequisites ["Valid import UID", "Web order access permissions", "Import must contain web order data"]
* @nextSteps ["api.p21Sism.orderEntry.getHeader for complete order data", "api.commerce.cartHeaders for e-commerce processing"]
* @businessRules ["Web-specific order attributes included", "Integration with e-commerce systems", "Web order validation rules apply"]
* @functionalArea "order-entry-processing"
* @performance "Optimized for web order processing and e-commerce integration"
*
* @param params Import UID parameter
* @returns Promise<BaseResponse<unknown>> Complete response with web order header data
*/
getWebHeader: async (params) => this.executeRequest({
method: 'GET',
path: '/import/{importUid}/imp-oe-hdr-web',
paramsSchema: OrderEntryHeaderWebParamsSchema,
responseSchema: UnknownResponseSchema,
}, params, { importUid: params.importUid }),
// Data methods for order entry operations
getHeaderData: async (params) => {
const response = await this.orderEntry.getHeader(params);
return response.data;
},
updateHeaderData: async (params) => {
const response = await this.orderEntry.updateHeader(params);
return response.data;
},
getSalesrepData: async (params) => {
const response = await this.orderEntry.getSalesrep(params);
return response.data;
},
updateSalesrepData: async (params) => {
const response = await this.orderEntry.updateSalesrep(params);
return response.data;
},
getWebHeaderData: async (params) => {
const response = await this.orderEntry.getWebHeader(params);
return response.data;
},
};
/**
* Scheduled import operations for SFTP metadata management and automated import processing
* @fullPath api.p21Sism.scheduledImportMaster
* @service p21-sism
* @domain scheduled-import-management
* @discoverable true
*/
this.scheduledImportMaster = {
/**
* Create SFTP metadata for a scheduled import master configuration
*
* @fullPath api.p21Sism.scheduledImportMaster.createSftpMetadata
* @service p21-sism
* @domain scheduled-import-management
* @dataMethod createSftpMetadataData - returns only the SFTP metadata without response wrapper
* @discoverable true
* @searchTerms ["SFTP metadata", "scheduled import", "import master", "SFTP configuration", "automated import", "file transfer"]
* @relatedEndpoints ["api.p21Sism.import.list", "api.p21Sism.import.recent", "api.p21Core.company"]
* @commonPatterns ["Configure SFTP import", "Setup automated data transfer", "Scheduled import configuration", "File transfer setup"]
* @workflow ["sftp-configuration", "scheduled-imports", "automated-processing", "file-transfer-setup"]
* @prerequisites ["Valid scheduled import master UID", "SFTP configuration permissions", "Scheduled import master exists"]
* @nextSteps ["api.p21Sism.import.recent to monitor scheduled imports", "SFTP file monitoring systems"]
* @businessRules ["SFTP metadata defines transfer parameters", "Scheduled import master must be configured", "File transfer validation rules apply"]
* @functionalArea "scheduled-import-management"
* @performance "Configuration operation, minimal processing overhead"
*
* @param params Scheduled import master UID parameter
* @returns Promise<BaseResponse<unknown>> Complete response with SFTP metadata configuration
*/
createSftpMetadata: async (params) => this.executeRequest({
method: 'POST',
path: '/scheduled-import-master/{scheduledImportMasterUid}/metadata/sftp',
paramsSchema: ScheduledImportSftpParamsSchema,
responseSchema: UnknownResponseSchema,
}, params, { scheduledImportMasterUid: params.scheduledImportMasterUid }),
// Data method for scheduled import operations
createSftpMetadataData: async (params) => {
const response = await this.scheduledImportMaster.createSftpMetadata(params);
return response.data;
},
};
/**
* Health check operations for service monitoring and system status verification
* @fullPath api.p21Sism.health
* @service p21-sism
* @domain system-monitoring
* @discoverable true
*/
this.health = {
/**
* Perform health check to verify P21 SISM service status and connectivity
*
* @fullPath api.p21Sism.health.check
* @service p21-sism
* @domain system-monitoring
* @dataMethod checkData - returns only the health status without metadata
* @discoverable true
* @searchTerms ["health check", "service status", "system monitor", "service availability", "connectivity test", "SISM health"]
* @relatedEndpoints ["api.p21Core.health.check", "api.p21Sism.import.recent", "system monitoring endpoints"]
* @commonPatterns ["Check service health", "Monitor system status", "Verify connectivity", "Service diagnostics"]
* @workflow ["system-monitoring", "health-verification", "service-diagnostics", "integration-testing"]
* @prerequisites ["System access", "Monitoring permissions"]
* @nextSteps ["Service remediation if unhealthy", "Integration health checks", "api.p21Sism.import.stuck for processing issues"]
* @businessRules ["Returns site configuration", "Includes system hash for verification", "No authentication required for health check"]
* @functionalArea "system-monitoring"
* @performance "Lightweight check, immediate response, minimal system impact"
*
* @returns Promise<BaseResponse<HealthCheckResponse>> Service health status and configuration
*/
check: async () => {
return this.executeRequest({
method: 'GET',
path: '/health-check',
responseSchema: HealthCheckResponseSchema,
});
},
// Data method for health operations
checkData: async () => {
const response = await this.health.check();
return response.data;
},
};
/**
* Health Data Operations
* @description Direct access to health check data without response metadata
*/
this.healthData = {
/**
* Get health check data without response metadata
* @returns Promise<unknown> Health status data directly
*/
check: async () => {
const response = await this.health.check();
return response.data;
},
};
// Reference schemas to ensure 100% import coverage
void this.schemaRefs;
}
}
//# sourceMappingURL=client.js.map