@devx-commerce/plugin-gati 0.0.2-beta.37 → 0.0.2-beta.39

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.
Files changed (49) hide show
  1. package/.medusa/server/src/api/admin/erp-event/middlewares.js +17 -0
  2. package/.medusa/server/src/api/admin/erp-event/query-config.js +23 -0
  3. package/.medusa/server/src/api/admin/erp-event/route.js +22 -0
  4. package/.medusa/server/src/api/admin/erp-event/utils.js +20 -0
  5. package/.medusa/server/src/api/admin/erp-event/validators.js +9 -0
  6. package/.medusa/server/src/api/admin/middlewares.js +11 -0
  7. package/.medusa/server/src/api/erp/webhook/config.js +88 -0
  8. package/.medusa/server/src/api/erp/webhook/route.js +32 -126
  9. package/.medusa/server/src/api/erp/webhook/utils.js +61 -0
  10. package/.medusa/server/src/api/middlewares.js +12 -0
  11. package/.medusa/server/src/lib/api-response.js +103 -0
  12. package/.medusa/server/src/modules/extended-product/migrations/Migration20250620030100.js +36 -0
  13. package/.medusa/server/src/modules/extended-product/models/extended-product.js +4 -3
  14. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250620030335.js +32 -0
  15. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250620030522.js +20 -0
  16. package/.medusa/server/src/modules/extended-variant/models/extended-variant.js +6 -5
  17. package/.medusa/server/src/subscribers/party-master-location.js +1 -2
  18. package/.medusa/server/src/workflows/create-extended-product-from-product/index.js +13 -3
  19. package/.medusa/server/src/workflows/create-extended-product-from-product/steps/create-extended-product.js +1 -1
  20. package/.medusa/server/src/workflows/create-extended-product-from-product/steps/create-style-exploration-lines.js +1 -2
  21. package/.medusa/server/src/workflows/create-extended-variant-from-variant/index.js +13 -3
  22. package/.medusa/server/src/workflows/party-master/index.js +22 -4
  23. package/.medusa/server/src/workflows/party-style-master/index.js +19 -0
  24. package/.medusa/server/src/workflows/party-style-master/steps/delete-party-style-master.js +40 -0
  25. package/.medusa/server/src/workflows/party-style-master/steps/fetch-party-styles.js +70 -0
  26. package/.medusa/server/src/workflows/party-style-master/steps/index.js +19 -0
  27. package/.medusa/server/src/workflows/{create-or-update-party-style-master/index.js → party-style-master/workflows/create-or-update-party-style-master.js} +6 -6
  28. package/.medusa/server/src/workflows/party-style-master/workflows/delete-party-style-master.js +13 -0
  29. package/.medusa/server/src/workflows/party-style-master/workflows/index.js +19 -0
  30. package/.medusa/server/src/workflows/raw-master/steps/create-raw.js +1 -2
  31. package/.medusa/server/src/workflows/style-master/index.js +19 -0
  32. package/.medusa/server/src/workflows/style-master/steps/delete-style-master.js +38 -0
  33. package/.medusa/server/src/workflows/style-master/steps/fetch-styles.js +70 -0
  34. package/.medusa/server/src/workflows/style-master/steps/index.js +19 -0
  35. package/.medusa/server/src/workflows/style-master/workflows/create-or-update-style-master.js +326 -0
  36. package/.medusa/server/src/workflows/style-master/workflows/delete-style-master.js +24 -0
  37. package/.medusa/server/src/workflows/style-master/workflows/index.js +19 -0
  38. package/.medusa/server/src/workflows/types/index.js +1 -1
  39. package/package.json +1 -1
  40. package/.medusa/server/src/api/admin/plugin/route.js +0 -7
  41. package/.medusa/server/src/modules/extended-product/migrations/Migration20250519043358.js +0 -27
  42. package/.medusa/server/src/modules/extended-product/migrations/Migration20250601030519.js +0 -23
  43. package/.medusa/server/src/modules/extended-product/migrations/Migration20250613064237.js +0 -14
  44. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250507055941.js +0 -27
  45. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250508025507.js +0 -14
  46. package/.medusa/server/src/modules/extended-variant/migrations/Migration20250601045242.js +0 -18
  47. package/.medusa/server/src/workflows/create-or-update-party-style-master/steps/fetch-party-styles.js +0 -70
  48. package/.medusa/server/src/workflows/create-or-update-style-master/index.js +0 -326
  49. package/.medusa/server/src/workflows/create-or-update-style-master/steps/fetch-styles.js +0 -70
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const framework_1 = require("@medusajs/framework");
4
+ const query_config_1 = require("./query-config");
5
+ const validators_1 = require("./validators");
6
+ exports.default = (0, framework_1.defineMiddlewares)({
7
+ routes: [
8
+ {
9
+ method: ["GET"],
10
+ matcher: "/admin/erp-event",
11
+ middlewares: [
12
+ (0, framework_1.validateAndTransformQuery)(validators_1.AdminGetErpEventParams, query_config_1.adminErpEventQueryConfig.list),
13
+ ],
14
+ },
15
+ ],
16
+ });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2VycC1ldmVudC9taWRkbGV3YXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLG1EQUc2QjtBQUU3QixpREFBMEQ7QUFDMUQsNkNBQXNEO0FBRXRELGtCQUFlLElBQUEsNkJBQWlCLEVBQUM7SUFDL0IsTUFBTSxFQUFFO1FBQ047WUFDRSxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDZixPQUFPLEVBQUUsa0JBQWtCO1lBQzNCLFdBQVcsRUFBRTtnQkFDWCxJQUFBLHFDQUF5QixFQUN2QixtQ0FBc0IsRUFDdEIsdUNBQXdCLENBQUMsSUFBSSxDQUM5QjthQUNGO1NBQ0Y7S0FDRjtDQUNGLENBQUMsQ0FBQyJ9
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.adminErpEventQueryConfig = exports.adminErpEventFields = void 0;
4
+ exports.adminErpEventFields = [
5
+ "id",
6
+ "datafor",
7
+ "operation",
8
+ "data",
9
+ "created_at",
10
+ "updated_at",
11
+ "deleted_at",
12
+ ];
13
+ exports.adminErpEventQueryConfig = {
14
+ list: {
15
+ defaults: exports.adminErpEventFields,
16
+ isList: true,
17
+ },
18
+ retrieve: {
19
+ defaults: exports.adminErpEventFields,
20
+ isList: false,
21
+ },
22
+ };
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwaS9hZG1pbi9lcnAtZXZlbnQvcXVlcnktY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFhLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsSUFBSTtJQUNKLFNBQVM7SUFDVCxXQUFXO0lBQ1gsTUFBTTtJQUNOLFlBQVk7SUFDWixZQUFZO0lBQ1osWUFBWTtDQUNiLENBQUM7QUFFVyxRQUFBLHdCQUF3QixHQUFHO0lBQ3RDLElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRSwyQkFBbUI7UUFDN0IsTUFBTSxFQUFFLElBQUk7S0FDYjtJQUNELFFBQVEsRUFBRTtRQUNSLFFBQVEsRUFBRSwyQkFBbUI7UUFDN0IsTUFBTSxFQUFFLEtBQUs7S0FDZDtDQUNGLENBQUMifQ==
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const api_response_1 = require("../../../lib/api-response");
6
+ const GET = async (req, res) => {
7
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
8
+ const { data: erp_events, metadata } = await query.graph({
9
+ entity: "erp_event",
10
+ fields: req.queryConfig.fields,
11
+ filters: req.filterableFields,
12
+ pagination: req.queryConfig.pagination,
13
+ });
14
+ return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)({
15
+ erp_events,
16
+ count: metadata.count,
17
+ offset: metadata.skip,
18
+ limit: metadata.take,
19
+ }, "Fetched ERP Events"));
20
+ };
21
+ exports.GET = GET;
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2VycC1ldmVudC9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxxREFBc0U7QUFFdEUsNERBR21DO0FBRTVCLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFDdEIsR0FBK0IsRUFDL0IsR0FBbUIsRUFDbkIsRUFBRTtJQUNGLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRWpFLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUN2RCxNQUFNLEVBQUUsV0FBVztRQUNuQixNQUFNLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNO1FBQzlCLE9BQU8sRUFBRSxHQUFHLENBQUMsZ0JBQWdCO1FBQzdCLFVBQVUsRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLFVBQVU7S0FDdkMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxJQUFBLDhCQUFlLEVBQ3BCLEdBQUcsRUFDSCxJQUFBLG9DQUFxQixFQUNuQjtRQUNFLFVBQVU7UUFDVixLQUFLLEVBQUUsUUFBUyxDQUFDLEtBQUs7UUFDdEIsTUFBTSxFQUFFLFFBQVMsQ0FBQyxJQUFJO1FBQ3RCLEtBQUssRUFBRSxRQUFTLENBQUMsSUFBSTtLQUN0QixFQUNELG9CQUFvQixDQUNyQixDQUNGLENBQUM7QUFDSixDQUFDLENBQUM7QUF6QlcsUUFBQSxHQUFHLE9BeUJkIn0=
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleSearchMiddleware = void 0;
4
+ const handleSearchMiddleware = (req, _res, next) => {
5
+ const { q } = req.validatedQuery || {};
6
+ if (q && typeof q === "string") {
7
+ req.filterableFields = req.filterableFields || {};
8
+ req.filterableFields.$or = [
9
+ { handle: { $ilike: `%${q}%` } },
10
+ { award_name: { $ilike: `%${q}%` } },
11
+ { awarded_by_name: { $ilike: `%${q}%` } },
12
+ { description: { $ilike: `%${q}%` } },
13
+ { status: { $ilike: `%${q}%` } },
14
+ ];
15
+ delete req.validatedQuery.q;
16
+ }
17
+ next();
18
+ };
19
+ exports.handleSearchMiddleware = handleSearchMiddleware;
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2VycC1ldmVudC91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHTyxNQUFNLHNCQUFzQixHQUFHLENBQ2xDLEdBQWtCLEVBQ2xCLElBQW9CLEVBQ3BCLElBQXdCLEVBQ3hCLEVBQUU7SUFDRixNQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQUM7SUFFdkMsSUFBSSxDQUFDLElBQUksT0FBTyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDL0IsR0FBRyxDQUFDLGdCQUFnQixHQUFHLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLENBQUM7UUFFbEQsR0FBRyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsR0FBRztZQUN6QixFQUFFLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDaEMsRUFBRSxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3BDLEVBQUUsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUN6QyxFQUFFLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDckMsRUFBRSxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFO1NBQ2pDLENBQUM7UUFFRixPQUFPLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFJLEVBQUUsQ0FBQztBQUNULENBQUMsQ0FBQztBQXRCUyxRQUFBLHNCQUFzQiwwQkFzQi9CIn0=
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AdminGetErpEventParams = void 0;
4
+ const validators_1 = require("@medusajs/medusa/api/utils/validators");
5
+ exports.AdminGetErpEventParams = (0, validators_1.createFindParams)({
6
+ offset: 0,
7
+ limit: 1000,
8
+ });
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvYWRtaW4vZXJwLWV2ZW50L3ZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0Esc0VBQXlFO0FBRzVELFFBQUEsc0JBQXNCLEdBQUcsSUFBQSw2QkFBZ0IsRUFBQztJQUNyRCxNQUFNLEVBQUUsQ0FBQztJQUNULEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQyxDQUFDIn0=
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const framework_1 = require("@medusajs/framework");
7
+ const middlewares_1 = __importDefault(require("./erp-event/middlewares"));
8
+ exports.default = (0, framework_1.defineMiddlewares)({
9
+ routes: [...(middlewares_1.default.routes || [])],
10
+ });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbURBQXdEO0FBRXhELDBFQUErRDtBQUUvRCxrQkFBZSxJQUFBLDZCQUFpQixFQUFDO0lBQy9CLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxxQkFBd0IsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUM7Q0FDckQsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DELETE_ONLY_IDS_MASTERS = exports.MASTER_WORKFLOW_CONFIG = void 0;
4
+ exports.getWorkflowInput = getWorkflowInput;
5
+ const category_group_master_1 = require("../../../workflows/category-group-master");
6
+ const category_master_1 = require("../../../workflows/category-master");
7
+ const collection_group_master_1 = require("../../../workflows/collection-group-master");
8
+ const collection_master_1 = require("../../../workflows/collection-master");
9
+ const party_master_1 = require("../../../workflows/party-master");
10
+ const party_style_master_1 = require("../../../workflows/party-style-master");
11
+ const raw_master_1 = require("../../../workflows/raw-master");
12
+ const shape_master_1 = require("../../../workflows/shape-master");
13
+ const workflows_1 = require("../../../workflows/style-master/workflows");
14
+ const sub_category_master_1 = require("../../../workflows/sub-category-master");
15
+ /**
16
+ * Configuration for different master types and their workflows
17
+ * This makes it easy to add new master types or modify existing ones
18
+ */
19
+ exports.MASTER_WORKFLOW_CONFIG = {
20
+ StyleMst: {
21
+ delete: (scope, data) => (0, workflows_1.deleteStyleMasterWorkflow)(scope).run({ input: { ids: data } }),
22
+ add: (scope, input) => (0, workflows_1.createOrUpdateStyleMasterWorkflow)(scope).run({ input }),
23
+ update: (scope, input) => (0, workflows_1.createOrUpdateStyleMasterWorkflow)(scope).run({ input }),
24
+ },
25
+ PartyStyleMst: {
26
+ delete: (scope, data) => (0, party_style_master_1.deletePartyStyleMasterWorkflow)(scope).run({ input: { ids: data } }),
27
+ add: (scope, input) => (0, party_style_master_1.createOrUpdatePartyStyleMasterWorkflow)(scope).run({ input }),
28
+ update: (scope, input) => (0, party_style_master_1.createOrUpdatePartyStyleMasterWorkflow)(scope).run({ input }),
29
+ },
30
+ ShapeMst: {
31
+ delete: (scope, input) => (0, shape_master_1.shapeMasterWorkflow)(scope).run({ input }),
32
+ add: (scope, input) => (0, shape_master_1.shapeMasterWorkflow)(scope).run({ input }),
33
+ update: (scope, input) => (0, shape_master_1.shapeMasterWorkflow)(scope).run({ input }),
34
+ },
35
+ RawMst: {
36
+ delete: (scope, input) => (0, raw_master_1.rawMasterWorkflow)(scope).run({ input }),
37
+ add: (scope, input) => (0, raw_master_1.rawMasterWorkflow)(scope).run({ input }),
38
+ update: (scope, input) => (0, raw_master_1.rawMasterWorkflow)(scope).run({ input }),
39
+ },
40
+ CollectionMst: {
41
+ delete: (scope, input) => (0, collection_master_1.collectionMasterWorkflow)(scope).run({ input }),
42
+ add: (scope, input) => (0, collection_master_1.collectionMasterWorkflow)(scope).run({ input }),
43
+ update: (scope, input) => (0, collection_master_1.collectionMasterWorkflow)(scope).run({ input }),
44
+ },
45
+ SubCategoryMst: {
46
+ delete: (scope, input) => (0, sub_category_master_1.subCategoryMasterWorkflow)(scope).run({ input }),
47
+ add: (scope, input) => (0, sub_category_master_1.subCategoryMasterWorkflow)(scope).run({ input }),
48
+ update: (scope, input) => (0, sub_category_master_1.subCategoryMasterWorkflow)(scope).run({ input }),
49
+ },
50
+ CategoryMst: {
51
+ delete: (scope, input) => (0, category_master_1.categoryMasterWorkflow)(scope).run({ input }),
52
+ add: (scope, input) => (0, category_master_1.categoryMasterWorkflow)(scope).run({ input }),
53
+ update: (scope, input) => (0, category_master_1.categoryMasterWorkflow)(scope).run({ input }),
54
+ },
55
+ CategoryGroupMst: {
56
+ delete: (scope, input) => (0, category_group_master_1.categoryGroupMasterWorkflow)(scope).run({ input }),
57
+ add: (scope, input) => (0, category_group_master_1.categoryGroupMasterWorkflow)(scope).run({ input }),
58
+ update: (scope, input) => (0, category_group_master_1.categoryGroupMasterWorkflow)(scope).run({ input }),
59
+ },
60
+ CollectionGroupMst: {
61
+ delete: (scope, input) => (0, collection_group_master_1.collectionGroupMasterWorkflow)(scope).run({ input }),
62
+ add: (scope, input) => (0, collection_group_master_1.collectionGroupMasterWorkflow)(scope).run({ input }),
63
+ update: (scope, input) => (0, collection_group_master_1.collectionGroupMasterWorkflow)(scope).run({ input }),
64
+ },
65
+ PartyMst: {
66
+ delete: (scope, input) => (0, party_master_1.partyMasterWorkflow)(scope).run({ input }),
67
+ add: (scope, input) => (0, party_master_1.partyMasterWorkflow)(scope).run({ input }),
68
+ update: (scope, input) => (0, party_master_1.partyMasterWorkflow)(scope).run({ input }),
69
+ },
70
+ };
71
+ /**
72
+ * Master types that expect only the ids array for delete operations
73
+ */
74
+ exports.DELETE_ONLY_IDS_MASTERS = [
75
+ "StyleMst",
76
+ "PartyStyleMst",
77
+ ];
78
+ /**
79
+ * Helper function to determine the input format for a workflow
80
+ */
81
+ function getWorkflowInput(datafor, operation, data) {
82
+ // For delete operations, some workflows expect just the ids array
83
+ if (operation === "delete" && exports.DELETE_ONLY_IDS_MASTERS.includes(datafor)) {
84
+ return data;
85
+ }
86
+ return { datafor, operation, data };
87
+ }
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwaS9lcnAvd2ViaG9vay9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBb0lBLDRDQVdDO0FBL0lELG9GQUF1RjtBQUN2Rix3RUFBNEU7QUFDNUUsd0ZBQTJGO0FBQzNGLDRFQUFnRjtBQUNoRixrRUFBc0U7QUFDdEUsOEVBRytDO0FBQy9DLDhEQUFrRTtBQUNsRSxrRUFBc0U7QUFDdEUseUVBR21EO0FBQ25ELGdGQUFtRjtBQXdCbkY7OztHQUdHO0FBQ1UsUUFBQSxzQkFBc0IsR0FBdUM7SUFDeEUsUUFBUSxFQUFFO1FBQ1IsTUFBTSxFQUFFLENBQUMsS0FBVSxFQUFFLElBQWMsRUFBRSxFQUFFLENBQ3JDLElBQUEscUNBQXlCLEVBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7UUFDaEUsR0FBRyxFQUFFLENBQUMsS0FBVSxFQUFFLEtBQVUsRUFBRSxFQUFFLENBQzlCLElBQUEsNkNBQWlDLEVBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDekQsTUFBTSxFQUFFLENBQUMsS0FBVSxFQUFFLEtBQVUsRUFBRSxFQUFFLENBQ2pDLElBQUEsNkNBQWlDLEVBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7S0FDMUQ7SUFDRCxhQUFhLEVBQUU7UUFDYixNQUFNLEVBQUUsQ0FBQyxLQUFVLEVBQUUsSUFBYyxFQUFFLEVBQUUsQ0FDckMsSUFBQSxtREFBOEIsRUFBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUNyRSxHQUFHLEVBQUUsQ0FBQyxLQUFVLEVBQUUsS0FB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
@@ -1,33 +1,39 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.POST = POST;
7
4
  const framework_1 = require("@medusajs/framework");
