medusa-plugin-complaints 0.1.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.
Files changed (67) hide show
  1. package/.medusa/server/medusa-config.d.ts +1 -0
  2. package/.medusa/server/medusa-config.js +23 -0
  3. package/.medusa/server/src/admin/index.js +8633 -0
  4. package/.medusa/server/src/admin/index.mjs +8631 -0
  5. package/.medusa/server/src/api/admin/complaint-stats/products/[id]/route.d.ts +3 -0
  6. package/.medusa/server/src/api/admin/complaint-stats/products/[id]/route.js +21 -0
  7. package/.medusa/server/src/api/admin/complaint-stats/recalculate/route.d.ts +2 -0
  8. package/.medusa/server/src/api/admin/complaint-stats/recalculate/route.js +40 -0
  9. package/.medusa/server/src/api/admin/complaint-stats/route.d.ts +1 -0
  10. package/.medusa/server/src/api/admin/complaint-stats/route.js +16 -0
  11. package/.medusa/server/src/api/admin/complaint-tags/[id]/route.d.ts +5 -0
  12. package/.medusa/server/src/api/admin/complaint-tags/[id]/route.js +34 -0
  13. package/.medusa/server/src/api/admin/complaint-tags/route.d.ts +5 -0
  14. package/.medusa/server/src/api/admin/complaint-tags/route.js +37 -0
  15. package/.medusa/server/src/api/admin/complaints/[id]/activities/[entryId]/route.d.ts +5 -0
  16. package/.medusa/server/src/api/admin/complaints/[id]/activities/[entryId]/route.js +35 -0
  17. package/.medusa/server/src/api/admin/complaints/[id]/activities/route.d.ts +5 -0
  18. package/.medusa/server/src/api/admin/complaints/[id]/activities/route.js +43 -0
  19. package/.medusa/server/src/api/admin/complaints/[id]/notes/[noteId]/route.d.ts +4 -0
  20. package/.medusa/server/src/api/admin/complaints/[id]/notes/[noteId]/route.js +20 -0
  21. package/.medusa/server/src/api/admin/complaints/[id]/notes/route.d.ts +3 -0
  22. package/.medusa/server/src/api/admin/complaints/[id]/notes/route.js +12 -0
  23. package/.medusa/server/src/api/admin/complaints/[id]/route.d.ts +5 -0
  24. package/.medusa/server/src/api/admin/complaints/[id]/route.js +43 -0
  25. package/.medusa/server/src/api/admin/complaints/route.d.ts +5 -0
  26. package/.medusa/server/src/api/admin/complaints/route.js +48 -0
  27. package/.medusa/server/src/api/middlewares.d.ts +2 -0
  28. package/.medusa/server/src/api/middlewares.js +150 -0
  29. package/.medusa/server/src/api/validators.d.ts +547 -0
  30. package/.medusa/server/src/api/validators.js +215 -0
  31. package/.medusa/server/src/jobs/update-complaint-stats.d.ts +6 -0
  32. package/.medusa/server/src/jobs/update-complaint-stats.js +50 -0
  33. package/.medusa/server/src/links/complaint-activity-user.d.ts +2 -0
  34. package/.medusa/server/src/links/complaint-activity-user.js +15 -0
  35. package/.medusa/server/src/links/complaint-customer.d.ts +2 -0
  36. package/.medusa/server/src/links/complaint-customer.js +15 -0
  37. package/.medusa/server/src/links/complaint-order.d.ts +2 -0
  38. package/.medusa/server/src/links/complaint-order.js +15 -0
  39. package/.medusa/server/src/links/complaint-product.d.ts +2 -0
  40. package/.medusa/server/src/links/complaint-product.js +15 -0
  41. package/.medusa/server/src/links/customer-complaint.d.ts +2 -0
  42. package/.medusa/server/src/links/customer-complaint.js +18 -0
  43. package/.medusa/server/src/links/order-complaint.d.ts +2 -0
  44. package/.medusa/server/src/links/order-complaint.js +18 -0
  45. package/.medusa/server/src/links/product-complaint.d.ts +2 -0
  46. package/.medusa/server/src/links/product-complaint.js +18 -0
  47. package/.medusa/server/src/links/user-complaint-activity.d.ts +2 -0
  48. package/.medusa/server/src/links/user-complaint-activity.js +18 -0
  49. package/.medusa/server/src/modules/complaint/index.d.ts +64 -0
  50. package/.medusa/server/src/modules/complaint/index.js +25 -0
  51. package/.medusa/server/src/modules/complaint/migrations/Migration20260409171742.d.ts +5 -0
  52. package/.medusa/server/src/modules/complaint/migrations/Migration20260409171742.js +36 -0
  53. package/.medusa/server/src/modules/complaint/models/complaint-activity.d.ts +30 -0
  54. package/.medusa/server/src/modules/complaint/models/complaint-activity.js +22 -0
  55. package/.medusa/server/src/modules/complaint/models/complaint-product-stat.d.ts +9 -0
  56. package/.medusa/server/src/modules/complaint/models/complaint-product-stat.js +15 -0
  57. package/.medusa/server/src/modules/complaint/models/complaint-stat.d.ts +1 -0
  58. package/.medusa/server/src/modules/complaint/models/complaint-stat.js +8 -0
  59. package/.medusa/server/src/modules/complaint/models/complaint-tag.d.ts +25 -0
  60. package/.medusa/server/src/modules/complaint/models/complaint-tag.js +11 -0
  61. package/.medusa/server/src/modules/complaint/models/complaint.d.ts +29 -0
  62. package/.medusa/server/src/modules/complaint/models/complaint.js +32 -0
  63. package/.medusa/server/src/modules/complaint/service.d.ts +236 -0
  64. package/.medusa/server/src/modules/complaint/service.js +87 -0
  65. package/LICENSE +21 -0
  66. package/README.md +69 -0
  67. package/package.json +89 -0
