@isoftdata/ebay-utility 1.0.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/adapters/AdapterResult.d.ts +3 -0
- package/lib/adapters/AdapterResult.d.ts.map +1 -1
- package/lib/adapters/AdapterResult.js +2 -1
- package/lib/adapters/AdapterResult.js.map +1 -1
- package/lib/adapters/AdapterToUseCaseConverter.js +20 -20
- package/lib/adapters/AdapterToUseCaseConverter.js.map +1 -1
- package/lib/adapters/ebay/EbayAdapter.d.ts +7 -4
- package/lib/adapters/ebay/EbayAdapter.d.ts.map +1 -1
- package/lib/adapters/ebay/EbayAdapter.js +108 -16
- package/lib/adapters/ebay/EbayAdapter.js.map +1 -1
- package/lib/adapters/ebay/WebEbayAdapter.d.ts +64 -0
- package/lib/adapters/ebay/WebEbayAdapter.d.ts.map +1 -0
- package/lib/adapters/ebay/WebEbayAdapter.js +473 -0
- package/lib/adapters/ebay/WebEbayAdapter.js.map +1 -0
- package/lib/adapters/itrack/ItrackAdapter.d.ts +8 -18
- package/lib/adapters/itrack/ItrackAdapter.d.ts.map +1 -1
- package/lib/adapters/itrack/ItrackAdapter.js +104 -41
- package/lib/adapters/itrack/ItrackAdapter.js.map +1 -1
- package/lib/adapters/test-error-preservation.d.ts +9 -0
- package/lib/adapters/test-error-preservation.d.ts.map +1 -0
- package/lib/adapters/test-error-preservation.js +203 -0
- package/lib/adapters/test-error-preservation.js.map +1 -0
- package/lib/entities/ebay/FulfillmentPolicy.d.ts +0 -5
- package/lib/entities/ebay/FulfillmentPolicy.d.ts.map +1 -1
- package/lib/entities/ebay/PackageWeightAndSize.d.ts +4 -4
- package/lib/entities/ebay/PaymentPolicy.d.ts +0 -5
- package/lib/entities/ebay/PaymentPolicy.d.ts.map +1 -1
- package/lib/entities/ebay/ReturnPolicy.d.ts +0 -5
- package/lib/entities/ebay/ReturnPolicy.d.ts.map +1 -1
- package/lib/entities/itrack/ItrackEbayPolicy.d.ts +14 -0
- package/lib/entities/itrack/ItrackEbayPolicy.d.ts.map +1 -0
- package/lib/entities/itrack/ItrackEbayPolicy.js +2 -0
- package/lib/entities/itrack/ItrackEbayPolicy.js.map +1 -0
- package/lib/index.d.ts +7 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +8 -0
- package/lib/index.js.map +1 -1
- package/lib/infrastructure/EbayOAuthManager.d.ts +99 -0
- package/lib/infrastructure/EbayOAuthManager.d.ts.map +1 -0
- package/lib/infrastructure/EbayOAuthManager.js +337 -0
- package/lib/infrastructure/EbayOAuthManager.js.map +1 -0
- package/lib/infrastructure/HttpToRepoConverter.d.ts +1 -0
- package/lib/infrastructure/HttpToRepoConverter.d.ts.map +1 -1
- package/lib/infrastructure/HttpToRepoConverter.js +4 -1
- package/lib/infrastructure/HttpToRepoConverter.js.map +1 -1
- package/lib/infrastructure/TokenManager.d.ts +0 -2
- package/lib/infrastructure/TokenManager.d.ts.map +1 -1
- package/lib/infrastructure/TokenManager.js +19 -42
- package/lib/infrastructure/TokenManager.js.map +1 -1
- package/lib/infrastructure/http.d.ts +1 -0
- package/lib/infrastructure/http.d.ts.map +1 -1
- package/lib/infrastructure/http.js +10 -2
- package/lib/infrastructure/http.js.map +1 -1
- package/lib/infrastructure/httpMultipart.d.ts.map +1 -1
- package/lib/infrastructure/httpMultipart.js +2 -1
- package/lib/infrastructure/httpMultipart.js.map +1 -1
- package/lib/ports/EbayInterface.d.ts +12 -11
- package/lib/ports/EbayInterface.d.ts.map +1 -1
- package/lib/repositories/EbayProductionRefreshTokenRepo.d.ts +5 -0
- package/lib/repositories/EbayProductionRefreshTokenRepo.d.ts.map +1 -0
- package/lib/repositories/EbayProductionRefreshTokenRepo.js +8 -0
- package/lib/repositories/EbayProductionRefreshTokenRepo.js.map +1 -0
- package/lib/repositories/ebay/BaseRepo.d.ts +2 -2
- package/lib/repositories/ebay/BaseRepo.d.ts.map +1 -1
- package/lib/repositories/ebay/FulfillmentPolicyRepo.d.ts +7 -2
- package/lib/repositories/ebay/FulfillmentPolicyRepo.d.ts.map +1 -1
- package/lib/repositories/ebay/FulfillmentPolicyRepo.js.map +1 -1
- package/lib/repositories/ebay/PaymentPolicyRepo.d.ts +7 -2
- package/lib/repositories/ebay/PaymentPolicyRepo.d.ts.map +1 -1
- package/lib/repositories/ebay/PaymentPolicyRepo.js.map +1 -1
- package/lib/repositories/ebay/ReturnPolicyRepo.d.ts +7 -2
- package/lib/repositories/ebay/ReturnPolicyRepo.d.ts.map +1 -1
- package/lib/repositories/ebay/ReturnPolicyRepo.js.map +1 -1
- package/lib/repositories/itrack/ItrackEbayPolicyRepo.d.ts +10 -0
- package/lib/repositories/itrack/ItrackEbayPolicyRepo.d.ts.map +1 -0
- package/lib/repositories/itrack/ItrackEbayPolicyRepo.js +30 -0
- package/lib/repositories/itrack/ItrackEbayPolicyRepo.js.map +1 -0
- package/lib/repositories/test-error-preservation.d.ts +45 -0
- package/lib/repositories/test-error-preservation.d.ts.map +1 -0
- package/lib/repositories/test-error-preservation.js +125 -0
- package/lib/repositories/test-error-preservation.js.map +1 -0
- package/lib/types/ErrorPreservation.d.ts +154 -0
- package/lib/types/ErrorPreservation.d.ts.map +1 -0
- package/lib/types/ErrorPreservation.js +357 -0
- package/lib/types/ErrorPreservation.js.map +1 -0
- package/lib/types/MysqlResponse.d.ts +123 -0
- package/lib/types/MysqlResponse.d.ts.map +1 -0
- package/lib/types/MysqlResponse.js +236 -0
- package/lib/types/MysqlResponse.js.map +1 -0
- package/lib/types/UseCaseResult.d.ts +12 -12
- package/lib/types/UseCaseResult.d.ts.map +1 -1
- package/lib/types/UseCaseResult.js +13 -13
- package/lib/types/UseCaseResult.js.map +1 -1
- package/lib/usecases/FulfillmentPolicy/AddFulfillmentPolicyToItrack.d.ts +3 -2
- package/lib/usecases/FulfillmentPolicy/AddFulfillmentPolicyToItrack.d.ts.map +1 -1
- package/lib/usecases/FulfillmentPolicy/AddFulfillmentPolicyToItrack.js +2 -2
- package/lib/usecases/FulfillmentPolicy/AddFulfillmentPolicyToItrack.js.map +1 -1
- package/lib/usecases/FulfillmentPolicy/GetFulfillmentPoliciesFromEbay.d.ts +1 -1
- package/lib/usecases/FulfillmentPolicy/GetFulfillmentPoliciesFromEbay.d.ts.map +1 -1
- package/lib/usecases/FulfillmentPolicy/GetFulfillmentPoliciesFromEbay.js +8 -2
- package/lib/usecases/FulfillmentPolicy/GetFulfillmentPoliciesFromEbay.js.map +1 -1
- package/lib/usecases/FulfillmentPolicy/GetFulfillmentPoliciesFromItrack.d.ts +2 -1
- package/lib/usecases/FulfillmentPolicy/GetFulfillmentPoliciesFromItrack.d.ts.map +1 -1
- package/lib/usecases/FulfillmentPolicy/GetFulfillmentPoliciesFromItrack.js +1 -1
- package/lib/usecases/FulfillmentPolicy/GetFulfillmentPoliciesFromItrack.js.map +1 -1
- package/lib/usecases/FulfillmentPolicy/RemoveFulfillmentPolicyFromItrack.d.ts +3 -2
- package/lib/usecases/FulfillmentPolicy/RemoveFulfillmentPolicyFromItrack.d.ts.map +1 -1
- package/lib/usecases/FulfillmentPolicy/RemoveFulfillmentPolicyFromItrack.js +2 -2
- package/lib/usecases/FulfillmentPolicy/RemoveFulfillmentPolicyFromItrack.js.map +1 -1
- package/lib/usecases/FulfillmentPolicy/SyncFulfillmentPolicies.d.ts +11 -0
- package/lib/usecases/FulfillmentPolicy/SyncFulfillmentPolicies.d.ts.map +1 -0
- package/lib/usecases/FulfillmentPolicy/SyncFulfillmentPolicies.js +60 -0
- package/lib/usecases/FulfillmentPolicy/SyncFulfillmentPolicies.js.map +1 -0
- package/lib/usecases/FulfillmentPolicy/SyncFulfillmentPolicy.d.ts +2 -1
- package/lib/usecases/FulfillmentPolicy/SyncFulfillmentPolicy.d.ts.map +1 -1
- package/lib/usecases/FulfillmentPolicy/SyncFulfillmentPolicy.js +46 -21
- package/lib/usecases/FulfillmentPolicy/SyncFulfillmentPolicy.js.map +1 -1
- package/lib/usecases/FulfillmentPolicy/UpdateFulfillmentPolicyFromItrack.d.ts +3 -2
- package/lib/usecases/FulfillmentPolicy/UpdateFulfillmentPolicyFromItrack.d.ts.map +1 -1
- package/lib/usecases/FulfillmentPolicy/UpdateFulfillmentPolicyFromItrack.js +2 -2
- package/lib/usecases/FulfillmentPolicy/UpdateFulfillmentPolicyFromItrack.js.map +1 -1
- package/lib/usecases/FulfillmentPolicy/integration.test.d.ts +1 -1
- package/lib/usecases/FulfillmentPolicy/integration.test.d.ts.map +1 -1
- package/lib/usecases/FulfillmentPolicy/integration.test.js +13 -34
- package/lib/usecases/FulfillmentPolicy/integration.test.js.map +1 -1
- package/lib/usecases/Images/GetImageFromProduct.js +3 -3
- package/lib/usecases/Images/GetImageFromProduct.js.map +1 -1
- package/lib/usecases/Images/PushImageToEbay.js +4 -4
- package/lib/usecases/Images/PushImageToEbay.js.map +1 -1
- package/lib/usecases/Images/SyncImageToEbay.js +5 -5
- package/lib/usecases/Images/SyncImageToEbay.js.map +1 -1
- package/lib/usecases/Images/SyncMultipleImagesToEbay.js +3 -3
- package/lib/usecases/Images/SyncMultipleImagesToEbay.js.map +1 -1
- package/lib/usecases/Inventory/PushInventorySkuToEbay.js +4 -4
- package/lib/usecases/Inventory/PushInventorySkuToEbay.js.map +1 -1
- package/lib/usecases/Inventory/SyncInventoryToEbay.js +2 -2
- package/lib/usecases/Inventory/SyncInventoryToEbay.js.map +1 -1
- package/lib/usecases/Location/GetInventoryLocationsFromEbay.d.ts +1 -1
- package/lib/usecases/Location/WebGetInventoryLocations.d.ts +98 -0
- package/lib/usecases/Location/WebGetInventoryLocations.d.ts.map +1 -0
- package/lib/usecases/Location/WebGetInventoryLocations.js +116 -0
- package/lib/usecases/Location/WebGetInventoryLocations.js.map +1 -0
- package/lib/usecases/Offer/GetEbayDefaultsFromProduct.d.ts.map +1 -1
- package/lib/usecases/Offer/GetEbayDefaultsFromProduct.js +3 -3
- package/lib/usecases/Offer/GetEbayDefaultsFromProduct.js.map +1 -1
- package/lib/usecases/Offer/PublishEbayOffer.js +4 -4
- package/lib/usecases/Offer/PublishEbayOffer.js.map +1 -1
- package/lib/usecases/Offer/PushEbayOffer.js +6 -6
- package/lib/usecases/Offer/PushEbayOffer.js.map +1 -1
- package/lib/usecases/Offer/SyncEbayInventoryAndOffer.js +5 -5
- package/lib/usecases/Offer/SyncEbayInventoryAndOffer.js.map +1 -1
- package/lib/usecases/Offer/convertItrackListingToEbayInventoryAndOffer.js +3 -3
- package/lib/usecases/Offer/convertItrackListingToEbayInventoryAndOffer.js.map +1 -1
- package/lib/usecases/PaymentPolicy/AddPaymentPolicyToItrack.d.ts +3 -2
- package/lib/usecases/PaymentPolicy/AddPaymentPolicyToItrack.d.ts.map +1 -1
- package/lib/usecases/PaymentPolicy/AddPaymentPolicyToItrack.js +2 -2
- package/lib/usecases/PaymentPolicy/AddPaymentPolicyToItrack.js.map +1 -1
- package/lib/usecases/PaymentPolicy/GetPaymentPoliciesFromEbay.d.ts +1 -1
- package/lib/usecases/PaymentPolicy/GetPaymentPoliciesFromEbay.d.ts.map +1 -1
- package/lib/usecases/PaymentPolicy/GetPaymentPoliciesFromItrack.d.ts +2 -1
- package/lib/usecases/PaymentPolicy/GetPaymentPoliciesFromItrack.d.ts.map +1 -1
- package/lib/usecases/PaymentPolicy/GetPaymentPoliciesFromItrack.js +1 -1
- package/lib/usecases/PaymentPolicy/GetPaymentPoliciesFromItrack.js.map +1 -1
- package/lib/usecases/PaymentPolicy/RemovePaymentPolicyFromItrack.d.ts +3 -2
- package/lib/usecases/PaymentPolicy/RemovePaymentPolicyFromItrack.d.ts.map +1 -1
- package/lib/usecases/PaymentPolicy/RemovePaymentPolicyFromItrack.js +2 -2
- package/lib/usecases/PaymentPolicy/RemovePaymentPolicyFromItrack.js.map +1 -1
- package/lib/usecases/PaymentPolicy/SyncPaymentPoliciesFromEbay.d.ts +2 -1
- package/lib/usecases/PaymentPolicy/SyncPaymentPoliciesFromEbay.d.ts.map +1 -1
- package/lib/usecases/PaymentPolicy/SyncPaymentPoliciesFromEbay.js +39 -22
- package/lib/usecases/PaymentPolicy/SyncPaymentPoliciesFromEbay.js.map +1 -1
- package/lib/usecases/PaymentPolicy/UpdatePaymentPolicyFromItrack.d.ts +3 -2
- package/lib/usecases/PaymentPolicy/UpdatePaymentPolicyFromItrack.d.ts.map +1 -1
- package/lib/usecases/PaymentPolicy/UpdatePaymentPolicyFromItrack.js +2 -2
- package/lib/usecases/PaymentPolicy/UpdatePaymentPolicyFromItrack.js.map +1 -1
- package/lib/usecases/PaymentPolicy/integration.test.d.ts +2 -0
- package/lib/usecases/PaymentPolicy/integration.test.d.ts.map +1 -0
- package/lib/usecases/PaymentPolicy/integration.test.js +31 -0
- package/lib/usecases/PaymentPolicy/integration.test.js.map +1 -0
- package/lib/usecases/Policy/WebGetEbayPolicies.d.ts +236 -0
- package/lib/usecases/Policy/WebGetEbayPolicies.d.ts.map +1 -0
- package/lib/usecases/Policy/WebGetEbayPolicies.js +374 -0
- package/lib/usecases/Policy/WebGetEbayPolicies.js.map +1 -0
- package/lib/usecases/ReturnPolicy/AddReturnPolicyToItrack.d.ts +3 -2
- package/lib/usecases/ReturnPolicy/AddReturnPolicyToItrack.d.ts.map +1 -1
- package/lib/usecases/ReturnPolicy/AddReturnPolicyToItrack.js +2 -2
- package/lib/usecases/ReturnPolicy/AddReturnPolicyToItrack.js.map +1 -1
- package/lib/usecases/ReturnPolicy/GetReturnPoliciesFromEbay.d.ts +1 -1
- package/lib/usecases/ReturnPolicy/GetReturnPoliciesFromEbay.d.ts.map +1 -1
- package/lib/usecases/ReturnPolicy/GetReturnPoliciesFromEbay.js +13 -3
- package/lib/usecases/ReturnPolicy/GetReturnPoliciesFromEbay.js.map +1 -1
- package/lib/usecases/ReturnPolicy/GetReturnPoliciesFromItrack.d.ts +2 -1
- package/lib/usecases/ReturnPolicy/GetReturnPoliciesFromItrack.d.ts.map +1 -1
- package/lib/usecases/ReturnPolicy/GetReturnPoliciesFromItrack.js +1 -1
- package/lib/usecases/ReturnPolicy/GetReturnPoliciesFromItrack.js.map +1 -1
- package/lib/usecases/ReturnPolicy/RemoveReturnPolicyFromItrack.d.ts +3 -2
- package/lib/usecases/ReturnPolicy/RemoveReturnPolicyFromItrack.d.ts.map +1 -1
- package/lib/usecases/ReturnPolicy/RemoveReturnPolicyFromItrack.js +2 -2
- package/lib/usecases/ReturnPolicy/RemoveReturnPolicyFromItrack.js.map +1 -1
- package/lib/usecases/ReturnPolicy/SyncReturnPoliciesFromEbay.d.ts +2 -1
- package/lib/usecases/ReturnPolicy/SyncReturnPoliciesFromEbay.d.ts.map +1 -1
- package/lib/usecases/ReturnPolicy/SyncReturnPoliciesFromEbay.js +44 -24
- package/lib/usecases/ReturnPolicy/SyncReturnPoliciesFromEbay.js.map +1 -1
- package/lib/usecases/ReturnPolicy/UpdateReturnPolicyInItrack.d.ts +3 -2
- package/lib/usecases/ReturnPolicy/UpdateReturnPolicyInItrack.d.ts.map +1 -1
- package/lib/usecases/ReturnPolicy/UpdateReturnPolicyInItrack.js +2 -2
- package/lib/usecases/ReturnPolicy/UpdateReturnPolicyInItrack.js.map +1 -1
- package/lib/usecases/ReturnPolicy/integration.test.d.ts +1 -1
- package/lib/usecases/ReturnPolicy/integration.test.d.ts.map +1 -1
- package/lib/usecases/ReturnPolicy/integration.test.js +13 -38
- package/lib/usecases/ReturnPolicy/integration.test.js.map +1 -1
- package/package.json +59 -56
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MySQL Response Types with Error Preservation
|
|
3
|
+
*
|
|
4
|
+
* This module defines standardized response types for MySQL operations that preserve
|
|
5
|
+
* original error information for debugging and tracing. These types ensure that
|
|
6
|
+
* MySQL errors are never transformed or obscured as they pass through layers.
|
|
7
|
+
*/
|
|
8
|
+
// ============================================================================
|
|
9
|
+
// MYSQL RESPONSE CREATION UTILITIES
|
|
10
|
+
// ============================================================================
|
|
11
|
+
/**
|
|
12
|
+
* Creates a successful MySQL response
|
|
13
|
+
*/
|
|
14
|
+
export function createMysqlSuccess(params) {
|
|
15
|
+
return {
|
|
16
|
+
uuid: generateUuid(),
|
|
17
|
+
success: true,
|
|
18
|
+
request: params.request,
|
|
19
|
+
data: params.data,
|
|
20
|
+
timestamp: new Date().toISOString(),
|
|
21
|
+
rowsAffected: params.rowsAffected,
|
|
22
|
+
insertId: params.insertId
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Creates a MySQL error response with preserved original error
|
|
27
|
+
*/
|
|
28
|
+
export function createMysqlError(params) {
|
|
29
|
+
// Preserve the original MySQL error exactly as received
|
|
30
|
+
const originalMysqlError = {
|
|
31
|
+
code: params.originalError.code,
|
|
32
|
+
message: params.originalError.message,
|
|
33
|
+
sqlState: params.originalError.sqlState,
|
|
34
|
+
errno: params.originalError.errno,
|
|
35
|
+
stack: params.originalError.stack,
|
|
36
|
+
sql: params.request.sql,
|
|
37
|
+
values: params.request.values
|
|
38
|
+
};
|
|
39
|
+
return {
|
|
40
|
+
uuid: generateUuid(),
|
|
41
|
+
success: false,
|
|
42
|
+
request: params.request,
|
|
43
|
+
originalMysqlError,
|
|
44
|
+
layerContext: params.layerContext,
|
|
45
|
+
timestamp: new Date().toISOString()
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
// ============================================================================
|
|
49
|
+
// MYSQL RESPONSE UTILITIES
|
|
50
|
+
// ============================================================================
|
|
51
|
+
/**
|
|
52
|
+
* Type guard to check if a MySQL response is successful
|
|
53
|
+
*/
|
|
54
|
+
export function isMysqlSuccess(response) {
|
|
55
|
+
return response.success === true;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Type guard to check if a MySQL response is an error
|
|
59
|
+
*/
|
|
60
|
+
export function isMysqlError(response) {
|
|
61
|
+
return response.success === false;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Extracts data from a MySQL response if successful, otherwise returns undefined
|
|
65
|
+
*/
|
|
66
|
+
export function getMysqlData(response) {
|
|
67
|
+
return isMysqlSuccess(response) ? response.data : undefined;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Extracts error information from a MySQL response if failed, otherwise returns undefined
|
|
71
|
+
*/
|
|
72
|
+
export function getMysqlError(response) {
|
|
73
|
+
return isMysqlError(response) ? response : undefined;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Gets a simple error message from a MySQL error response
|
|
77
|
+
*/
|
|
78
|
+
export function getMysqlErrorMessage(response) {
|
|
79
|
+
if (isMysqlError(response)) {
|
|
80
|
+
const error = response.originalMysqlError;
|
|
81
|
+
// Provide user-friendly messages for common MySQL errors
|
|
82
|
+
switch (error.code) {
|
|
83
|
+
case 'ER_NO_SUCH_TABLE':
|
|
84
|
+
return 'Database table not found';
|
|
85
|
+
case 'ER_DUP_ENTRY':
|
|
86
|
+
return 'Duplicate entry';
|
|
87
|
+
case 'ER_ACCESS_DENIED_ERROR':
|
|
88
|
+
return 'Database access denied';
|
|
89
|
+
case 'ER_BAD_DB_ERROR':
|
|
90
|
+
return 'Database not found';
|
|
91
|
+
case 'ER_TABLE_EXISTS_ERROR':
|
|
92
|
+
return 'Table already exists';
|
|
93
|
+
case 'ER_BAD_FIELD_ERROR':
|
|
94
|
+
return 'Unknown column';
|
|
95
|
+
case 'ER_PARSE_ERROR':
|
|
96
|
+
return 'SQL syntax error';
|
|
97
|
+
case 'ER_NO_REFERENCED_ROW_2':
|
|
98
|
+
return 'Foreign key constraint violation';
|
|
99
|
+
case 'ER_ROW_IS_REFERENCED_2':
|
|
100
|
+
return 'Cannot delete - record is referenced';
|
|
101
|
+
default:
|
|
102
|
+
return error.message || 'Database operation failed';
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
return null;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Formats a MySQL response for logging
|
|
109
|
+
*/
|
|
110
|
+
export function formatMysqlResponseForLogging(response) {
|
|
111
|
+
const lines = [];
|
|
112
|
+
lines.push(`MySQL Operation [${response.uuid}]:`);
|
|
113
|
+
lines.push(` Success: ${response.success}`);
|
|
114
|
+
lines.push(` Timestamp: ${response.timestamp}`);
|
|
115
|
+
lines.push(` SQL: ${response.request.sql}`);
|
|
116
|
+
lines.push(` Values: ${JSON.stringify(response.request.values)}`);
|
|
117
|
+
if (isMysqlSuccess(response)) {
|
|
118
|
+
lines.push(` Rows Affected: ${response.rowsAffected || 'N/A'}`);
|
|
119
|
+
lines.push(` Insert ID: ${response.insertId || 'N/A'}`);
|
|
120
|
+
lines.push(` Data Type: ${typeof response.data}`);
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
const error = response.originalMysqlError;
|
|
124
|
+
lines.push(` Error Code: ${error.code} (${error.errno})`);
|
|
125
|
+
lines.push(` Error Message: ${error.message}`);
|
|
126
|
+
lines.push(` SQL State: ${error.sqlState}`);
|
|
127
|
+
lines.push(` Layer Context: ${response.layerContext}`);
|
|
128
|
+
}
|
|
129
|
+
return lines.join('\n');
|
|
130
|
+
}
|
|
131
|
+
// ============================================================================
|
|
132
|
+
// MYSQL OPERATION WRAPPERS
|
|
133
|
+
// ============================================================================
|
|
134
|
+
/**
|
|
135
|
+
* Wraps a MySQL operation with standardized error handling and response creation
|
|
136
|
+
* This is the core utility that repository layers should use for all MySQL operations
|
|
137
|
+
*/
|
|
138
|
+
export async function executeMysqlOperation(params) {
|
|
139
|
+
try {
|
|
140
|
+
const data = await params.operation();
|
|
141
|
+
return createMysqlSuccess({
|
|
142
|
+
data,
|
|
143
|
+
request: params.request
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
catch (originalError) {
|
|
147
|
+
return createMysqlError({
|
|
148
|
+
originalError,
|
|
149
|
+
request: params.request,
|
|
150
|
+
layerContext: params.layerContext
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Wraps a MySQL operation that returns result metadata (for INSERT/UPDATE/DELETE)
|
|
156
|
+
*/
|
|
157
|
+
export async function executeMysqlOperationWithMetadata(params) {
|
|
158
|
+
try {
|
|
159
|
+
const result = await params.operation();
|
|
160
|
+
return createMysqlSuccess({
|
|
161
|
+
data: result.data,
|
|
162
|
+
request: params.request,
|
|
163
|
+
rowsAffected: result.rowsAffected,
|
|
164
|
+
insertId: result.insertId
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
catch (originalError) {
|
|
168
|
+
return createMysqlError({
|
|
169
|
+
originalError,
|
|
170
|
+
request: params.request,
|
|
171
|
+
layerContext: params.layerContext
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
// ============================================================================
|
|
176
|
+
// UTILITY FUNCTIONS
|
|
177
|
+
// ============================================================================
|
|
178
|
+
/**
|
|
179
|
+
* Simple UUID generator for tracking MySQL operations
|
|
180
|
+
*/
|
|
181
|
+
function generateUuid() {
|
|
182
|
+
return 'mysql-' + Math.random().toString(36).substr(2, 9) + '-' + Date.now().toString(36);
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Creates a MySQL request object with current timestamp
|
|
186
|
+
*/
|
|
187
|
+
export function createMysqlRequest(params) {
|
|
188
|
+
return {
|
|
189
|
+
sql: params.sql,
|
|
190
|
+
values: params.values,
|
|
191
|
+
operation: params.operation,
|
|
192
|
+
timestamp: new Date().toISOString()
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Validates that a MySQL response properly preserves error information
|
|
197
|
+
* Used for testing and debugging
|
|
198
|
+
*/
|
|
199
|
+
export function validateMysqlResponse(response) {
|
|
200
|
+
const issues = [];
|
|
201
|
+
// Check required fields
|
|
202
|
+
if (!response.uuid)
|
|
203
|
+
issues.push('Missing uuid');
|
|
204
|
+
if (typeof response.success !== 'boolean')
|
|
205
|
+
issues.push('Missing or invalid success field');
|
|
206
|
+
if (!response.request)
|
|
207
|
+
issues.push('Missing request information');
|
|
208
|
+
if (!response.timestamp)
|
|
209
|
+
issues.push('Missing timestamp');
|
|
210
|
+
// Check request structure
|
|
211
|
+
if (response.request) {
|
|
212
|
+
if (!response.request.sql)
|
|
213
|
+
issues.push('Missing SQL in request');
|
|
214
|
+
if (!Array.isArray(response.request.values))
|
|
215
|
+
issues.push('Missing or invalid values in request');
|
|
216
|
+
}
|
|
217
|
+
// Check error-specific fields
|
|
218
|
+
if (!response.success) {
|
|
219
|
+
const errorResponse = response;
|
|
220
|
+
if (!errorResponse.originalMysqlError)
|
|
221
|
+
issues.push('Missing originalMysqlError in error response');
|
|
222
|
+
if (!errorResponse.layerContext)
|
|
223
|
+
issues.push('Missing layerContext in error response');
|
|
224
|
+
if (errorResponse.originalMysqlError) {
|
|
225
|
+
if (!errorResponse.originalMysqlError.message)
|
|
226
|
+
issues.push('Missing message in originalMysqlError');
|
|
227
|
+
if (!errorResponse.originalMysqlError.sql)
|
|
228
|
+
issues.push('Missing sql in originalMysqlError');
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
return {
|
|
232
|
+
isValid: issues.length === 0,
|
|
233
|
+
issues
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
//# sourceMappingURL=MysqlResponse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MysqlResponse.js","sourceRoot":"","sources":["../../src/types/MysqlResponse.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,34 +24,34 @@ export interface UseCaseError {
|
|
|
24
24
|
* Helper functions for creating consistent UseCaseResult responses
|
|
25
25
|
*/
|
|
26
26
|
/**
|
|
27
|
-
* Creates a successful result with typed data
|
|
27
|
+
* Creates a successful use case result with typed data
|
|
28
28
|
*/
|
|
29
|
-
export declare function
|
|
29
|
+
export declare function createUseCaseSuccessResult<T>(data: T, request?: HttpRequest): UseCaseResult<T>;
|
|
30
30
|
/**
|
|
31
|
-
* Creates a successful result with no data
|
|
31
|
+
* Creates a successful use case result with no data
|
|
32
32
|
*/
|
|
33
|
-
export declare function
|
|
33
|
+
export declare function createUseCaseSuccessResultNoData(): UseCaseResult<void>;
|
|
34
34
|
/**
|
|
35
|
-
* Creates a validation error result from ValidationErrorNew array
|
|
35
|
+
* Creates a validation error use case result from ValidationErrorNew array
|
|
36
36
|
*/
|
|
37
|
-
export declare function
|
|
37
|
+
export declare function createUseCaseValidationErrorResult(validationErrors: Array<{
|
|
38
38
|
field: string;
|
|
39
39
|
message: string;
|
|
40
40
|
value: unknown;
|
|
41
41
|
code: string;
|
|
42
42
|
}>): UseCaseResult;
|
|
43
43
|
/**
|
|
44
|
-
* Creates an API error result from eBay API errors or other API failures
|
|
44
|
+
* Creates an API error use case result from eBay API errors or other API failures
|
|
45
45
|
*/
|
|
46
|
-
export declare function
|
|
46
|
+
export declare function createUseCaseApiErrorResult(error: any, context?: string, request?: HttpRequest): UseCaseResult;
|
|
47
47
|
/**
|
|
48
|
-
* Creates a system error result for internal errors, network issues, etc.
|
|
48
|
+
* Creates a system error use case result for internal errors, network issues, etc.
|
|
49
49
|
*/
|
|
50
|
-
export declare function
|
|
50
|
+
export declare function createUseCaseSystemErrorResult(message: string, error?: any): UseCaseResult;
|
|
51
51
|
/**
|
|
52
|
-
* Creates a custom error result with specific error details
|
|
52
|
+
* Creates a custom error use case result with specific error details
|
|
53
53
|
*/
|
|
54
|
-
export declare function
|
|
54
|
+
export declare function createUseCaseCustomErrorResult(errors: UseCaseError[]): UseCaseResult;
|
|
55
55
|
/**
|
|
56
56
|
* Combines multiple UseCaseResult objects, useful for master use cases
|
|
57
57
|
* Returns success only if all results are successful
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UseCaseResult.d.ts","sourceRoot":"","sources":["../../src/types/UseCaseResult.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAE7D;;;GAGG;AACH,MAAM,WAAW,aAAa,CAAC,KAAK,GAAG,GAAG;IACxC,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,CAAC,EAAE,YAAY,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAA;IACrD,IAAI,CAAC,EAAE,KAAK,CAAA;IACZ,MAAM,CAAC,EAAE,YAAY,EAAE,CAAA;IACvB,OAAO,CAAC,EAAE,WAAW,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,YAAY,GAAG,KAAK,GAAG,QAAQ,CAAA;IACrC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED;;GAEG;AAEH;;GAEG;AACH,wBAAgB,
|
|
1
|
+
{"version":3,"file":"UseCaseResult.d.ts","sourceRoot":"","sources":["../../src/types/UseCaseResult.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Helper functions for creating consistent UseCaseResult responses
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
|
-
* Creates a successful result with typed data
|
|
5
|
+
* Creates a successful use case result with typed data
|
|
6
6
|
*/
|
|
7
|
-
export function
|
|
7
|
+
export function createUseCaseSuccessResult(data, request) {
|
|
8
8
|
return {
|
|
9
9
|
success: true,
|
|
10
10
|
data,
|
|
@@ -12,17 +12,17 @@ export function createSuccessResult(data, request) {
|
|
|
12
12
|
};
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
|
-
* Creates a successful result with no data
|
|
15
|
+
* Creates a successful use case result with no data
|
|
16
16
|
*/
|
|
17
|
-
export function
|
|
17
|
+
export function createUseCaseSuccessResultNoData() {
|
|
18
18
|
return {
|
|
19
19
|
success: true
|
|
20
20
|
};
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
|
-
* Creates a validation error result from ValidationErrorNew array
|
|
23
|
+
* Creates a validation error use case result from ValidationErrorNew array
|
|
24
24
|
*/
|
|
25
|
-
export function
|
|
25
|
+
export function createUseCaseValidationErrorResult(validationErrors) {
|
|
26
26
|
return {
|
|
27
27
|
success: false,
|
|
28
28
|
errorType: 'validation',
|
|
@@ -36,9 +36,9 @@ export function createValidationErrorResult(validationErrors) {
|
|
|
36
36
|
};
|
|
37
37
|
}
|
|
38
38
|
/**
|
|
39
|
-
* Creates an API error result from eBay API errors or other API failures
|
|
39
|
+
* Creates an API error use case result from eBay API errors or other API failures
|
|
40
40
|
*/
|
|
41
|
-
export function
|
|
41
|
+
export function createUseCaseApiErrorResult(error, context, request) {
|
|
42
42
|
const message = context
|
|
43
43
|
? `${context}: ${error?.message || error || 'Unknown API error'}`
|
|
44
44
|
: error?.message || error || 'Unknown API error';
|
|
@@ -55,9 +55,9 @@ export function createApiErrorResult(error, context, request) {
|
|
|
55
55
|
};
|
|
56
56
|
}
|
|
57
57
|
/**
|
|
58
|
-
* Creates a system error result for internal errors, network issues, etc.
|
|
58
|
+
* Creates a system error use case result for internal errors, network issues, etc.
|
|
59
59
|
*/
|
|
60
|
-
export function
|
|
60
|
+
export function createUseCaseSystemErrorResult(message, error) {
|
|
61
61
|
return {
|
|
62
62
|
success: false,
|
|
63
63
|
errorType: 'system',
|
|
@@ -70,9 +70,9 @@ export function createSystemErrorResult(message, error) {
|
|
|
70
70
|
};
|
|
71
71
|
}
|
|
72
72
|
/**
|
|
73
|
-
* Creates a custom error result with specific error details
|
|
73
|
+
* Creates a custom error use case result with specific error details
|
|
74
74
|
*/
|
|
75
|
-
export function
|
|
75
|
+
export function createUseCaseCustomErrorResult(errors) {
|
|
76
76
|
const errorTypes = [...new Set(errors.map(error => error.type))];
|
|
77
77
|
const errorType = errorTypes.length === 1 ? errorTypes[0] : 'mixed';
|
|
78
78
|
return {
|
|
@@ -90,7 +90,7 @@ export function combineResults(results) {
|
|
|
90
90
|
const allErrors = results.flatMap(result => result.errors || []);
|
|
91
91
|
const allData = results.map(result => result.data).filter(data => data !== undefined);
|
|
92
92
|
if (allSuccessful) {
|
|
93
|
-
return
|
|
93
|
+
return createUseCaseSuccessResult(allData);
|
|
94
94
|
}
|
|
95
95
|
else {
|
|
96
96
|
const errorTypes = [...new Set(allErrors.map(error => error.type))];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UseCaseResult.js","sourceRoot":"","sources":["../../src/types/UseCaseResult.ts"],"names":[],"mappings":"AAyBA;;GAEG;AAEH;;GAEG;AACH,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"UseCaseResult.js","sourceRoot":"","sources":["../../src/types/UseCaseResult.ts"],"names":[],"mappings":"AAyBA;;GAEG;AAEH;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAI,IAAO,EAAE,OAAqB;IAC1E,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI;QACJ,OAAO;KACR,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gCAAgC;IAC9C,OAAO;QACL,OAAO,EAAE,IAAI;KACd,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kCAAkC,CAAC,gBAKjD;IACA,OAAO;QACL,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,YAAY;QACvB,MAAM,EAAE,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACrC,IAAI,EAAE,YAAqB;YAC3B,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAC;KACJ,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B,CAAC,KAAU,EAAE,OAAgB,EAAE,OAAqB;IAC7F,MAAM,OAAO,GAAG,OAAO;QACrB,CAAC,CAAC,GAAG,OAAO,KAAK,KAAK,EAAE,OAAO,IAAI,KAAK,IAAI,mBAAmB,EAAE;QACjE,CAAC,CAAC,KAAK,EAAE,OAAO,IAAI,KAAK,IAAI,mBAAmB,CAAA;IAElD,OAAO;QACL,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE,CAAC;gBACP,IAAI,EAAE,KAAc;gBACpB,OAAO;gBACP,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,WAAW;gBAChC,KAAK,EAAE,KAAK;aACb,CAAC;QACF,OAAO;KACR,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAAC,OAAe,EAAE,KAAW;IACzE,OAAO;QACL,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,QAAQ;QACnB,MAAM,EAAE,CAAC;gBACP,IAAI,EAAE,QAAiB;gBACvB,OAAO;gBACP,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,cAAc;gBACnC,KAAK,EAAE,KAAK;aACb,CAAC;KACH,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,8BAA8B,CAAC,MAAsB;IACnE,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAChE,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IAEnE,OAAO;QACL,OAAO,EAAE,KAAK;QACd,SAAS;QACT,MAAM;KACP,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAI,OAA2B;IAC3D,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC7D,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAA;IAChE,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC,CAAA;IAErF,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,0BAA0B,CAAC,OAAc,CAAC,CAAA;IACnD,CAAC;SAAM,CAAC;QACN,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACnE,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;QAEnE,OAAO;YACL,OAAO,EAAE,KAAK;YACd,SAAS;YACT,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAc,CAAC,CAAC,CAAC,SAAS;SACtD,CAAA;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAI,MAAwB;IACzD,OAAO,MAAM,CAAC,OAAO,KAAK,IAAI,CAAA;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAI,MAAwB;IACnD,OAAO,MAAM,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;AACrE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,MAAsB;IAC3D,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACxB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;QACpD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;QACjD,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,GAAG,KAAK,CAAC,OAAO,GAAG,IAAI,EAAE,CAAA;IACvE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAqB;IACpD,OAAO,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;AACzD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAI,MAAqB,EAAE,cAAuB;IACtF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;IACxE,CAAC;IAED,MAAM,YAAY,GAA6B,cAAc,CAAC,CAAC,CAAC;QAC9D,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,cAAc;QACvB,IAAI,EAAE,eAAe;KACtB,CAAC,CAAC,CAAC,SAAS,CAAA;IAEb,OAAO;QACL,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;QAC/E,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAI,MAAqB,EAAE,cAAsB,EAAE,cAAgC,QAAQ;IACxH,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,MAA0B,CAAA;IACnC,CAAC;IAED,MAAM,YAAY,GAAiB;QACjC,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,cAAc;QACvB,IAAI,EAAE,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,mBAAmB;KACvE,CAAA;IAED,2BAA2B;IAC3B,IAAI,YAAuD,CAAA;IAC3D,IAAI,MAAM,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;QACjC,YAAY,GAAG,OAAO,CAAA;IACxB,CAAC;SAAM,IAAI,MAAM,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;QAC5C,YAAY,GAAG,MAAM,CAAC,SAAS,CAAA;IACjC,CAAC;SAAM,CAAC;QACN,YAAY,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,OAAO;QACL,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,YAAY;QACvB,MAAM,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;QAChD,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,IAAI,EAAE,MAAM,CAAC,IAAS;KACvB,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAI,MAAwB;IAC3D,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,SAAS,KAAK,YAAY,CAAA;AAC7D,CAAC;AAED,MAAM,UAAU,UAAU,CAAI,MAAwB;IACpD,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,SAAS,KAAK,KAAK,CAAA;AACtD,CAAC;AAED,MAAM,UAAU,aAAa,CAAI,MAAwB;IACvD,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,SAAS,KAAK,QAAQ,CAAA;AACzD,CAAC;AAED,MAAM,UAAU,YAAY,CAAI,MAAwB;IACtD,OAAO,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,SAAS,KAAK,OAAO,CAAA;AACxD,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { ItrackAdapter } from "../../adapters/itrack/ItrackAdapter.js";
|
|
2
|
-
import {
|
|
2
|
+
import { ParsedEbayPolicyRow } from "../../entities/itrack/ItrackEbayPolicy.js";
|
|
3
3
|
export interface InputBoundary {
|
|
4
4
|
itrackAdapter: ItrackAdapter;
|
|
5
|
+
policy: ParsedEbayPolicyRow;
|
|
5
6
|
}
|
|
6
|
-
export declare const addFulfillmentPolicyToItrack: (opts: InputBoundary
|
|
7
|
+
export declare const addFulfillmentPolicyToItrack: (opts: InputBoundary) => Promise<any>;
|
|
7
8
|
//# sourceMappingURL=AddFulfillmentPolicyToItrack.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddFulfillmentPolicyToItrack.d.ts","sourceRoot":"","sources":["../../../src/usecases/FulfillmentPolicy/AddFulfillmentPolicyToItrack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAA;AACtE,OAAO,
|
|
1
|
+
{"version":3,"file":"AddFulfillmentPolicyToItrack.d.ts","sourceRoot":"","sources":["../../../src/usecases/FulfillmentPolicy/AddFulfillmentPolicyToItrack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAA;AACtE,OAAO,EAAiB,mBAAmB,EAAE,MAAM,2CAA2C,CAAA;AAG9F,MAAM,WAAW,aAAa;IAC1B,aAAa,EAAE,aAAa,CAAC;IAC7B,MAAM,EAAE,mBAAmB,CAAA;CAC9B;AAED,eAAO,MAAM,4BAA4B,GAAS,MAAM,aAAa,iBAGpE,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export const addFulfillmentPolicyToItrack = async (opts
|
|
2
|
-
const response = await opts.itrackAdapter.addFulfillmentPolicy(
|
|
1
|
+
export const addFulfillmentPolicyToItrack = async (opts) => {
|
|
2
|
+
const response = await opts.itrackAdapter.addFulfillmentPolicy(opts.policy);
|
|
3
3
|
return response;
|
|
4
4
|
};
|
|
5
5
|
//# sourceMappingURL=AddFulfillmentPolicyToItrack.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AddFulfillmentPolicyToItrack.js","sourceRoot":"","sources":["../../../src/usecases/FulfillmentPolicy/AddFulfillmentPolicyToItrack.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AddFulfillmentPolicyToItrack.js","sourceRoot":"","sources":["../../../src/usecases/FulfillmentPolicy/AddFulfillmentPolicyToItrack.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,EAAC,IAAmB,EAAE,EAAE;IACrE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC3E,OAAO,QAAQ,CAAA;AACnB,CAAC,CAAA"}
|
|
@@ -2,5 +2,5 @@ import { EbayAdapter } from "../../adapters/ebay/EbayAdapter.js";
|
|
|
2
2
|
export interface Input {
|
|
3
3
|
ebayAdapter: EbayAdapter;
|
|
4
4
|
}
|
|
5
|
-
export declare const getFulfillmentPoliciesFromEbay: (params: Input) => Promise<import("../../
|
|
5
|
+
export declare const getFulfillmentPoliciesFromEbay: (params: Input) => Promise<import("../../types/UseCaseResult.js").UseCaseResult<any>>;
|
|
6
6
|
//# sourceMappingURL=GetFulfillmentPoliciesFromEbay.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GetFulfillmentPoliciesFromEbay.d.ts","sourceRoot":"","sources":["../../../src/usecases/FulfillmentPolicy/GetFulfillmentPoliciesFromEbay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;
|
|
1
|
+
{"version":3,"file":"GetFulfillmentPoliciesFromEbay.d.ts","sourceRoot":"","sources":["../../../src/usecases/FulfillmentPolicy/GetFulfillmentPoliciesFromEbay.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAMhE,MAAM,WAAW,KAAK;IACrB,WAAW,EAAE,WAAW,CAAA;CACxB;AAED,eAAO,MAAM,8BAA8B,GAAU,QAAQ,KAAK,uEAcjE,CAAA"}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { MarketplaceIdEnum } from "../../entities/ebay/MarketplaceEnum.js";
|
|
2
|
+
import { createUseCaseSuccessResult, createUseCaseSystemErrorResult } from "../../types/UseCaseResult.js";
|
|
2
3
|
export const getFulfillmentPoliciesFromEbay = async (params) => {
|
|
3
|
-
const
|
|
4
|
-
|
|
4
|
+
const policiesResponse = await params.ebayAdapter.getFulfillmentPolicies(MarketplaceIdEnum.Motors);
|
|
5
|
+
if (policiesResponse.success) {
|
|
6
|
+
return createUseCaseSuccessResult(policiesResponse.data, policiesResponse.request);
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
return createUseCaseSystemErrorResult('Error getting policies', policiesResponse.error);
|
|
10
|
+
}
|
|
5
11
|
};
|
|
6
12
|
//# sourceMappingURL=GetFulfillmentPoliciesFromEbay.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GetFulfillmentPoliciesFromEbay.js","sourceRoot":"","sources":["../../../src/usecases/FulfillmentPolicy/GetFulfillmentPoliciesFromEbay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;
|
|
1
|
+
{"version":3,"file":"GetFulfillmentPoliciesFromEbay.js","sourceRoot":"","sources":["../../../src/usecases/FulfillmentPolicy/GetFulfillmentPoliciesFromEbay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAE1E,OAAO,EACH,0BAA0B,EAC1B,8BAA8B,EACjC,MAAM,8BAA8B,CAAA;AAMrC,MAAM,CAAC,MAAM,8BAA8B,GAAG,KAAK,EAAE,MAAa,EAAE,EAAE;IACrE,MAAM,gBAAgB,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAA;IAE/F,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAC3B,OAAO,0BAA0B,CAC7B,gBAAgB,CAAC,IAAI,EACrB,gBAAgB,CAAC,OAAO,CAC3B,CAAA;IACL,CAAC;SAAM,CAAC;QACJ,OAAO,8BAA8B,CACjC,wBAAwB,EACxB,gBAAgB,CAAC,KAAK,CACzB,CAAA;IACL,CAAC;AACL,CAAC,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ItrackAdapter } from "../../adapters/itrack/ItrackAdapter.js";
|
|
2
2
|
export interface InputBoundary {
|
|
3
3
|
itrackAdapter: ItrackAdapter;
|
|
4
|
+
production: boolean;
|
|
4
5
|
}
|
|
5
|
-
export declare const getFulfillmentPoliciesFromItrack: (opts: InputBoundary) => Promise<import("../../entities/itrack/
|
|
6
|
+
export declare const getFulfillmentPoliciesFromItrack: (opts: InputBoundary) => Promise<import("../../adapters/AdapterResult.js").AdapterResult<import("../../entities/itrack/ItrackEbayPolicy.js").EbayPolicyRow[]>>;
|
|
6
7
|
//# sourceMappingURL=GetFulfillmentPoliciesFromItrack.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GetFulfillmentPoliciesFromItrack.d.ts","sourceRoot":"","sources":["../../../src/usecases/FulfillmentPolicy/GetFulfillmentPoliciesFromItrack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAA;AAEtE,MAAM,WAAW,aAAa;IAC1B,aAAa,EAAE,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"GetFulfillmentPoliciesFromItrack.d.ts","sourceRoot":"","sources":["../../../src/usecases/FulfillmentPolicy/GetFulfillmentPoliciesFromItrack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAA;AAEtE,MAAM,WAAW,aAAa;IAC1B,aAAa,EAAE,aAAa,CAAC;IAC7B,UAAU,EAAE,OAAO,CAAA;CACtB;AAED,eAAO,MAAM,gCAAgC,GAAU,MAAM,aAAa,0IAGzE,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export const getFulfillmentPoliciesFromItrack = async (opts) => {
|
|
2
|
-
const policies = await opts.itrackAdapter.getFulfillmentPolicies();
|
|
2
|
+
const policies = await opts.itrackAdapter.getFulfillmentPolicies(opts.production);
|
|
3
3
|
return policies;
|
|
4
4
|
};
|
|
5
5
|
//# sourceMappingURL=GetFulfillmentPoliciesFromItrack.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GetFulfillmentPoliciesFromItrack.js","sourceRoot":"","sources":["../../../src/usecases/FulfillmentPolicy/GetFulfillmentPoliciesFromItrack.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GetFulfillmentPoliciesFromItrack.js","sourceRoot":"","sources":["../../../src/usecases/FulfillmentPolicy/GetFulfillmentPoliciesFromItrack.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,gCAAgC,GAAG,KAAK,EAAE,IAAmB,EAAE,EAAE;IAC1E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACjF,OAAO,QAAQ,CAAA;AACnB,CAAC,CAAA"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { ItrackAdapter } from "../../adapters/itrack/ItrackAdapter.js";
|
|
2
|
-
import {
|
|
2
|
+
import { ParsedEbayPolicyRow } from "../../entities/itrack/ItrackEbayPolicy.js";
|
|
3
3
|
export interface InputBoundary {
|
|
4
4
|
itrackAdapter: ItrackAdapter;
|
|
5
|
+
policy: ParsedEbayPolicyRow;
|
|
5
6
|
}
|
|
6
|
-
export declare const removeFulfillmentPolicyFromItrack: (opts: InputBoundary
|
|
7
|
+
export declare const removeFulfillmentPolicyFromItrack: (opts: InputBoundary) => Promise<any>;
|
|
7
8
|
//# sourceMappingURL=RemoveFulfillmentPolicyFromItrack.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RemoveFulfillmentPolicyFromItrack.d.ts","sourceRoot":"","sources":["../../../src/usecases/FulfillmentPolicy/RemoveFulfillmentPolicyFromItrack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAA;AACtE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"RemoveFulfillmentPolicyFromItrack.d.ts","sourceRoot":"","sources":["../../../src/usecases/FulfillmentPolicy/RemoveFulfillmentPolicyFromItrack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAA;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAA;AAE/E,MAAM,WAAW,aAAa;IAC1B,aAAa,EAAE,aAAa,CAAA;IAC5B,MAAM,EAAE,mBAAmB,CAAA;CAC9B;AAED,eAAO,MAAM,iCAAiC,GAAS,MAAM,aAAa,iBAGzE,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export const removeFulfillmentPolicyFromItrack = async (opts
|
|
2
|
-
const response = await opts.itrackAdapter.deleteFulfillmentPolicy(
|
|
1
|
+
export const removeFulfillmentPolicyFromItrack = async (opts) => {
|
|
2
|
+
const response = await opts.itrackAdapter.deleteFulfillmentPolicy(opts.policy);
|
|
3
3
|
return response;
|
|
4
4
|
};
|
|
5
5
|
//# sourceMappingURL=RemoveFulfillmentPolicyFromItrack.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RemoveFulfillmentPolicyFromItrack.js","sourceRoot":"","sources":["../../../src/usecases/FulfillmentPolicy/RemoveFulfillmentPolicyFromItrack.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RemoveFulfillmentPolicyFromItrack.js","sourceRoot":"","sources":["../../../src/usecases/FulfillmentPolicy/RemoveFulfillmentPolicyFromItrack.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,iCAAiC,GAAG,KAAK,EAAC,IAAmB,EAAE,EAAE;IAC1E,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC9E,OAAO,QAAQ,CAAA;AACnB,CAAC,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { EbayAdapter } from "../../adapters/ebay/EbayAdapter.js";
|
|
2
|
+
import { TokenManager } from "../../infrastructure/TokenManager.js";
|
|
3
|
+
import { ItrackAdapter } from "../../adapters/itrack/ItrackAdapter.js";
|
|
4
|
+
export interface SyncFulfillmentPoliciesInput {
|
|
5
|
+
ebayAdapter: EbayAdapter;
|
|
6
|
+
itrackAdapter: ItrackAdapter;
|
|
7
|
+
tokenManager: TokenManager;
|
|
8
|
+
production: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare const syncFulfillmentPolicies: (params: SyncFulfillmentPoliciesInput) => Promise<any[]>;
|
|
11
|
+
//# sourceMappingURL=SyncFulfillmentPolicies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SyncFulfillmentPolicies.d.ts","sourceRoot":"","sources":["../../../src/usecases/FulfillmentPolicy/SyncFulfillmentPolicies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAA;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAA;AAMtE,MAAM,WAAW,4BAA4B;IACzC,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,aAAa,CAAC;IAC7B,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,OAAO,CAAA;CACtB;AAED,eAAO,MAAM,uBAAuB,GAAS,QAAQ,4BAA4B,mBAyEhF,CAAA"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { compareArrays } from "../../utils/utils.js";
|
|
2
|
+
import { MarketplaceIdEnum } from "../../entities/ebay/MarketplaceEnum.js";
|
|
3
|
+
export const syncFulfillmentPolicies = async (params) => {
|
|
4
|
+
// Get latest from ebay
|
|
5
|
+
const ebayPolicyResponse = await params.ebayAdapter.getFulfillmentPolicies(MarketplaceIdEnum.Motors);
|
|
6
|
+
if (!ebayPolicyResponse.success) {
|
|
7
|
+
console.log("Error getting fulfillment policies from eBay: ", ebayPolicyResponse.error);
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
if (!ebayPolicyResponse.data.fulfillmentPolicies.length) {
|
|
11
|
+
console.log("No ebay fulfillment policies found");
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
// Get from itrack // TODO: run json parse on details row
|
|
15
|
+
const itrackPolicyResponse = await params.itrackAdapter.getFulfillmentPolicies(params.production);
|
|
16
|
+
if (!itrackPolicyResponse.success) {
|
|
17
|
+
console.log("Error getting fulfillment policies from Itrack: ", itrackPolicyResponse.error);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const parsedItrackFulfillmentPolicyRows = itrackPolicyResponse?.data?.map(row => {
|
|
21
|
+
const { details, ...restOfRow } = row;
|
|
22
|
+
return {
|
|
23
|
+
...restOfRow,
|
|
24
|
+
details: JSON.parse(details)
|
|
25
|
+
};
|
|
26
|
+
});
|
|
27
|
+
const ebayPolicies = ebayPolicyResponse.data?.fulfillmentPolicies?.map(policy => ({
|
|
28
|
+
name: policy.name,
|
|
29
|
+
policytype: 'fulfillment', // Add the required policytype field
|
|
30
|
+
details: policy, // Use the policy directly instead of spreading it
|
|
31
|
+
production: params.production ? 'True' : 'False',
|
|
32
|
+
policyid: policy.fulfillmentPolicyId
|
|
33
|
+
}));
|
|
34
|
+
// Compare to determine what to add and/or remove
|
|
35
|
+
// TODO: does this handle empty arrays?
|
|
36
|
+
const comparisonResult = compareArrays(ebayPolicies, parsedItrackFulfillmentPolicyRows, 'policyid');
|
|
37
|
+
const { newItems, existingItems, unusedItems } = comparisonResult;
|
|
38
|
+
let syncFulfillmentPolicyResponse = [];
|
|
39
|
+
// Handle new items with Promise.all for concurrent processing
|
|
40
|
+
if (newItems.length) {
|
|
41
|
+
const newItemPromises = newItems.map(item => params.itrackAdapter.addPolicy(item));
|
|
42
|
+
const newItemResponses = await Promise.all(newItemPromises);
|
|
43
|
+
syncFulfillmentPolicyResponse.push(...newItemResponses);
|
|
44
|
+
}
|
|
45
|
+
if (existingItems.length) {
|
|
46
|
+
const updateItemPromises = existingItems.map(item => params.itrackAdapter.updatePolicy(item));
|
|
47
|
+
const updateItemResponses = await Promise.all(updateItemPromises);
|
|
48
|
+
syncFulfillmentPolicyResponse.push(...updateItemResponses);
|
|
49
|
+
}
|
|
50
|
+
if (unusedItems.length) {
|
|
51
|
+
const deleteItemPromises = unusedItems.map(item => params.itrackAdapter.deletePolicy(item));
|
|
52
|
+
const deleteItemResponses = await Promise.all(deleteItemPromises);
|
|
53
|
+
syncFulfillmentPolicyResponse.push(...deleteItemResponses);
|
|
54
|
+
}
|
|
55
|
+
console.log(JSON.stringify(syncFulfillmentPolicyResponse));
|
|
56
|
+
// We don't really care about the response here, though we should probably do something
|
|
57
|
+
// better about errors
|
|
58
|
+
return syncFulfillmentPolicyResponse;
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=SyncFulfillmentPolicies.js.map
|