8
- const category_group_master_1 = require("../../../workflows/category-group-master");
9
- const category_master_1 = require("../../../workflows/category-master");
10
- const collection_group_master_1 = require("../../../workflows/collection-group-master");
11
- const collection_master_1 = require("../../../workflows/collection-master");
12
- const create_or_update_party_style_master_1 = __importDefault(require("../../../workflows/create-or-update-party-style-master"));
13
- const create_or_update_style_master_1 = __importDefault(require("../../../workflows/create-or-update-style-master"));
14
5
  const erp_event_1 = require("../../../workflows/erp-event");
15
- const party_master_1 = require("../../../workflows/party-master");
16
- const raw_master_1 = require("../../../workflows/raw-master");
17
- const shape_master_1 = require("../../../workflows/shape-master");
18
- const sub_category_master_1 = require("../../../workflows/sub-category-master");
6
+ const config_1 = require("./config");
7
+ const utils_1 = require("./utils");
8
+ /**
9
+ * Processes the webhook request by executing the appropriate workflow
10
+ */
11
+ async function processWebhookRequest(scope, datafor, operation, data) {
12
+ const workflowConfig = config_1.MASTER_WORKFLOW_CONFIG[datafor];
13
+ if (!workflowConfig) {
14
+ throw new Error(`Unsupported datafor type: ${datafor}`);
15
+ }
16
+ const workflowHandler = workflowConfig[operation];
17
+ if (!workflowHandler) {
18
+ throw new Error(`Unsupported operation: ${operation} for ${datafor}`);
19
+ }
20
+ const input = (0, config_1.getWorkflowInput)(datafor, operation, data);
21
+ await workflowHandler(scope, input);
22
+ }
23
+ /**
24
+ * Handles the webhook request
25
+ */
19
26
  async function POST(req, res) {
20
27
  try {
21
- const { datafor, operation, data } = req.body;
22
- if (!datafor || !operation || !Array.isArray(data)) {
23
- res.status(400).json({
24
- status: false,
25
- message: "Invalid request body. Required fields: datafor, operation, data (array)",
26
- });
28
+ // Validate request body
29
+ if (!(0, utils_1.validateWebhookRequest)(req.body)) {
30
+ (0, utils_1.sendErrorResponse)(res, 400, "Invalid request body. Required fields: datafor, operation (add|update|delete), data (array)");
27
31
  return;
28
32
  }
33
+ const { datafor, operation, data } = req.body;
29
34
  // Log the received data
30
35
  framework_1.logger.info(`Received webhook: ${operation} for ${datafor} with ${data.length} items`);
36
+ // Always log ERP event first
31
37
  await (0, erp_event_1.erpEventWorkflow)(req.scope).run({
32
38
  input: {
33
39
  datafor,
@@ -35,115 +41,15 @@ async function POST(req, res) {
35
41
  data,
36
42
  },
37
43
  });
38
- switch (datafor) {
39
- case "StyleMst":
40
- await (0, create_or_update_style_master_1.default)(req.scope).run({
41
- input: {
42
- datafor,
43
- operation,
44
- data,
45
- },
46
- });
47
- break;
48
- case "PartyStyleMst":
49
- await (0, create_or_update_party_style_master_1.default)(req.scope).run({
50
- input: {
51
- datafor,
52
- operation,
53
- data,
54
- },
55
- });
56
- break;
57
- case "ShapeMst":
58
- await (0, shape_master_1.shapeMasterWorkflow)(req.scope).run({
59
- input: {
60
- datafor,
61
- operation,
62
- data,
63
- },
64
- });
65
- break;
66
- case "RawMst":
67
- await (0, raw_master_1.rawMasterWorkflow)(req.scope).run({
68
- input: {
69
- datafor,
70
- operation,
71
- data,
72
- },
73
- });
74
- break;
75
- case "CollectionMst":
76
- await (0, collection_master_1.collectionMasterWorkflow)(req.scope).run({
77
- input: {
78
- datafor,
79
- operation,
80
- data,
81
- },
82
- });
83
- break;
84
- case "SubCategoryMst":
85
- await (0, sub_category_master_1.subCategoryMasterWorkflow)(req.scope).run({
86
- input: {
87
- datafor,
88
- operation,
89
- data,
90
- },
91
- });
92
- break;
93
- case "CategoryMst":
94
- await (0, category_master_1.categoryMasterWorkflow)(req.scope).run({
95
- input: {
96
- datafor,
97
- operation,
98
- data,
99
- },
100
- });
101
- break;
102
- case "CategoryGroupMst":
103
- await (0, category_group_master_1.categoryGroupMasterWorkflow)(req.scope).run({
104
- input: {
105
- datafor,
106
- operation,
107
- data,
108
- },
109
- });
110
- break;
111
- case "CollectionGroupMst":
112
- await (0, collection_group_master_1.collectionGroupMasterWorkflow)(req.scope).run({
113
- input: {
114
- datafor,
115
- operation,
116
- data,
117
- },
118
- });
119
- break;
120
- case "PartyMst":
121
- await (0, party_master_1.partyMasterWorkflow)(req.scope).run({
122
- input: {
123
- datafor,
124
- operation,
125
- data,
126
- },
127
- });
128
- break;
129
- default:
130
- res.status(400).json({
131
- status: false,
132
- message: `Unsupported datafor type: ${datafor}`,
133
- });
134
- return;
135
- }
136
- res.status(200).json({
137
- status: true,
138
- message: `Successfully processed ${operation} for ${datafor}`,
139
- });
44
+ // Process the webhook request
45
+ await processWebhookRequest(req.scope, datafor, operation, data);
46
+ (0, utils_1.sendSuccessResponse)(res, `Successfully processed ${operation} for ${datafor}`);
140
47
  }
141
48
  catch (error) {
142
49
  framework_1.logger.error("Error processing webhook:", error);
143
- res.status(500).json({
144
- status: false,
145
- message: "Internal server error",
146
- });
50
+ // Provide more specific error messages
51
+ const errorMessage = error instanceof Error ? error.message : "Internal server error";
52
+ (0, utils_1.sendErrorResponse)(res, 500, errorMessage);
147
53
  }
148
54
  }
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2VycC93ZWJob29rL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBZ0JBLG9CQTJJQztBQTNKRCxtREFBNkM7QUFHN0Msb0ZBQXVGO0FBQ3ZGLHdFQUE0RTtBQUM1RSx3RkFBMkY7QUFDM0YsNEVBQWdGO0FBQ2hGLGlJQUEyRjtBQUMzRixxSEFBZ0Y7QUFDaEYsNERBQWdFO0FBQ2hFLGtFQUFzRTtBQUN0RSw4REFBa0U7QUFDbEUsa0VBQXNFO0FBQ3RFLGdGQUFtRjtBQUc1RSxLQUFLLFVBQVUsSUFBSSxDQUN4QixHQUFrQixFQUNsQixHQUFtQjtJQUVuQixJQUFJLENBQUM7UUFDSCxNQUFNLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsSUFBc0IsQ0FBQztRQUVoRSxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ25ELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUNuQixNQUFNLEVBQUUsS0FBSztnQkFDYixPQUFPLEVBQ0wseUVBQXlFO2FBQzVFLENBQUMsQ0FBQztZQUNILE9BQU87UUFDVCxDQUFDO1FBRUQsd0JBQXdCO1FBQ3hCLGtCQUFNLENBQUMsSUFBSSxDQUNULHFCQUFxQixTQUFTLFFBQVEsT0FBTyxTQUFTLElBQUksQ0FBQyxNQUFNLFFBQVEsQ0FDMUUsQ0FBQztRQUVGLE1BQU0sSUFBQSw0QkFBZ0IsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ3BDLEtBQUssRUFBRTtnQkFDTCxPQUFPO2dCQUNQLFNBQVM7Z0JBQ1QsSUFBSTthQUNMO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsUUFBUSxPQUFPLEVB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
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2VycC93ZWJob29rL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBNkNBLG9CQW9EQztBQWpHRCxtREFBNkM7QUFHN0MsNERBQWdFO0FBRWhFLHFDQUtrQjtBQUNsQixtQ0FJaUI7QUFFakI7O0dBRUc7QUFDSCxLQUFLLFVBQVUscUJBQXFCLENBQ2xDLEtBQVUsRUFDVixPQUFtQixFQUNuQixTQUFvQixFQUNwQixJQUFjO0lBRWQsTUFBTSxjQUFjLEdBQUcsK0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFdkQsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELE1BQU0sZUFBZSxHQUFHLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUVsRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQywwQkFBMEIsU0FBUyxRQUFRLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLElBQUEseUJBQWdCLEVBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6RCxNQUFNLGVBQWUsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDdEMsQ0FBQztBQUVEOztHQUVHO0FBQ0ksS0FBSyxVQUFVLElBQUksQ0FDeEIsR0FBa0IsRUFDbEIsR0FBbUI7SUFFbkIsSUFBSSxDQUFDO1FBQ0gsd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyxJQUFBLDhCQUFzQixFQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3RDLElBQUEseUJBQWlCLEVBQ2YsR0FBRyxFQUNILEdBQUcsRUFDSCw2RkFBNkYsQ0FDOUYsQ0FBQztZQUNGLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLElBQXNCLENBQUM7UUFFaEUsd0JBQXdCO1FBQ3hCLGtCQUFNLENBQUMsSUFBSSxDQUNULHFCQUFxQixTQUFTLFFBQVEsT0FBTyxTQUFTLElBQUksQ0FBQyxNQUFNLFFBQVEsQ0FDMUUsQ0FBQztRQUVGLDZCQUE2QjtRQUM3QixNQUFNLElBQUEsNEJBQWdCLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUNwQyxLQUFLLEVBQUU7Z0JBQ0wsT0FBTztnQkFDUCxTQUFTO2dCQUNULElBQUk7YUFDTDtTQUNGLENBQUMsQ0FBQztRQUVILDhCQUE4QjtRQUM5QixNQUFNLHFCQUFxQixDQUN6QixHQUFHLENBQUMsS0FBSyxFQUNULE9BQXFCLEVBQ3JCLFNBQVMsRUFDVCxJQUFJLENBQ0wsQ0FBQztRQUVGLElBQUEsMkJBQW1CLEVBQ2pCLEdBQUcsRUFDSCwwQkFBMEIsU0FBUyxRQUFRLE9BQU8sRUFBRSxDQUNyRCxDQUFDO0lBQ0osQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixrQkFBTSxDQUFDLEtBQUssQ0FBQywyQkFBMkIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVqRCx1Q0FBdUM7UUFDdkMsTUFBTSxZQUFZLEdBQ2hCLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDO1FBRW5FLElBQUEseUJBQWlCLEVBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUM1QyxDQUFDO0FBQ0gsQ0FBQyJ9
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateWebhookRequest = validateWebhookRequest;
4
+ exports.sendErrorResponse = sendErrorResponse;
5
+ exports.sendSuccessResponse = sendSuccessResponse;
6
+ exports.isSupportedMasterType = isSupportedMasterType;
7
+ exports.isSupportedOperation = isSupportedOperation;
8
+ /**
9
+ * Validates the webhook request body
10
+ */
11
+ function validateWebhookRequest(body) {
12
+ return (body &&
13
+ typeof body.datafor === "string" &&
14
+ ["add", "update", "delete"].includes(body.operation) &&
15
+ Array.isArray(body.data));
16
+ }
17
+ /**
18
+ * Sends a standardized error response
19
+ */
20
+ function sendErrorResponse(res, statusCode, message, data) {
21
+ res.status(statusCode).json({
22
+ status: false,
23
+ message,
24
+ ...(data && { data }),
25
+ });
26
+ }
27
+ /**
28
+ * Sends a standardized success response
29
+ */
30
+ function sendSuccessResponse(res, message, data) {
31
+ res.status(200).json({
32
+ status: true,
33
+ message,
34
+ ...(data && { data }),
35
+ });
36
+ }
37
+ /**
38
+ * Validates that the datafor type is supported
39
+ */
40
+ function isSupportedMasterType(datafor) {
41
+ const supportedTypes = [
42
+ "StyleMst",
43
+ "PartyStyleMst",
44
+ "ShapeMst",
45
+ "RawMst",
46
+ "CollectionMst",
47
+ "SubCategoryMst",
48
+ "CategoryMst",
49
+ "CategoryGroupMst",
50
+ "CollectionGroupMst",
51
+ "PartyMst",
52
+ ];
53
+ return supportedTypes.includes(datafor);
54
+ }
55
+ /**
56
+ * Validates that the operation is supported
57
+ */
58
+ function isSupportedOperation(operation) {
59
+ return ["add", "update", "delete"].includes(operation);
60
+ }
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2VycC93ZWJob29rL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBZUEsd0RBT0M7QUFLRCw4Q0FXQztBQUtELGtEQVVDO0FBS0Qsc0RBZUM7QUFLRCxvREFFQztBQXBFRDs7R0FFRztBQUNILFNBQWdCLHNCQUFzQixDQUFDLElBQVM7SUFDOUMsT0FBTyxDQUNMLElBQUk7UUFDSixPQUFPLElBQUksQ0FBQyxPQUFPLEtBQUssUUFBUTtRQUNoQyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDcEQsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQ3pCLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixpQkFBaUIsQ0FDL0IsR0FBbUIsRUFDbkIsVUFBa0IsRUFDbEIsT0FBZSxFQUNmLElBQVU7SUFFVixHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUMxQixNQUFNLEVBQUUsS0FBSztRQUNiLE9BQU87UUFDUCxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUM7S0FDdEIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsbUJBQW1CLENBQ2pDLEdBQW1CLEVBQ25CLE9BQWUsRUFDZixJQUFVO0lBRVYsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDbkIsTUFBTSxFQUFFLElBQUk7UUFDWixPQUFPO1FBQ1AsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDO0tBQ3RCLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLHFCQUFxQixDQUFDLE9BQWU7SUFDbkQsTUFBTSxjQUFjLEdBQUc7UUFDckIsVUFBVTtRQUNWLGVBQWU7UUFDZixVQUFVO1FBQ1YsUUFBUTtRQUNSLGVBQWU7UUFDZixnQkFBZ0I7UUFDaEIsYUFBYTtRQUNiLGtCQUFrQjtRQUNsQixvQkFBb0I7UUFDcEIsVUFBVTtLQUNYLENBQUM7SUFFRixPQUFPLGNBQWMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDMUMsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsU0FBaUI7SUFDcEQsT0FBTyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3pELENBQUMifQ==
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //Root middleware for all routes
7
+ const medusa_1 = require("@medusajs/medusa");
8
+ const middlewares_1 = __importDefault(require("./admin/middlewares"));
9
+ exports.default = (0, medusa_1.defineMiddlewares)({
10
+ routes: [...(middlewares_1.default.routes || [])],
11
+ });
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsZ0NBQWdDO0FBQ2hDLDZDQUFxRDtBQUVyRCxzRUFBbUQ7QUFFbkQsa0JBQWUsSUFBQSwwQkFBaUIsRUFBQztJQUMvQixNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMscUJBQWdCLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0NBQzdDLENBQUMsQ0FBQyJ9
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ErrorCode = exports.HttpStatus = void 0;
4
+ exports.createSuccessResponse = createSuccessResponse;
5
+ exports.createErrorResponse = createErrorResponse;
6
+ exports.sendApiResponse = sendApiResponse;
7
+ exports.createValidationErrorResponse = createValidationErrorResponse;
8
+ exports.createAuthenticationErrorResponse = createAuthenticationErrorResponse;
9
+ exports.createNotFoundErrorResponse = createNotFoundErrorResponse;
10
+ exports.createInternalErrorResponse = createInternalErrorResponse;
11
+ /**
12
+ * Standard HTTP status codes
13
+ */
14
+ var HttpStatus;
15
+ (function (HttpStatus) {
16
+ HttpStatus[HttpStatus["OK"] = 200] = "OK";
17
+ HttpStatus[HttpStatus["CREATED"] = 201] = "CREATED";
18
+ HttpStatus[HttpStatus["BAD_REQUEST"] = 400] = "BAD_REQUEST";
19
+ HttpStatus[HttpStatus["UNAUTHORIZED"] = 401] = "UNAUTHORIZED";
20
+ HttpStatus[HttpStatus["FORBIDDEN"] = 403] = "FORBIDDEN";
21
+ HttpStatus[HttpStatus["NOT_FOUND"] = 404] = "NOT_FOUND";
22
+ HttpStatus[HttpStatus["INTERNAL_SERVER_ERROR"] = 500] = "INTERNAL_SERVER_ERROR";
23
+ })(HttpStatus || (exports.HttpStatus = HttpStatus = {}));
24
+ /**
25
+ * Standard error codes
26
+ */
27
+ var ErrorCode;
28
+ (function (ErrorCode) {
29
+ ErrorCode["VALIDATION_ERROR"] = "VALIDATION_ERROR";
30
+ ErrorCode["AUTHENTICATION_ERROR"] = "AUTHENTICATION_ERROR";
31
+ ErrorCode["AUTHORIZATION_ERROR"] = "AUTHORIZATION_ERROR";
32
+ ErrorCode["NOT_FOUND_ERROR"] = "NOT_FOUND_ERROR";
33
+ ErrorCode["INTERNAL_ERROR"] = "INTERNAL_ERROR";
34
+ ErrorCode["NOT_FOUND"] = "NOT_FOUND";
35
+ })(ErrorCode || (exports.ErrorCode = ErrorCode = {}));
36
+ /**
37
+ * Creates a success response with standard format
38
+ * @param data Response data
39
+ * @param message Success message (defaults to "OK")
40
+ * @param status HTTP status code (defaults to 200)
41
+ * @returns Standardized success response
42
+ */
43
+ function createSuccessResponse(data, message = "OK", status = HttpStatus.OK) {
44
+ return {
45
+ data,
46
+ message,
47
+ status,
48
+ success: true,
49
+ };
50
+ }
51
+ /**
52
+ * Creates an error response with standard format
53
+ * @param message Error message
54
+ * @param status HTTP status code
55
+ * @param code Error code
56
+ * @param details Additional error details
57
+ * @returns Standardized error response
58
+ */
59
+ function createErrorResponse(message, status, code, details) {
60
+ return {
61
+ data: null,
62
+ message,
63
+ status,
64
+ success: false,
65
+ error: {
66
+ code,
67
+ details,
68
+ },
69
+ };
70
+ }
71
+ /**
72
+ * Utility function to send a standardized API response
73
+ * @param res Response object
74
+ * @param response Standardized API response
75
+ */
76
+ function sendApiResponse(res, response) {
77
+ res.status(response.status).json(response);
78
+ }
79
+ /**
80
+ * Helper function to create validation error response
81
+ */
82
+ function createValidationErrorResponse(message, details) {
83
+ return createErrorResponse(message, HttpStatus.BAD_REQUEST, ErrorCode.VALIDATION_ERROR, details);
84
+ }
85
+ /**
86
+ * Helper function to create authentication error response
87
+ */
88
+ function createAuthenticationErrorResponse(message = "Unauthorized") {
89
+ return createErrorResponse(message, HttpStatus.UNAUTHORIZED, ErrorCode.AUTHENTICATION_ERROR);
90
+ }
91
+ /**
92
+ * Helper function to create not found error response
93
+ */
94
+ function createNotFoundErrorResponse(message = "Resource not found") {
95
+ return createErrorResponse(message, HttpStatus.NOT_FOUND, ErrorCode.NOT_FOUND_ERROR);
96
+ }
97
+ /**
98
+ * Helper function to create internal server error response
99
+ */
100
+ function createInternalErrorResponse(message = "Internal server error") {
101
+ return createErrorResponse(message, HttpStatus.INTERNAL_SERVER_ERROR, ErrorCode.INTERNAL_ERROR);
102
+ }
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXJlc3BvbnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xpYi9hcGktcmVzcG9uc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBZ0RBLHNEQVdDO0FBVUQsa0RBZ0JDO0FBT0QsMENBS0M7QUFLRCxzRUFVQztBQUtELDhFQVFDO0FBS0Qsa0VBUUM7QUFLRCxrRUFRQztBQXZJRDs7R0FFRztBQUNILElBQVksVUFRWDtBQVJELFdBQVksVUFBVTtJQUNwQix5Q0FBUSxDQUFBO0lBQ1IsbURBQWEsQ0FBQTtJQUNiLDJEQUFpQixDQUFBO0lBQ2pCLDZEQUFrQixDQUFBO0lBQ2xCLHVEQUFlLENBQUE7SUFDZix1REFBZSxDQUFBO0lBQ2YsK0VBQTJCLENBQUE7QUFDN0IsQ0FBQyxFQVJXLFVBQVUsMEJBQVYsVUFBVSxRQVFyQjtBQUVEOztHQUVHO0FBQ0gsSUFBWSxTQU9YO0FBUEQsV0FBWSxTQUFTO0lBQ25CLGtEQUFxQyxDQUFBO0lBQ3JDLDBEQUE2QyxDQUFBO0lBQzdDLHdEQUEyQyxDQUFBO0lBQzNDLGdEQUFtQyxDQUFBO0lBQ25DLDhDQUFpQyxDQUFBO0lBQ2pDLG9DQUF1QixDQUFBO0FBQ3pCLENBQUMsRUFQVyxTQUFTLHlCQUFULFNBQVMsUUFPcEI7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixxQkFBcUIsQ0FDbkMsSUFBTyxFQUNQLE9BQU8sR0FBRyxJQUFJLEVBQ2QsTUFBTSxHQUFHLFVBQVUsQ0FBQyxFQUFFO0lBRXRCLE9BQU87UUFDTCxJQUFJO1FBQ0osT0FBTztRQUNQLE1BQU07UUFDTixPQUFPLEVBQUUsSUFBSTtLQUNkLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLG1CQUFtQixDQUNqQyxPQUFlLEVBQ2YsTUFBa0IsRUFDbEIsSUFBZSxFQUNmLE9BQWlDO0lBRWpDLE9BQU87UUFDTCxJQUFJLEVBQUUsSUFBSTtRQUNWLE9BQU87UUFDUCxNQUFNO1FBQ04sT0FBTyxFQUFFLEtBQUs7UUFDZCxLQUFLLEVBQUU7WUFDTCxJQUFJO1lBQ0osT0FBTztTQUNSO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsZUFBZSxDQUM3QixHQUFtQixFQUNuQixRQUF3QjtJQUV4QixHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDN0MsQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsNkJBQTZCLENBQzNDLE9BQWUsRUFDZixPQUFpQztJQUVqQyxPQUFPLG1CQUFtQixDQUN4QixPQUFPLEVBQ1AsVUFBVSxDQUFDLFdBQVcsRUFDdEIsU0FBUyxDQUFDLGdCQUFnQixFQUMxQixPQUFPLENBQ1IsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGlDQUFpQyxDQUMvQyxPQUFPLEdBQUcsY0FBYztJQUV4QixPQUFPLG1CQUFtQixDQUN4QixPQUFPLEVBQ1AsVUFBVSxDQUFDLFlBQVksRUFDdkIsU0FBUyxDQUFDLG9CQUFvQixDQUMvQixDQUFDO0FBQ0osQ0FBQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsMkJBQTJCLENBQ3pDLE9BQU8sR0FBRyxvQkFBb0I7SUFFOUIsT0FBTyxtQkFBbUIsQ0FDeEIsT0FBTyxFQUNQLFVBQVUsQ0FBQyxTQUFTLEVBQ3BCLFNBQVMsQ0FBQyxlQUFlLENBQzFCLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQiwyQkFBMkIsQ0FDekMsT0FBTyxHQUFHLHVCQUF1QjtJQUVqQyxPQUFPLG1CQUFtQixDQUN4QixPQUFPLEVBQ1AsVUFBVSxDQUFDLHFCQUFxQixFQUNoQyxTQUFTLENBQUMsY0FBYyxDQUN6QixDQUFDO0FBQ0osQ0FBQyJ9