@@ -0,0 +1,3 @@
1
+ import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework/http';
2
+ import { AdminGetComplaintProductStatsType } from '../../../../validators';
3
+ export declare const GET: (req: AuthenticatedMedusaRequest<AdminGetComplaintProductStatsType>, res: MedusaResponse) => Promise<void>;
@@ -0,0 +1,21 @@
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 GET = async (req, res) => {
6
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
7
+ const { id: product_id } = req.params;
8
+ console.log('Received request for complaint stats of product', product_id);
9
+ const { data: [complaintProductStat] } = await query.graph({
10
+ entity: 'complaint_product_stat',
11
+ ...req.queryConfig,
12
+ filters: { product_id }
13
+ });
14
+ if (!complaintProductStat) {
15
+ res.status(404).json({ error: 'Complaint stats not found for product' });
16
+ return;
17
+ }
18
+ res.json({ complaint_product_stat: complaintProductStat });
19
+ };
20
+ exports.GET = GET;
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvbXBsYWludC1zdGF0cy9wcm9kdWN0cy9baWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUFxRTtBQUs5RCxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3ZCLEdBQWtFLEVBQ2xFLEdBQW1CLEVBQ2xCLEVBQUU7SUFDSCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUVoRSxNQUFNLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7SUFDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpREFBaUQsRUFBRSxVQUFVLENBQUMsQ0FBQTtJQUUxRSxNQUFNLEVBQ0wsSUFBSSxFQUFFLENBQUMsb0JBQW9CLENBQUMsRUFDNUIsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDckIsTUFBTSxFQUFFLHdCQUF3QjtRQUNoQyxHQUFHLEdBQUcsQ0FBQyxXQUFXO1FBQ2xCLE9BQU8sRUFBRSxFQUFFLFVBQVUsRUFBRTtLQUN2QixDQUFDLENBQUE7SUFFRixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUMzQixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSx1Q0FBdUMsRUFBRSxDQUFDLENBQUE7UUFDeEUsT0FBTTtJQUNQLENBQUM7SUFFRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsc0JBQXNCLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFBO0FBQzNELENBQUMsQ0FBQTtBQXZCWSxRQUFBLEdBQUcsT0F1QmYifQ==
@@ -0,0 +1,2 @@
1
+ import { MedusaRequest, MedusaResponse } from '@medusajs/framework/http';
2
+ export declare const POST: (req: MedusaRequest, res: MedusaResponse) => Promise<void>;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const complaint_1 = require("../../../../modules/complaint");
6
+ const POST = async (req, res) => {
7
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
8
+ const limit = 100;
9
+ let offset = 0;
10
+ let totalCount = 0;
11
+ const orderCountsByProduct = {};
12
+ do {
13
+ const { data: orders, metadata } = await query.graph({
14
+ entity: 'order',
15
+ fields: ['id', 'items.*'],
16
+ pagination: {
17
+ take: limit,
18
+ skip: offset
19
+ }
20
+ });
21
+ totalCount = metadata?.count || 0;
22
+ offset += limit;
23
+ for (const order of orders) {
24
+ const productsInThisOrder = new Set();
25
+ for (const item of order.items || []) {
26
+ if (!item?.product_id)
27
+ continue;
28
+ productsInThisOrder.add(item.product_id);
29
+ }
30
+ for (const productId of productsInThisOrder) {
31
+ orderCountsByProduct[productId] = (orderCountsByProduct[productId] || 0) + 1;
32
+ }
33
+ }
34
+ } while (offset < totalCount);
35
+ const complaintService = req.scope.resolve(complaint_1.COMPLAINT_MODULE);
36
+ await complaintService.calculateComplaintRates(orderCountsByProduct);
37
+ res.json({ success: true });
38
+ };
39
+ exports.POST = POST;
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvbXBsYWludC1zdGF0cy9yZWNhbGN1bGF0ZS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBcUU7QUFDckUsNkRBQWdFO0FBR3pELE1BQU0sSUFBSSxHQUFHLEtBQUssRUFBRSxHQUFrQixFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUNyRSxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUVoRSxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUE7SUFDakIsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFBO0lBQ2QsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFBO0lBQ2xCLE1BQU0sb0JBQW9CLEdBQTJCLEVBQUUsQ0FBQTtJQUV2RCxHQUFHLENBQUM7UUFDSCxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDcEQsTUFBTSxFQUFFLE9BQU87WUFDZixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDO1lBQ3pCLFVBQVUsRUFBRTtnQkFDWCxJQUFJLEVBQUUsS0FBSztnQkFDWCxJQUFJLEVBQUUsTUFBTTthQUNaO1NBQ0QsQ0FBQyxDQUFBO1FBRUYsVUFBVSxHQUFHLFFBQVEsRUFBRSxLQUFLLElBQUksQ0FBQyxDQUFBO1FBQ2pDLE1BQU0sSUFBSSxLQUFLLENBQUE7UUFFZixLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQzVCLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQTtZQUU3QyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxJQUFJLEVBQUUsVUFBVTtvQkFBRSxTQUFRO2dCQUMvQixtQkFBbUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1lBQ3pDLENBQUM7WUFFRCxLQUFLLE1BQU0sU0FBUyxJQUFJLG1CQUFtQixFQUFFLENBQUM7Z0JBQzdDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQzdFLENBQUM7UUFDRixDQUFDO0lBQ0YsQ0FBQyxRQUFRLE1BQU0sR0FBRyxVQUFVLEVBQUM7SUFFN0IsTUFBTSxnQkFBZ0IsR0FBcUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsNEJBQWdCLENBQUMsQ0FBQTtJQUM5RSxNQUFNLGdCQUFnQixDQUFDLHVCQUF1QixDQUFDLG9CQUFvQixDQUFDLENBQUE7SUFDcEUsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0FBQzVCLENBQUMsQ0FBQTtBQXRDWSxRQUFBLElBQUksUUFzQ2hCIn0=
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ // show number of complaints in:
3
+ // last week
4
+ // last week annualized
5
+ // last month
6
+ // last month annualized
7
+ // last 3 months
8
+ // last 3 months annualized
9
+ // last 6 months
10
+ // last 6 months annualized
11
+ // last year
12
+ // all time
13
+ // all time annualized
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ // For annualized, calculate the complaint rate per product based on the number of complaints and the number of orders for that product in the same time period, then multiply by 365 to get an annualized rate. This will give a more accurate picture of complaint frequency relative to sales volume.
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvbXBsYWludC1zdGF0cy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsZ0NBQWdDO0FBQ2hDLFlBQVk7QUFDWix1QkFBdUI7QUFDdkIsYUFBYTtBQUNiLHdCQUF3QjtBQUN4QixnQkFBZ0I7QUFDaEIsMkJBQTJCO0FBQzNCLGdCQUFnQjtBQUNoQiwyQkFBMkI7QUFDM0IsWUFBWTtBQUNaLFdBQVc7QUFDWCxzQkFBc0I7O0FBRXRCLHdTQUF3UyJ9
@@ -0,0 +1,5 @@
1
+ import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework/http';
2
+ import { AdminGetComplaintTagType, AdminUpdateComplaintTagType } from '../../../validators';
3
+ export declare const GET: (req: AuthenticatedMedusaRequest<AdminGetComplaintTagType>, res: MedusaResponse) => Promise<void>;
4
+ export declare const POST: (req: AuthenticatedMedusaRequest<AdminUpdateComplaintTagType>, res: MedusaResponse) => Promise<void>;
5
+ export declare const DELETE: (req: AuthenticatedMedusaRequest, res: MedusaResponse) => Promise<void>;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DELETE = exports.POST = exports.GET = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const complaint_1 = require("../../../../modules/complaint");
6
+ const GET = async (req, res) => {
7
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
8
+ const { id } = req.params;
9
+ const { data: [complaintTag] } = await query.graph({
10
+ entity: 'complaint_tag',
11
+ fields: req.queryConfig.fields,
12
+ filters: { id }
13
+ }, { throwIfKeyNotFound: true });
14
+ res.json({ complaint_tag: complaintTag });
15
+ };
16
+ exports.GET = GET;
17
+ const POST = async (req, res) => {
18
+ const complaintService = req.scope.resolve(complaint_1.COMPLAINT_MODULE);
19
+ const { id } = req.params;
20
+ const complaintTag = await complaintService.updateComplaintTags({
21
+ id,
22
+ ...req.validatedBody
23
+ });
24
+ res.json({ complaint_tag: complaintTag });
25
+ };
26
+ exports.POST = POST;
27
+ const DELETE = async (req, res) => {
28
+ const { id } = req.params;
29
+ const complaintService = req.scope.resolve(complaint_1.COMPLAINT_MODULE);
30
+ await complaintService.deleteComplaintTags([id]);
31
+ res.json({ deleted: [id] });
32
+ };
33
+ exports.DELETE = DELETE;
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvbXBsYWludC10YWdzL1tpZF0vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBQXFFO0FBQ3JFLDZEQUFnRTtBQUl6RCxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3ZCLEdBQXlELEVBQ3pELEdBQW1CLEVBQ2xCLEVBQUU7SUFDSCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUNoRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUV6QixNQUFNLEVBQ0wsSUFBSSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQ3BCLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUNwQjtRQUNDLE1BQU0sRUFBRSxlQUFlO1FBQ3ZCLE1BQU0sRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU07UUFDOUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFO0tBQ2YsRUFDRCxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRSxDQUM1QixDQUFBO0lBRUQsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFBO0FBQzFDLENBQUMsQ0FBQTtBQW5CWSxRQUFBLEdBQUcsT0FtQmY7QUFFTSxNQUFNLElBQUksR0FBRyxLQUFLLEVBQ3hCLEdBQTRELEVBQzVELEdBQW1CLEVBQ2xCLEVBQUU7SUFDSCxNQUFNLGdCQUFnQixHQUFxQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyw0QkFBZ0IsQ0FBQyxDQUFBO0lBQzlFLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBQ3pCLE1BQU0sWUFBWSxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsbUJBQW1CLENBQUM7UUFDL0QsRUFBRTtRQUNGLEdBQUcsR0FBRyxDQUFDLGFBQWE7S0FDcEIsQ0FBQyxDQUFBO0lBQ0YsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFBO0FBQzFDLENBQUMsQ0FBQTtBQVhZLFFBQUEsSUFBSSxRQVdoQjtBQUVNLE1BQU0sTUFBTSxHQUFHLEtBQUssRUFBRSxHQUErQixFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUNwRixNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUN6QixNQUFNLGdCQUFnQixHQUFxQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyw0QkFBZ0IsQ0FBQyxDQUFBO0lBQzlFLE1BQU0sZ0JBQWdCLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ2hELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUE7QUFDNUIsQ0FBQyxDQUFBO0FBTFksUUFBQSxNQUFNLFVBS2xCIn0=
@@ -0,0 +1,5 @@
1
+ import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework/http';
2
+ import { AdminCreateComplaintTagType, AdminDeleteComplaintTagsType, AdminGetComplaintTagsType } from '../../validators';
3
+ export declare function GET(req: AuthenticatedMedusaRequest<AdminGetComplaintTagsType>, res: MedusaResponse): Promise<void>;
4
+ export declare const POST: (req: AuthenticatedMedusaRequest<AdminCreateComplaintTagType>, res: MedusaResponse) => Promise<void>;
5
+ export declare function DELETE(req: AuthenticatedMedusaRequest<AdminDeleteComplaintTagsType>, res: MedusaResponse): Promise<void>;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = void 0;
4
+ exports.GET = GET;
5
+ exports.DELETE = DELETE;
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const complaint_1 = require("../../../modules/complaint");
8
+ async function GET(req, res) {
9
+ const { q } = req.validatedQuery;
10
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
11
+ const { data: complaintTags, metadata } = await query.graph({
12
+ entity: 'complaint_tag',
13
+ ...req.queryConfig,
14
+ filters: {
15
+ ...(q ? { value: { $ilike: `%${q}%` } } : {})
16
+ }
17
+ });
18
+ res.json({
19
+ complaint_tags: complaintTags,
20
+ count: metadata?.count,
21
+ limit: metadata?.take,
22
+ offset: metadata?.skip
23
+ });
24
+ }
25
+ const POST = async (req, res) => {
26
+ const complaintService = req.scope.resolve(complaint_1.COMPLAINT_MODULE);
27
+ const complaintTag = await complaintService.createComplaintTags(req.validatedBody);
28
+ res.json({ complaint_tag: complaintTag });
29
+ };
30
+ exports.POST = POST;
31
+ async function DELETE(req, res) {
32
+ const complaintService = req.scope.resolve(complaint_1.COMPLAINT_MODULE);
33
+ const { ids } = req.validatedBody;
34
+ await complaintService.deleteComplaintTags(ids);
35
+ res.json({ deleted: ids });
36
+ }
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvbXBsYWludC10YWdzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVVBLGtCQW1CQztBQVdELHdCQVFDO0FBL0NELHFEQUFxRTtBQU1yRSwwREFBNkQ7QUFHdEQsS0FBSyxVQUFVLEdBQUcsQ0FDeEIsR0FBMEQsRUFDMUQsR0FBbUI7SUFFbkIsTUFBTSxFQUFFLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxjQUFjLENBQUE7SUFDaEMsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDaEUsTUFBTSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQzNELE1BQU0sRUFBRSxlQUFlO1FBQ3ZCLEdBQUcsR0FBRyxDQUFDLFdBQVc7UUFDbEIsT0FBTyxFQUFFO1lBQ1IsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUM3QztLQUNELENBQUMsQ0FBQTtJQUNGLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDUixjQUFjLEVBQUUsYUFBYTtRQUM3QixLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUs7UUFDdEIsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJO1FBQ3JCLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSTtLQUN0QixDQUFDLENBQUE7QUFDSCxDQUFDO0FBRU0sTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN4QixHQUE0RCxFQUM1RCxHQUFtQixFQUNsQixFQUFFO0lBQ0gsTUFBTSxnQkFBZ0IsR0FBcUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsNEJBQWdCLENBQUMsQ0FBQTtJQUM5RSxNQUFNLFlBQVksR0FBRyxNQUFNLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUNsRixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUE7QUFDMUMsQ0FBQyxDQUFBO0FBUFksUUFBQSxJQUFJLFFBT2hCO0FBRU0sS0FBSyxVQUFVLE1BQU0sQ0FDM0IsR0FBNkQsRUFDN0QsR0FBbUI7SUFFbkIsTUFBTSxnQkFBZ0IsR0FBcUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsNEJBQWdCLENBQUMsQ0FBQTtJQUM5RSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQTtJQUNqQyxNQUFNLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQy9DLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQTtBQUMzQixDQUFDIn0=
@@ -0,0 +1,5 @@
1
+ import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework/http';
2
+ import { AdminUpdateComplaintActivityType, AdminGetComplaintActivityType } from '../../../../../validators';
3
+ export declare const GET: (req: AuthenticatedMedusaRequest<AdminGetComplaintActivityType>, res: MedusaResponse) => Promise<void>;
4
+ export declare const POST: (req: AuthenticatedMedusaRequest<AdminUpdateComplaintActivityType>, res: MedusaResponse) => Promise<void>;
5
+ export declare const DELETE: (req: AuthenticatedMedusaRequest, res: MedusaResponse) => Promise<void>;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DELETE = exports.POST = exports.GET = void 0;
4
+ const complaint_1 = require("../../../../../../modules/complaint");
5
+ const GET = async (req, res) => {
6
+ const query = req.scope.resolve('query');
7
+ const { entryId } = req.params;
8
+ const { data: [activity] } = await query.graph({
9
+ entity: 'complaint_activity',
10
+ fields: req.queryConfig.fields,
11
+ filters: { id: entryId }
12
+ }, { throwIfKeyNotFound: true });
13
+ res.json({ activity });
14
+ };
15
+ exports.GET = GET;
16
+ const POST = async (req, res) => {
17
+ const { id: complaintId, entryId } = req.params;
18
+ const complaintService = req.scope.resolve(complaint_1.COMPLAINT_MODULE);
19
+ const activity = await complaintService.updateComplaintActivities({
20
+ id: entryId,
21
+ complaint_id: complaintId,
22
+ user_id: req.auth_context?.actor_id,
23
+ ...req.validatedBody
24
+ });
25
+ res.json({ activity });
26
+ };
27
+ exports.POST = POST;
28
+ const DELETE = async (req, res) => {
29
+ const { entryId } = req.params;
30
+ const complaintService = req.scope.resolve(complaint_1.COMPLAINT_MODULE);
31
+ await complaintService.deleteComplaintActivities([entryId]);
32
+ res.json({ deleted: [entryId] });
33
+ };
34
+ exports.DELETE = DELETE;
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvbXBsYWludHMvW2lkXS9hY3Rpdml0aWVzL1tlbnRyeUlkXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxtRUFBc0U7QUFPL0QsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN2QixHQUE4RCxFQUM5RCxHQUFtQixFQUNsQixFQUFFO0lBQ0gsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDeEMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7SUFFOUIsTUFBTSxFQUNMLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUNoQixHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FDcEI7UUFDQyxNQUFNLEVBQUUsb0JBQW9CO1FBQzVCLE1BQU0sRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLE1BQU07UUFDOUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRTtLQUN4QixFQUNELEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLENBQzVCLENBQUE7SUFDRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQTtBQUN2QixDQUFDLENBQUE7QUFsQlksUUFBQSxHQUFHLE9Ba0JmO0FBRU0sTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN4QixHQUFpRSxFQUNqRSxHQUFtQixFQUNsQixFQUFFO0lBQ0gsTUFBTSxFQUFFLEVBQUUsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUMvQyxNQUFNLGdCQUFnQixHQUFxQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyw0QkFBZ0IsQ0FBQyxDQUFBO0lBQzlFLE1BQU0sUUFBUSxHQUFHLE1BQU0sZ0JBQWdCLENBQUMseUJBQXlCLENBQUM7UUFDakUsRUFBRSxFQUFFLE9BQU87UUFDWCxZQUFZLEVBQUUsV0FBVztRQUN6QixPQUFPLEVBQUUsR0FBRyxDQUFDLFlBQVksRUFBRSxRQUFRO1FBQ25DLEdBQUcsR0FBRyxDQUFDLGFBQWE7S0FDcEIsQ0FBQyxDQUFBO0lBQ0YsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUE7QUFDdkIsQ0FBQyxDQUFBO0FBYlksUUFBQSxJQUFJLFFBYWhCO0FBRU0sTUFBTSxNQUFNLEdBQUcsS0FBSyxFQUFFLEdBQStCLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQ3BGLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBQzlCLE1BQU0sZ0JBQWdCLEdBQXFCLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLDRCQUFnQixDQUFDLENBQUE7SUFDOUUsTUFBTSxnQkFBZ0IsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFDM0QsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQUNqQyxDQUFDLENBQUE7QUFMWSxRQUFBLE1BQU0sVUFLbEIifQ==
@@ -0,0 +1,5 @@
1
+ import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework/http';
2
+ import { AdminCreateComplaintActivityType, AdminDeleteComplaintActivitiesType, AdminGetComplaintActivitiesType } from '../../../../validators';
3
+ export declare function GET(req: AuthenticatedMedusaRequest<AdminGetComplaintActivitiesType>, res: MedusaResponse): Promise<void>;
4
+ export declare const POST: (req: AuthenticatedMedusaRequest<AdminCreateComplaintActivityType>, res: MedusaResponse) => Promise<void>;
5
+ export declare const DELETE: (req: AuthenticatedMedusaRequest<AdminDeleteComplaintActivitiesType>, res: MedusaResponse) => Promise<void>;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DELETE = exports.POST = void 0;
4
+ exports.GET = GET;
5
+ const utils_1 = require("@medusajs/framework/utils");
6
+ const complaint_1 = require("../../../../../modules/complaint");
7
+ async function GET(req, res) {
8
+ const { q, id: complaint_id } = req.params;
9
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
10
+ const { data: activities, metadata } = await query.graph({
11
+ entity: 'complaint_activity',
12
+ ...req.queryConfig,
13
+ filters: {
14
+ complaint_id: complaint_id,
15
+ ...(q ? { description: { $ilike: `%${q}%` } } : {})
16
+ }
17
+ });
18
+ res.json({
19
+ activities,
20
+ count: metadata?.count,
21
+ limit: metadata?.take,
22
+ offset: metadata?.skip
23
+ });
24
+ }
25
+ const POST = async (req, res) => {
26
+ const { id: complaint_id } = req.params;
27
+ const complaintService = req.scope.resolve(complaint_1.COMPLAINT_MODULE);
28
+ const activity = await complaintService.createComplaintActivities({
29
+ user_id: req.auth_context?.actor_id,
30
+ complaint_id,
31
+ ...req.validatedBody
32
+ });
33
+ res.json({ activity });
34
+ };
35
+ exports.POST = POST;
36
+ const DELETE = async (req, res) => {
37
+ const { ids } = req.validatedBody;
38
+ const complaintService = req.scope.resolve(complaint_1.COMPLAINT_MODULE);
39
+ await complaintService.deleteComplaintActivities(ids);
40
+ res.json({ deleted: ids });
41
+ };
42
+ exports.DELETE = DELETE;
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvbXBsYWludHMvW2lkXS9hY3Rpdml0aWVzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVVBLGtCQW9CQztBQTdCRCxxREFBcUU7QUFDckUsZ0VBQW1FO0FBUTVELEtBQUssVUFBVSxHQUFHLENBQ3hCLEdBQWdFLEVBQ2hFLEdBQW1CO0lBRW5CLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7SUFDMUMsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDaEUsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3hELE1BQU0sRUFBRSxvQkFBb0I7UUFDNUIsR0FBRyxHQUFHLENBQUMsV0FBVztRQUNsQixPQUFPLEVBQUU7WUFDUixZQUFZLEVBQUUsWUFBWTtZQUMxQixHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ25EO0tBQ0QsQ0FBQyxDQUFBO0lBQ0YsR0FBRyxDQUFDLElBQUksQ0FBQztRQUNSLFVBQVU7UUFDVixLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUs7UUFDdEIsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJO1FBQ3JCLE1BQU0sRUFBRSxRQUFRLEVBQUUsSUFBSTtLQUN0QixDQUFDLENBQUE7QUFDSCxDQUFDO0FBRU0sTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN4QixHQUFpRSxFQUNqRSxHQUFtQixFQUNsQixFQUFFO0lBQ0gsTUFBTSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBQ3ZDLE1BQU0sZ0JBQWdCLEdBQXFCLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLDRCQUFnQixDQUFDLENBQUE7SUFDOUUsTUFBTSxRQUFRLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyx5QkFBeUIsQ0FBQztRQUNqRSxPQUFPLEVBQUUsR0FBRyxDQUFDLFlBQVksRUFBRSxRQUFRO1FBQ25DLFlBQVk7UUFDWixHQUFHLEdBQUcsQ0FBQyxhQUFhO0tBQ3BCLENBQUMsQ0FBQTtJQUNGLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFBO0FBQ3ZCLENBQUMsQ0FBQTtBQVpZLFFBQUEsSUFBSSxRQVloQjtBQUVNLE1BQU0sTUFBTSxHQUFHLEtBQUssRUFDMUIsR0FBbUUsRUFDbkUsR0FBbUIsRUFDbEIsRUFBRTtJQUNILE1BQU0sRUFBRSxHQUFHLEVBQUUsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFBO0lBQ2pDLE1BQU0sZ0JBQWdCLEdBQXFCLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLDRCQUFnQixDQUFDLENBQUE7SUFDOUUsTUFBTSxnQkFBZ0IsQ0FBQyx5QkFBeUIsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNyRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUE7QUFDM0IsQ0FBQyxDQUFBO0FBUlksUUFBQSxNQUFNLFVBUWxCIn0=
@@ -0,0 +1,4 @@
1
+ import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework/http';
2
+ import { AdminUpdateComplaintNoteType } from '../../../../../validators';
3
+ export declare const POST: (req: AuthenticatedMedusaRequest<AdminUpdateComplaintNoteType>, res: MedusaResponse) => Promise<void>;
4
+ export declare const DELETE: (req: AuthenticatedMedusaRequest, res: MedusaResponse) => Promise<void>;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DELETE = exports.POST = void 0;
4
+ const complaint_1 = require("../../../../../../modules/complaint");
5
+ const POST = async (req, res) => {
6
+ const { id, noteId } = req.params;
7
+ const { note } = req.validatedBody;
8
+ const complaintService = req.scope.resolve(complaint_1.COMPLAINT_MODULE);
9
+ const entry = await complaintService.updateNote(noteId, note);
10
+ res.json({ entry });
11
+ };
12
+ exports.POST = POST;
13
+ const DELETE = async (req, res) => {
14
+ const { noteId } = req.params;
15
+ const complaintService = req.scope.resolve(complaint_1.COMPLAINT_MODULE);
16
+ await complaintService.deleteComplaintActivities([noteId]);
17
+ res.json({ deleted: [noteId] });
18
+ };
19
+ exports.DELETE = DELETE;
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvbXBsYWludHMvW2lkXS9ub3Rlcy9bbm90ZUlkXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxtRUFBc0U7QUFJL0QsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN4QixHQUE2RCxFQUM3RCxHQUFtQixFQUNsQixFQUFFO0lBQ0gsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBQ2pDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBaUMsR0FBRyxDQUFDLGFBQWEsQ0FBQTtJQUNoRSxNQUFNLGdCQUFnQixHQUFxQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyw0QkFBZ0IsQ0FBQyxDQUFBO0lBQzlFLE1BQU0sS0FBSyxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUM3RCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtBQUNwQixDQUFDLENBQUE7QUFUWSxRQUFBLElBQUksUUFTaEI7QUFFTSxNQUFNLE1BQU0sR0FBRyxLQUFLLEVBQUUsR0FBK0IsRUFBRSxHQUFtQixFQUFFLEVBQUU7SUFDcEYsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7SUFDN0IsTUFBTSxnQkFBZ0IsR0FBcUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsNEJBQWdCLENBQUMsQ0FBQTtJQUM5RSxNQUFNLGdCQUFnQixDQUFDLHlCQUF5QixDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQTtJQUMxRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBQ2hDLENBQUMsQ0FBQTtBQUxZLFFBQUEsTUFBTSxVQUtsQiJ9
@@ -0,0 +1,3 @@
1
+ import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework/http';
2
+ import { AdminCreateComplaintNoteType } from '../../../../validators';
3
+ export declare const POST: (req: AuthenticatedMedusaRequest<AdminCreateComplaintNoteType>, res: MedusaResponse) => Promise<void>;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = void 0;
4
+ const complaint_1 = require("../../../../../modules/complaint");
5
+ const POST = async (req, res) => {
6
+ const { id: complaint_id } = req.params;
7
+ const complaintService = req.scope.resolve(complaint_1.COMPLAINT_MODULE);
8
+ const entry = await complaintService.addNote(complaint_id, req.auth_context.actor_id, req.validatedBody.note);
9
+ res.json({ entry });
10
+ };
11
+ exports.POST = POST;
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvbXBsYWludHMvW2lkXS9ub3Rlcy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxnRUFBbUU7QUFJNUQsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN4QixHQUE2RCxFQUM3RCxHQUFtQixFQUNsQixFQUFFO0lBQ0gsTUFBTSxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBQ3ZDLE1BQU0sZ0JBQWdCLEdBQXFCLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLDRCQUFnQixDQUFDLENBQUE7SUFDOUUsTUFBTSxLQUFLLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxPQUFPLENBQzNDLFlBQVksRUFDWixHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFDekIsR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQ3RCLENBQUE7SUFDRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtBQUNwQixDQUFDLENBQUE7QUFaWSxRQUFBLElBQUksUUFZaEIifQ==
@@ -0,0 +1,5 @@
1
+ import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework/http';
2
+ import { AdminGetComplaintType, AdminUpdateComplaintType } from '../../../validators';
3
+ export declare const GET: (req: AuthenticatedMedusaRequest<AdminGetComplaintType>, res: MedusaResponse) => Promise<void>;
4
+ export declare const POST: (req: AuthenticatedMedusaRequest<AdminUpdateComplaintType>, res: MedusaResponse) => Promise<void>;
5
+ export declare const DELETE: (req: AuthenticatedMedusaRequest, res: MedusaResponse) => Promise<void>;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DELETE = exports.POST = exports.GET = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const complaint_1 = require("../../../../modules/complaint");
6
+ const GET = async (req, res) => {
7
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
8
+ const { id } = req.params;
9
+ const { data: [complaint] } = await query.graph({
10
+ entity: 'complaint',
11
+ fields: req.queryConfig.fields,
12
+ filters: { id }
13
+ }, { throwIfKeyNotFound: true });
14
+ res.json({ complaint });
15
+ };
16
+ exports.GET = GET;
17
+ const POST = async (req, res) => {
18
+ const complaintService = req.scope.resolve(complaint_1.COMPLAINT_MODULE);
19
+ const { id } = req.params;
20
+ const currentComplaint = await complaintService.retrieveComplaint(id);
21
+ const complaint = await complaintService.updateComplaints({
22
+ id,
23
+ ...req.validatedBody
24
+ });
25
+ if (currentComplaint.status !== complaint.status) {
26
+ if (complaint.status === 'open') {
27
+ await complaintService.addOpenEntry(id, req.auth_context.actor_id);
28
+ }
29
+ else if (complaint.status === 'closed') {
30
+ await complaintService.addCloseEntry(id, req.auth_context.actor_id);
31
+ }
32
+ }
33
+ res.json({ complaint });
34
+ };
35
+ exports.POST = POST;
36
+ const DELETE = async (req, res) => {
37
+ const { id } = req.params;
38
+ const complaintService = req.scope.resolve(complaint_1.COMPLAINT_MODULE);
39
+ await complaintService.deleteComplaints([id]);
40
+ res.json({ deleted: [id] });
41
+ };
42
+ exports.DELETE = DELETE;
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvbXBsYWludHMvW2lkXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBcUU7QUFDckUsNkRBQWdFO0FBSXpELE1BQU0sR0FBRyxHQUFHLEtBQUssRUFDdkIsR0FBc0QsRUFDdEQsR0FBbUIsRUFDbEIsRUFBRTtJQUNILE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hFLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBRXpCLE1BQU0sRUFDTCxJQUFJLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFDakIsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQ3BCO1FBQ0MsTUFBTSxFQUFFLFdBQVc7UUFDbkIsTUFBTSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTTtRQUM5QixPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUU7S0FDZixFQUNELEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLENBQzVCLENBQUE7SUFDRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQTtBQUN4QixDQUFDLENBQUE7QUFsQlksUUFBQSxHQUFHLE9Ba0JmO0FBRU0sTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN4QixHQUF5RCxFQUN6RCxHQUFtQixFQUNsQixFQUFFO0lBQ0gsTUFBTSxnQkFBZ0IsR0FBcUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsNEJBQWdCLENBQUMsQ0FBQTtJQUM5RSxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUN6QixNQUFNLGdCQUFnQixHQUFHLE1BQU0sZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDckUsTUFBTSxTQUFTLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQztRQUN6RCxFQUFFO1FBQ0YsR0FBRyxHQUFHLENBQUMsYUFBYTtLQUNwQixDQUFDLENBQUE7SUFDRixJQUFJLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbEQsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ2pDLE1BQU0sZ0JBQWdCLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQ25FLENBQUM7YUFBTSxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDMUMsTUFBTSxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDcEUsQ0FBQztJQUNGLENBQUM7SUFDRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQTtBQUN4QixDQUFDLENBQUE7QUFuQlksUUFBQSxJQUFJLFFBbUJoQjtBQUVNLE1BQU0sTUFBTSxHQUFHLEtBQUssRUFBRSxHQUErQixFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUNwRixNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUN6QixNQUFNLGdCQUFnQixHQUFxQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyw0QkFBZ0IsQ0FBQyxDQUFBO0lBQzlFLE1BQU0sZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQzdDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUE7QUFDNUIsQ0FBQyxDQUFBO0FBTFksUUFBQSxNQUFNLFVBS2xCIn0=
@@ -0,0 +1,5 @@
1
+ import { AuthenticatedMedusaRequest, MedusaResponse } from '@medusajs/framework/http';
2
+ import { AdminCreateComplaintType, AdminDeleteComplaintsType, AdminGetComplaintsType } from '../../validators';
3
+ export declare const GET: (req: AuthenticatedMedusaRequest<AdminGetComplaintsType>, res: MedusaResponse) => Promise<void>;
4
+ export declare const POST: (req: AuthenticatedMedusaRequest<AdminCreateComplaintType>, res: MedusaResponse) => Promise<void>;
5
+ export declare const DELETE: (req: AuthenticatedMedusaRequest<AdminDeleteComplaintsType>, res: MedusaResponse) => Promise<void>;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DELETE = exports.POST = exports.GET = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const complaint_1 = require("../../../modules/complaint");
6
+ const complaint_2 = require("../../../modules/complaint/models/complaint");
7
+ const GET = async (req, res) => {
8
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
9
+ const { customer_id, order_id, product_id, status, q } = req.validatedQuery;
10
+ const { data: complaints, metadata } = await query.graph({
11
+ entity: 'complaint',
12
+ ...req.queryConfig,
13
+ filters: {
14
+ ...(customer_id ? { customer_id } : {}),
15
+ ...(order_id ? { order_id } : {}),
16
+ ...(product_id ? { product_id } : {}),
17
+ ...(status !== undefined
18
+ ? status === 'closed'
19
+ ? { status: complaint_2.ComplaintStatus.CLOSED }
20
+ : { status: complaint_2.ComplaintStatus.OPEN }
21
+ : {}),
22
+ ...(q ? { description: { $ilike: `%${q}%` } } : {})
23
+ }
24
+ });
25
+ res.json({
26
+ complaints,
27
+ count: metadata?.count,
28
+ limit: metadata?.take,
29
+ offset: metadata?.skip
30
+ });
31
+ };
32
+ exports.GET = GET;
33
+ const POST = async (req, res) => {
34
+ const complaintService = req.scope.resolve(complaint_1.COMPLAINT_MODULE);
35
+ const { tag_ids: tags, ...rest } = req.validatedBody;
36
+ const complaint = await complaintService.createComplaints({ ...rest, tags });
37
+ const historyEntry = await complaintService.addOpenEntry(complaint.id, req.auth_context.actor_id);
38
+ res.json({ complaint });
39
+ };
40
+ exports.POST = POST;
41
+ const DELETE = async (req, res) => {
42
+ const { ids } = req.validatedBody;
43
+ const complaintService = req.scope.resolve(complaint_1.COMPLAINT_MODULE);
44
+ await complaintService.deleteComplaints(ids);
45
+ res.json({ deleted: ids });
46
+ };
47
+ exports.DELETE = DELETE;
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvbXBsYWludHMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBQXFFO0FBQ3JFLDBEQUE2RDtBQUU3RCwyRUFBNkU7QUFPdEUsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN2QixHQUF1RCxFQUN2RCxHQUFtQixFQUNsQixFQUFFO0lBQ0gsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFaEUsTUFBTSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsY0FBYyxDQUFBO0lBRTNFLE1BQU0sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUN4RCxNQUFNLEVBQUUsV0FBVztRQUNuQixHQUFHLEdBQUcsQ0FBQyxXQUFXO1FBQ2xCLE9BQU8sRUFBRTtZQUNSLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDakMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3JDLEdBQUcsQ0FBQyxNQUFNLEtBQUssU0FBUztnQkFDdkIsQ0FBQyxDQUFDLE1BQU0sS0FBSyxRQUFRO29CQUNwQixDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsMkJBQWUsQ0FBQyxNQUFNLEVBQUU7b0JBQ3BDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSwyQkFBZSxDQUFDLElBQUksRUFBRTtnQkFDbkMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNOLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7U0FDbkQ7S0FDRCxDQUFDLENBQUE7SUFFRixHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ1IsVUFBVTtRQUNWLEtBQUssRUFBRSxRQUFRLEVBQUUsS0FBSztRQUN0QixLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUk7UUFDckIsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJO0tBQ3RCLENBQUMsQ0FBQTtBQUNILENBQUMsQ0FBQTtBQTlCWSxRQUFBLEdBQUcsT0E4QmY7QUFFTSxNQUFNLElBQUksR0FBRyxLQUFLLEVBQ3hCLEdBQXlELEVBQ3pELEdBQW1CLEVBQ2xCLEVBQUU7SUFDSCxNQUFNLGdCQUFnQixHQUFxQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyw0QkFBZ0IsQ0FBQyxDQUFBO0lBQzlFLE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsSUFBSSxFQUFFLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQTtJQUNwRCxNQUFNLFNBQVMsR0FBRyxNQUFNLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLEVBQUUsR0FBRyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtJQUM1RSxNQUFNLFlBQVksR0FBRyxNQUFNLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDakcsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUE7QUFDeEIsQ0FBQyxDQUFBO0FBVFksUUFBQSxJQUFJLFFBU2hCO0FBRU0sTUFBTSxNQUFNLEdBQUcsS0FBSyxFQUMxQixHQUEwRCxFQUMxRCxHQUFtQixFQUNsQixFQUFFO0lBQ0gsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUE7SUFDakMsTUFBTSxnQkFBZ0IsR0FBcUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsNEJBQWdCLENBQUMsQ0FBQTtJQUM5RSxNQUFNLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBQzVDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQTtBQUMzQixDQUFDLENBQUE7QUFSWSxRQUFBLE1BQU0sVUFRbEIifQ==
@@ -0,0 +1,2 @@
1
+ declare const _default: import("@medusajs/framework/http").MiddlewaresConfig;
2
+ export default _default;
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const http_1 = require("@medusajs/framework/http");
4
+ const validators_1 = require("./validators");
5
+ exports.default = (0, http_1.defineMiddlewares)([
6
+ {
7
+ matcher: '/admin/complaints',
8
+ method: ['GET'],
9
+ middlewares: [
10
+ (0, http_1.validateAndTransformQuery)(validators_1.AdminGetComplaints, {
11
+ defaults: [
12
+ 'id', 'number', 'status', 'description', 'created_at', 'updated_at',
13
+ 'customer_id', 'order_id', 'product_id', 'stock_lot_id', 'serial_number_id', 'tags.*'
14
+ ],
15
+ isList: true,
16
+ defaultLimit: 20
17
+ })
18
+ ]
19
+ },
20
+ {
21
+ matcher: '/admin/complaints',
22
+ method: ['POST'],
23
+ middlewares: [(0, http_1.validateAndTransformBody)(validators_1.AdminCreateComplaint)]
24
+ },
25
+ {
26
+ matcher: '/admin/complaints',
27
+ method: ['DELETE'],
28
+ middlewares: [(0, http_1.validateAndTransformBody)(validators_1.AdminDeleteComplaints)]
29
+ },
30
+ {
31
+ matcher: '/admin/complaints/:id',
32
+ method: ['GET'],
33
+ middlewares: [
34
+ (0, http_1.validateAndTransformQuery)(validators_1.AdminGetComplaint, {
35
+ defaults: [
36
+ 'id', 'number', 'status', 'description', 'created_at', 'updated_at',
37
+ 'customer_id', 'order_id', 'product_id', 'stock_lot_id', 'serial_number_id',
38
+ 'tags.*', 'customer.*', 'order.*', 'product.*'
39
+ ],
40
+ isList: false
41
+ })
42
+ ]
43
+ },
44
+ {
45
+ matcher: '/admin/complaints/:id',
46
+ method: ['POST'],
47
+ middlewares: [(0, http_1.validateAndTransformBody)(validators_1.AdminUpdateComplaint)]
48
+ },
49
+ {
50
+ matcher: '/admin/complaints/:id/notes',
51
+ method: ['POST'],
52
+ middlewares: [(0, http_1.validateAndTransformBody)(validators_1.AdminCreateComplaintNote)]
53
+ },
54
+ {
55
+ matcher: '/admin/complaints/:id/notes/:note_id',
56
+ method: ['POST'],
57
+ middlewares: [(0, http_1.validateAndTransformBody)(validators_1.AdminUpdateComplaintNote)]
58
+ },
59
+ {
60
+ matcher: '/admin/complaint-tags',
61
+ method: ['GET'],
62
+ middlewares: [
63
+ (0, http_1.validateAndTransformQuery)(validators_1.AdminGetComplaintTags, {
64
+ defaults: ['id', 'value', 'created_at', 'updated_at'],
65
+ isList: true,
66
+ defaultLimit: 20
67
+ })
68
+ ]
69
+ },
70
+ {
71
+ matcher: '/admin/complaint-tags',
72
+ method: ['POST'],
73
+ middlewares: [(0, http_1.validateAndTransformBody)(validators_1.AdminCreateComplaintTag)]
74
+ },
75
+ {
76
+ matcher: '/admin/complaint-tags',
77
+ method: ['DELETE'],
78
+ middlewares: [(0, http_1.validateAndTransformBody)(validators_1.AdminDeleteComplaintTags)]
79
+ },
80
+ {
81
+ matcher: '/admin/complaint-tags/:id',
82
+ method: ['GET'],
83
+ middlewares: [
84
+ (0, http_1.validateAndTransformQuery)(validators_1.AdminGetComplaintTag, {
85
+ defaults: ['id', 'value', 'created_at', 'updated_at'],
86
+ isList: false
87
+ })
88
+ ]
89
+ },
90
+ {
91
+ matcher: '/admin/complaint-tags/:id',
92
+ method: ['POST'],
93
+ middlewares: [(0, http_1.validateAndTransformBody)(validators_1.AdminUpdateComplaintTag)]
94
+ },
95
+ {
96
+ matcher: '/admin/complaints/:id/activities',
97
+ method: ['GET'],
98
+ middlewares: [
99
+ (0, http_1.validateAndTransformQuery)(validators_1.AdminGetComplaintActivities, {
100
+ defaults: [
101
+ 'id', 'complaint_id', 'user_id', 'type', 'note', 'metadata',
102
+ 'created_at', 'updated_at', 'user.*'
103
+ ],
104
+ isList: true,
105
+ defaultLimit: 20
106
+ })
107
+ ]
108
+ },
109
+ {
110
+ matcher: '/admin/complaints/:id/activities',
111
+ method: ['POST'],
112
+ middlewares: [(0, http_1.validateAndTransformBody)(validators_1.AdminCreateComplaintActivity)]
113
+ },
114
+ {
115
+ matcher: '/admin/complaints/:id/activities',
116
+ method: ['DELETE'],
117
+ middlewares: [(0, http_1.validateAndTransformBody)(validators_1.AdminDeleteComplaintActivities)]
118
+ },
119
+ {
120
+ matcher: '/admin/complaints/:id/activities/:entry_id',
121
+ method: ['GET'],
122
+ middlewares: [
123
+ (0, http_1.validateAndTransformQuery)(validators_1.AdminGetComplaintActivity, {
124
+ defaults: [
125
+ 'id', 'complaint_id', 'user_id', 'type', 'note', 'metadata',
126
+ 'created_at', 'updated_at', 'user.*'
127
+ ],
128
+ isList: false
129
+ })
130
+ ]
131
+ },
132
+ {
133
+ matcher: '/admin/complaints/:id/activities/:entry_id',
134
+ method: ['POST'],
135
+ middlewares: [(0, http_1.validateAndTransformBody)(validators_1.AdminUpdateComplaintActivity)]
136
+ },
137
+ {
138
+ matcher: '/admin/complaint-stats/products/:product_id',
139
+ method: ['GET'],
140
+ middlewares: [
141
+ (0, http_1.validateAndTransformQuery)(validators_1.AdminGetComplaintProductStat, {
142
+ defaults: [
143
+ 'product_id', 'total_complaints', 'total_orders', 'complaint_rate', 'last_calculated_at'
144
+ ],
145
+ isList: false
146
+ })
147
+ ]
148
+ }
149
+ ]);
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbURBQWlIO0FBQ2pILDZDQW1CcUI7QUFFckIsa0JBQWUsSUFBQSx3QkFBaUIsRUFBQztJQUNoQztRQUNDLE9BQU8sRUFBRSxtQkFBbUI7UUFDNUIsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ2YsV0FBVyxFQUFFO1lBQ1osSUFBQSxnQ0FBeUIsRUFBQywrQkFBa0IsRUFBRTtnQkFDN0MsUUFBUSxFQUFFO29CQUNULElBQUksRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsWUFBWTtvQkFDbkUsYUFBYSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLGtCQUFrQixFQUFFLFFBQVE7aUJBQ3JGO2dCQUNELE1BQU0sRUFBRSxJQUFJO2dCQUNaLFlBQVksRUFBRSxFQUFFO2FBQ2hCLENBQUM7U0FDRjtLQUNEO0lBQ0Q7UUFDQyxPQUFPLEVBQUUsbUJBQW1CO1FBQzVCLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQztRQUNoQixXQUFXLEVBQUUsQ0FBQyxJQUFBLCtCQUF3QixFQUFDLGlDQUFvQixDQUFDLENBQUM7S0FDN0Q7SUFDRDtRQUNDLE9BQU8sRUFBRSxtQkFBbUI7UUFDNUIsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDO1FBQ2xCLFdBQVcsRUFBRSxDQUFDLElBQUEsK0JBQXdCLEVBQUMsa0NBQXFCLENBQUMsQ0FBQztLQUM5RDtJQUNEO1FBQ0MsT0FBTyxFQUFFLHVCQUF1QjtRQUNoQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDZixXQUFXLEVBQUU7WUFDWixJQUFBLGdDQUF5QixFQUFDLDhCQUFpQixFQUFFO2dCQUM1QyxRQUFRLEVBQUU7b0JBQ1QsSUFBSSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUs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