order-management 0.0.90 → 0.0.92

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.
@@ -5,10 +5,15 @@ const utils_1 = require("@medusajs/framework/utils");
5
5
  const refund_payment_mapping_1 = require("../../../../../modules/refund-payment-mapping");
6
6
  const payment_detail_1 = require("../../../../../modules/payment-detail");
7
7
  const detect_cod_1 = require("../../../../../helpers/detect-cod");
8
+ const refund_calculation_1 = require("../../../../../helpers/refund-calculation");
9
+ const refund_receive_guard_1 = require("../../../../../helpers/refund-receive-guard");
8
10
  /**
9
11
  * GET /admin/orders/:order_id/refund-context
10
12
  *
11
- * Aggregated read: return (for order) + refund_payment_mapping + payment_detail.
13
+ * Aggregated read: return (for order) + refund_payment_mapping + payment_detail
14
+ * + the checkout payment used on the order (needed for guest orders, which
15
+ * typically have no saved payment_detail).
16
+ * `can_process_refund` is true only when return status is `received` and the mapping is not already refunded.
12
17
  *
13
18
  * Payment detail resolution priority:
14
19
  * 1. refund_mapping.payment_id (explicitly set on the mapping) → source = "specified"
@@ -25,11 +30,12 @@ async function GET(req, res) {
25
30
  }
26
31
  try {
27
32
  const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
28
- const [isCod, orderModuleServiceResolved] = await Promise.all([
29
- (0, detect_cod_1.detectCodOrder)(orderId, query),
33
+ const [orderPayment, orderModuleServiceResolved] = await Promise.all([
34
+ (0, detect_cod_1.loadOrderPaymentMethod)(orderId, query),
30
35
  Promise.resolve(req.scope.resolve(utils_1.Modules.ORDER)),
31
36
  ]);
32
37
  const orderModuleService = orderModuleServiceResolved;
38
+ const isCod = orderPayment?.is_cod ?? false;
33
39
  const order = await orderModuleService.retrieveOrder(orderId).catch(() => null);
34
40
  if (!order) {
35
41
  res.status(404).json({
@@ -44,14 +50,19 @@ async function GET(req, res) {
44
50
  if (!firstReturn) {
45
51
  const empty = {
46
52
  is_cod: isCod,
53
+ order_payment: orderPayment,
47
54
  return_id: null,
55
+ return_status: null,
56
+ can_process_refund: false,
48
57
  refund_mapping: null,
49
58
  payment_detail: null,
59
+ refund: null,
50
60
  };
51
61
  res.json(empty);
52
62
  return;
53
63
  }
54
64
  const returnId = firstReturn.id;
65
+ const returnStatus = firstReturn.status ?? null;
55
66
  const orderCustomerId = order.customer_id;
56
67
  let refundMappingService;
57
68
  let paymentDetailService;
@@ -60,11 +71,27 @@ async function GET(req, res) {
60
71
  paymentDetailService = req.scope.resolve(payment_detail_1.PAYMENT_DETAIL_MODULE);
61
72
  }
62
73
  catch {
74
+ const destLabel = (0, refund_calculation_1.resolveDestinationLabel)({
75
+ is_cod: isCod,
76
+ original_method_label: orderPayment?.label,
77
+ });
78
+ const refund = await (0, refund_calculation_1.loadRefundCalculation)(orderId, req.scope, {
79
+ returnId,
80
+ destinationLabel: destLabel,
81
+ });
63
82
  const partial = {
64
83
  is_cod: isCod,
84
+ order_payment: orderPayment,
65
85
  return_id: returnId,
86
+ return_status: returnStatus,
87
+ can_process_refund: (0, refund_receive_guard_1.canProcessRefundForReturn)({
88
+ status: returnStatus,
89
+ has_mapping: false,
90
+ is_refunded: false,
91
+ }),
66
92
  refund_mapping: null,
67
93
  payment_detail: null,
94
+ refund,
68
95
  };
69
96
  res.json(partial);
70
97
  return;
@@ -85,12 +112,15 @@ async function GET(req, res) {
85
112
  let paymentDetailBlock = null;
86
113
  // True when the customer explicitly chose a payment method (even if that detail was later deleted)
87
114
  const customerSpecified = !!(refundMapping?.payment_id);
88
- if (orderCustomerId) {
89
- if (customerSpecified) {
90
- // Customer picked a specific payment detail — resolve it; if deleted/missing keep null
91
- // so the widget shows a "payment method removed" warning instead of falling back to default
92
- try {
93
- const detail = await paymentDetailService.getPaymentDetail(refundMapping.payment_id, orderCustomerId);
115
+ if (customerSpecified) {
116
+ // Customer picked a specific payment detail — resolve it; if deleted/missing keep null
117
+ // so the widget shows a "payment method removed" warning instead of falling back to default
118
+ try {
119
+ const specifiedId = refundMapping.payment_id;
120
+ const detail = orderCustomerId
121
+ ? await paymentDetailService.getPaymentDetail(specifiedId, orderCustomerId)
122
+ : await paymentDetailService.getPaymentDetailById(specifiedId);
123
+ if (detail) {
94
124
  paymentDetailBlock = {
95
125
  id: detail.id,
96
126
  type: detail.type,
@@ -99,35 +129,68 @@ async function GET(req, res) {
99
129
  source: "specified",
100
130
  };
101
131
  }
102
- catch {
103
- // payment detail was deleted or is inaccessible — paymentDetailBlock stays null
104
- }
105
132
  }
106
- else {
107
- // No explicit choice — fall back to customer's default payment detail
133
+ catch {
134
+ // customer-scoped lookup can fail for guest orders whose payment_detail
135
+ // is not owned by order.customer_id — try id-only admin lookup
108
136
  try {
109
- const [defaultDetails] = await paymentDetailService.listPaymentDetailsByCustomer(orderCustomerId, { take: 1 });
110
- const defaultDetail = defaultDetails.find((d) => d.is_default) ?? defaultDetails[0];
111
- if (defaultDetail) {
137
+ const detail = await paymentDetailService.getPaymentDetailById(refundMapping.payment_id);
138
+ if (detail) {
112
139
  paymentDetailBlock = {
113
- id: defaultDetail.id,
114
- type: defaultDetail.type,
115
- detail_json: (defaultDetail.detail_json ?? {}),
116
- is_default: defaultDetail.is_default,
117
- source: "default",
140
+ id: detail.id,
141
+ type: detail.type,
142
+ detail_json: (detail.detail_json ?? {}),
143
+ is_default: detail.is_default,
144
+ source: "specified",
118
145
  };
119
146
  }
120
147
  }
121
148
  catch {
122
- // no default payment detail found
149
+ // payment detail was deleted or is inaccessible — paymentDetailBlock stays null
123
150
  }
124
151
  }
125
152
  }
153
+ else if (orderCustomerId) {
154
+ // No explicit choice — fall back to customer's default payment detail
155
+ try {
156
+ const [defaultDetails] = await paymentDetailService.listPaymentDetailsByCustomer(orderCustomerId, { take: 1 });
157
+ const defaultDetail = defaultDetails.find((d) => d.is_default) ?? defaultDetails[0];
158
+ if (defaultDetail) {
159
+ paymentDetailBlock = {
160
+ id: defaultDetail.id,
161
+ type: defaultDetail.type,
162
+ detail_json: (defaultDetail.detail_json ?? {}),
163
+ is_default: defaultDetail.is_default,
164
+ source: "default",
165
+ };
166
+ }
167
+ }
168
+ catch {
169
+ // no default payment detail found
170
+ }
171
+ }
172
+ const destinationLabel = (0, refund_calculation_1.resolveDestinationLabel)({
173
+ is_cod: isCod,
174
+ payment_type: paymentDetailBlock?.type,
175
+ original_method_label: orderPayment?.label,
176
+ });
177
+ const refund = await (0, refund_calculation_1.loadRefundCalculation)(orderId, req.scope, {
178
+ returnId,
179
+ destinationLabel,
180
+ });
126
181
  const payload = {
127
182
  is_cod: isCod,
183
+ order_payment: orderPayment,
128
184
  return_id: returnId,
185
+ return_status: returnStatus,
186
+ can_process_refund: (0, refund_receive_guard_1.canProcessRefundForReturn)({
187
+ status: returnStatus,
188
+ has_mapping: !!refundMappingBlock,
189
+ is_refunded: Boolean(refundMappingBlock?.is_refunded),
190
+ }),
129
191
  refund_mapping: refundMappingBlock,
130
192
  payment_detail: paymentDetailBlock,
193
+ refund,
131
194
  };
132
195
  res.json(payload);
133
196
  }
@@ -140,4 +203,4 @@ async function GET(req, res) {
140
203
  });
141
204
  }
142
205
  }
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL29yZGVycy9bb3JkZXJfaWRdL3JlZnVuZC1jb250ZXh0L3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBOENBLGtCQTZJQztBQTFMRCxxREFBOEU7QUFFOUUsMEZBQTZGO0FBRTdGLDBFQUE2RTtBQUU3RSxrRUFBa0U7QUE4QmxFOzs7Ozs7OztHQVFHO0FBQ0ksS0FBSyxVQUFVLEdBQUcsQ0FDdkIsR0FBa0IsRUFDbEIsR0FBbUI7SUFFbkIsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFrQixDQUFBO0lBRTdDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNiLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ25CLE9BQU8sRUFBRSxzQkFBc0I7WUFDL0IsSUFBSSxFQUFFLGNBQWM7U0FDckIsQ0FBQyxDQUFBO1FBQ0YsT0FBTTtJQUNSLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDSCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBYSxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUM1RSxNQUFNLENBQUMsS0FBSyxFQUFFLDBCQUEwQixDQUFDLEdBQUcsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQzVELElBQUEsMkJBQWMsRUFBQyxPQUFPLEVBQUUsS0FBSyxDQUFDO1lBQzlCLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQXNCLGVBQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN2RSxDQUFDLENBQUE7UUFDRixNQUFNLGtCQUFrQixHQUFHLDBCQUEwQixDQUFBO1FBRXJELE1BQU0sS0FBSyxHQUFHLE1BQU0sa0JBQWtCLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxD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
206
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL29yZGVycy9bb3JkZXJfaWRdL3JlZnVuZC1jb250ZXh0L3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBOERBLGtCQXlNQztBQXRRRCxxREFBOEU7QUFFOUUsMEZBQTZGO0FBRTdGLDBFQUE2RTtBQUU3RSxrRUFHMEM7QUFDMUMsa0ZBSWtEO0FBQ2xELHNGQUF1RjtBQWtDdkY7Ozs7Ozs7Ozs7O0dBV0c7QUFDSSxLQUFLLFVBQVUsR0FBRyxDQUN2QixHQUFrQixFQUNsQixHQUFtQjtJQUVuQixNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQWtCLENBQUE7SUFFN0MsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDbkIsT0FBTyxFQUFFLHNCQUFzQjtZQUMvQixJQUFJLEVBQUUsY0FBYztTQUNyQixDQUFDLENBQUE7UUFDRixPQUFNO0lBQ1IsQ0FBQztJQUVELElBQUksQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFhLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzVFLE1BQU0sQ0FBQyxZQUFZLEVBQUUsMEJBQTBCLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDbkUsSUFBQSxtQ0FBc0IsRUFBQyxPQUFPLEVBQUUsS0FBSyxDQUFDO1lBQ3RDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQXNCLGVBQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN2RSxDQUFDLENBQUE7UUFDRixNQUFNLGtCQUFrQixHQUFHLDBCQUEwQixDQUFBO1FBQ3JELE1BQU0sS0FBSyxHQUFHLFlBQVksRUFB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
@@ -3,9 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.POST = POST;
4
4
  const utils_1 = require("@medusajs/framework/utils");
5
5
  const refund_payment_mapping_1 = require("../../../../../modules/refund-payment-mapping");
6
+ const refund_receive_guard_1 = require("../../../../../helpers/refund-receive-guard");
6
7
  /**
7
8
  * POST /admin/refund-payment-mapping/:return_id/mark-refunded
8
9
  * Admin-only: set is_refunded = true for the mapping. Idempotent.
10
+ * Rejected with 400 NOT_ALLOWED while the return is still unreceived.
9
11
  */
10
12
  async function POST(req, res) {
11
13
  const returnId = req.params.return_id;
@@ -18,6 +20,34 @@ async function POST(req, res) {
18
20
  }
19
21
  try {
20
22
  const mappingService = req.scope.resolve(refund_payment_mapping_1.REFUND_PAYMENT_MAPPING_MODULE);
23
+ const existing = await mappingService.getByReturnId(returnId);
24
+ if (!existing) {
25
+ res.status(404).json({
26
+ message: "Refund payment mapping not found for this return",
27
+ type: "NOT_FOUND",
28
+ });
29
+ return;
30
+ }
31
+ if (existing.is_refunded) {
32
+ res.status(200).json({
33
+ refund_payment_mapping: existing,
34
+ is_refunded: existing.is_refunded,
35
+ });
36
+ return;
37
+ }
38
+ const orderModule = req.scope.resolve(utils_1.Modules.ORDER);
39
+ const ret = await orderModule.retrieveReturn(returnId).catch(() => null);
40
+ if (!ret) {
41
+ res.status(404).json({
42
+ message: "Return not found",
43
+ type: "NOT_FOUND",
44
+ });
45
+ return;
46
+ }
47
+ (0, refund_receive_guard_1.assertReturnReceivedForRefund)({
48
+ id: ret.id,
49
+ status: ret.status,
50
+ });
21
51
  const updated = await mappingService.markRefunded(returnId);
22
52
  res.status(200).json({
23
53
  refund_payment_mapping: updated,
@@ -34,6 +64,13 @@ async function POST(req, res) {
34
64
  });
35
65
  return;
36
66
  }
67
+ if (type === utils_1.MedusaError.Types.NOT_ALLOWED) {
68
+ res.status(400).json({
69
+ message: msg,
70
+ type: "NOT_ALLOWED",
71
+ });
72
+ return;
73
+ }
37
74
  res.status(500).json({
38
75
  message: "Failed to mark refund payment mapping as refunded",
39
76
  error: msg,
@@ -41,4 +78,4 @@ async function POST(req, res) {
41
78
  });
42
79
  }
43
80
  }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3JlZnVuZC1wYXltZW50LW1hcHBpbmcvW3JldHVybl9pZF0vbWFyay1yZWZ1bmRlZC9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVNBLG9CQXVDQztBQS9DRCxxREFBdUQ7QUFDdkQsMEZBQTZGO0FBRzdGOzs7R0FHRztBQUNJLEtBQUssVUFBVSxJQUFJLENBQ3hCLEdBQWtCLEVBQ2xCLEdBQW1CO0lBRW5CLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBbUIsQ0FBQTtJQUUvQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNuQixPQUFPLEVBQUUsdUJBQXVCO1lBQ2hDLElBQUksRUFBRSxjQUFjO1NBQ3JCLENBQUMsQ0FBQTtRQUNGLE9BQU07SUFDUixDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQW9DLHNEQUE2QixDQUFDLENBQUE7UUFDMUcsTUFBTSxPQUFPLEdBQUcsTUFBTSxjQUFjLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQzNELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ25CLHNCQUFzQixFQUFFLE9BQU87WUFDL0IsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO1NBQ2pDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFBQyxPQUFPLEdBQVksRUFBRSxDQUFDO1FBQ3RCLE1BQU0sR0FBRyxHQUFHLEdBQUcsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQTtRQUNoRSxNQUFNLElBQUksR0FBRyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFFLEdBQXdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7UUFFekcsSUFBSSxJQUFJLEtBQUssbUJBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDekMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQ25CLE9BQU8sRUFBRSxrREFBa0Q7Z0JBQzNELElBQUksRUFBRSxXQUFXO2FBQ2xCLENBQUMsQ0FBQTtZQUNGLE9BQU07UUFDUixDQUFDO1FBRUQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDbkIsT0FBTyxFQUFFLG1EQUFtRDtZQUM1RCxLQUFLLEVBQUUsR0FBRztZQUNWLElBQUksRUFBRSxnQkFBZ0I7U0FDdkIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztBQUNILENBQUMifQ==
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3JlZnVuZC1wYXltZW50LW1hcHBpbmcvW3JldHVybl9pZF0vbWFyay1yZWZ1bmRlZC9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVlBLG9CQTZFQztBQXZGRCxxREFBZ0U7QUFDaEUsMEZBQTZGO0FBRTdGLHNGQUEyRjtBQUUzRjs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLElBQUksQ0FDeEIsR0FBa0IsRUFDbEIsR0FBbUI7SUFFbkIsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxTQUFtQixDQUFBO0lBRS9DLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNkLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ25CLE9BQU8sRUFBRSx1QkFBdUI7WUFDaEMsSUFBSSxFQUFFLGNBQWM7U0FDckIsQ0FBQyxDQUFBO1FBQ0YsT0FBTTtJQUNSLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDSCxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBb0Msc0RBQTZCLENBQUMsQ0FBQTtRQUMxRyxNQUFNLFFBQVEsR0FBRyxNQUFNLGNBQWMsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDN0QsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQ25CLE9BQU8sRUFBRSxrREFBa0Q7Z0JBQzNELElBQUksRUFBRSxXQUFXO2FBQ2xCLENBQUMsQ0FBQTtZQUNGLE9BQU07UUFDUixDQUFDO1FBQ0QsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDekIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQ25CLHNCQUFzQixFQUFFLFFBQVE7Z0JBQ2hDLFdBQVcsRUFBRSxRQUFRLENBQUMsV0FBVzthQUNsQyxDQUFDLENBQUE7WUFDRixPQUFNO1FBQ1IsQ0FBQztRQUVELE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFzQixlQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDekUsTUFBTSxHQUFHLEdBQUcsTUFBTSxXQUFXLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUN4RSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDVCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDbkIsT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsSUFBSSxFQUFFLFdBQVc7YUFDbEIsQ0FBQyxDQUFBO1lBQ0YsT0FBTTtRQUNSLENBQUM7UUFDRCxJQUFBLG9EQUE2QixFQUFDO1lBQzVCLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRTtZQUNWLE1BQU0sRUFBRyxHQUEyQixDQUFDLE1BQU07U0FDNUMsQ0FBQyxDQUFBO1FBRUYsTUFBTSxPQUFPLEdBQUcsTUFBTSxjQUFjLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQzNELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ25CLHNCQUFzQixFQUFFLE9BQU87WUFDL0IsV0FBVyxFQUFFLE9BQU8sQ0FBQyxXQUFXO1NBQ2pDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFBQyxPQUFPLEdBQVksRUFBRSxDQUFDO1FBQ3RCLE1BQU0sR0FBRyxHQUFHLEdBQUcsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQTtRQUNoRSxNQUFNLElBQUksR0FBRyxHQUFHLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLE1BQU0sSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFFLEdBQXdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7UUFFekcsSUFBSSxJQUFJLEtBQUssbUJBQVcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDekMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQ25CLE9BQU8sRUFBRSxrREFBa0Q7Z0JBQzNELElBQUksRUFBRSxXQUFXO2FBQ2xCLENBQUMsQ0FBQTtZQUNGLE9BQU07UUFDUixDQUFDO1FBRUQsSUFBSSxJQUFJLEtBQUssbUJBQVcsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDM0MsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQ25CLE9BQU8sRUFBRSxHQUFHO2dCQUNaLElBQUksRUFBRSxhQUFhO2FBQ3BCLENBQUMsQ0FBQTtZQUNGLE9BQU07UUFDUixDQUFDO1FBRUQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDbkIsT0FBTyxFQUFFLG1EQUFtRDtZQUM1RCxLQUFLLEVBQUUsR0FBRztZQUNWLElBQUksRUFBRSxnQkFBZ0I7U0FDdkIsQ0FBQyxDQUFBO0lBQ0osQ0FBQztBQUNILENBQUMifQ==
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GET = void 0;
4
4
  const utils_1 = require("@medusajs/framework/utils");
5
5
  const returns_1 = require("../../../../helpers/returns");
6
+ const refund_calculation_1 = require("../../../../helpers/refund-calculation");
7
+ const detect_cod_1 = require("../../../../helpers/detect-cod");
6
8
  const GET = async (req, res) => {
7
9
  const { id } = req.params;
8
10
  if (!id) {
@@ -11,7 +13,9 @@ const GET = async (req, res) => {
11
13
  }
12
14
  try {
13
15
  const orderModuleService = req.scope.resolve(utils_1.Modules.ORDER);
14
- const returnOrder = await orderModuleService.retrieveReturn(id).catch(() => null);
16
+ const returnOrder = await orderModuleService
17
+ .retrieveReturn(id, { relations: ["items", "shipping_methods"] })
18
+ .catch(() => null);
15
19
  if (!returnOrder) {
16
20
  res.status(404).json({
17
21
  message: `Return with id: ${id} was not found`,
@@ -21,6 +25,7 @@ const GET = async (req, res) => {
21
25
  const returnData = returnOrder;
22
26
  const orderId = returnData.order_id;
23
27
  let order = null;
28
+ let orderPayment = null;
24
29
  if (orderId) {
25
30
  try {
26
31
  order = await orderModuleService.retrieveOrder(orderId, {
@@ -30,6 +35,13 @@ const GET = async (req, res) => {
30
35
  catch {
31
36
  // Order may be deleted or from another tenant/DB
32
37
  }
38
+ try {
39
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
40
+ orderPayment = await (0, detect_cod_1.loadOrderPaymentMethod)(orderId, query);
41
+ }
42
+ catch {
43
+ orderPayment = null;
44
+ }
33
45
  }
34
46
  const orderData = order;
35
47
  const items = (0, returns_1.normalizeReturnItemsForDashboard)(returnData.return_items ?? returnData.items);
@@ -37,9 +49,13 @@ const GET = async (req, res) => {
37
49
  ...returnData,
38
50
  items,
39
51
  });
52
+ const refund = orderId
53
+ ? await (0, refund_calculation_1.loadRefundCalculation)(orderId, req.scope, { returnId: id })
54
+ : null;
40
55
  res.status(200).json({
41
56
  return: {
42
57
  ...returnPayload,
58
+ refund,
43
59
  order: orderData
44
60
  ? {
45
61
  id: orderData.id,
@@ -56,6 +72,7 @@ const GET = async (req, res) => {
56
72
  shipping_address: orderData.shipping_address,
57
73
  billing_address: orderData.billing_address,
58
74
  items: orderData.items,
75
+ order_payment: orderPayment,
59
76
  }
60
77
  : null,
61
78
  },
@@ -71,4 +88,4 @@ const GET = async (req, res) => {
71
88
  }
72
89
  };
73
90
  exports.GET = GET;
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3JldHVybi9baWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUFtRDtBQUVuRCx5REFBNkc7QUFFdEcsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQWtCLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQ25FLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBRXpCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNSLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLENBQUMsQ0FBQTtRQUMxRCxPQUFNO0lBQ1IsQ0FBQztJQUVELElBQUksQ0FBQztRQUNILE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQXNCLGVBQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUVoRixNQUFNLFdBQVcsR0FBRyxNQUFNLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDakYsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2pCLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUNuQixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCO2FBQy9DLENBQUMsQ0FBQTtZQUNGLE9BQU07UUFDUixDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsV0FjbEIsQ0FBQTtRQUVELE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUE7UUFDbkMsSUFBSSxLQUFLLEdBQVksSUFBSSxDQUFBO1FBRXpCLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixJQUFJLENBQUM7Z0JBQ0gsS0FBSyxHQUFHLE1BQU0sa0JBQWtCLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRTtvQkFDdEQsU0FBUyxFQUFFLENBQUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixDQUFDO2lCQUM1RCxDQUFDLENBQUE7WUFDSixDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLGlEQUFpRDtZQUNuRCxDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLEtBc0JWLENBQUE7UUFFUixNQUFNLEtBQUssR0FBRyxJQUFBLDBDQUFnQyxFQUM1QyxVQUFVLENBQUMsWUFBWSxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQzVDLENBQUE7UUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFBLHVDQUE2QixFQUFDO1lBQ2xELEdBQUcsVUFBVTtZQUNiLEtBQUs7U0FDcUIsQ0FBQyxDQUFBO1FBRTdCLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ25CLE1BQU0sRUFBRTtnQkFDTixHQUFHLGFBQWE7Z0JBQ2hCLEtBQUssRUFBRSxTQUFTO29CQUNkLENBQUMsQ0FBQzt3QkFDRSxFQUFFLEVBQUUsU0FBUyxDQUFDLEVBQUU7d0JBQ2hCLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSzt3QkFDdEIsTUFBTSxFQUFFLFNBQVMsQ0FBQyxNQUFNO3dCQUN4QixVQUFVLEVBQUUsU0FBUyxDQUFDLFVBQVU7d0JBQ2hDLGFBQWEsRUFBRSxTQUFTLENBQUMsYUFBYTt3QkFDdEMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLO3dCQUN0QixRQUFRLEVBQUUsU0FBUyxDQUFDLFFBQVE7d0JBQzVCLFNBQVMsRUFBRSxTQUFTLENBQUMsU0FBUzt3QkFDOUIsY0FBYyxFQUFFLFNBQVMsQ0FBQyxjQUFjO3dCQUN4QyxjQUFjLEVBQUUsU0FBUyxDQUFDLGNBQWM7d0JBQ3hDLFdBQVcsRUFBRSxTQUFTLENBQUMsV0FBVzt3QkFDbEMsZ0JBQWdCLEVBQUUsU0FBUyxDQUFDLGdCQUFnQjt3QkFDNUMsZUFBZSxFQUFFLFNBQVMsQ0FBQyxlQUFlO3dCQUMxQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUs7cUJBQ3ZCO29CQUNILENBQUMsQ0FBQyxJQUFJO2FBQ1Q7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE1BQU0sWUFBWSxHQUNoQixLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxtQ0FBbUMsQ0FBQTtRQUU5RSxJQUFJLFlBQVksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsQ0FBQyxDQUFBO1lBQy9DLE9BQU07UUFDUixDQUFDO1FBRUQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQTtJQUNqRCxDQUFDO0FBQ0gsQ0FBQyxDQUFBO0FBbkhZLFFBQUEsR0FBRyxPQW1IZiJ9
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3JldHVybi9baWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUE4RTtBQUU5RSx5REFBNkc7QUFDN0csK0VBQThFO0FBQzlFLCtEQUF1RTtBQUVoRSxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsR0FBa0IsRUFBRSxHQUFtQixFQUFFLEVBQUU7SUFDbkUsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7SUFFekIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ1IsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsQ0FBQyxDQUFBO1FBQzFELE9BQU07SUFDUixDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBc0IsZUFBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBRWhGLE1BQU0sV0FBVyxHQUFHLE1BQU0sa0JBQWtCO2FBQ3pDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLENBQUMsRUFBRSxDQUFDO2FBQ2hFLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNwQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQ25CLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0I7YUFDL0MsQ0FBQyxDQUFBO1lBQ0YsT0FBTTtRQUNSLENBQUM7UUFFRCxNQUFNLFVBQVUsR0FBRyxXQWNsQixDQUFBO1FBRUQsTUFBTSxPQUFPLEdBQUcsVUFB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
@@ -3,6 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GET = void 0;
4
4
  const utils_1 = require("@medusajs/framework/utils");
5
5
  const returns_1 = require("../../../helpers/returns");
6
+ const refund_calculation_1 = require("../../../helpers/refund-calculation");
7
+ const refund_payment_mapping_1 = require("../../../modules/refund-payment-mapping");
6
8
  const validators_1 = require("./validators");
7
9
  const GET = async (req, res) => {
8
10
  const parseResult = validators_1.AdminListReturnsSchema.safeParse(req.query ?? {});
@@ -53,7 +55,7 @@ const GET = async (req, res) => {
53
55
  const [returns, _totalCount] = await orderModuleService.listAndCountReturns(Object.keys(filters).length > 0 ? filters : undefined, {
54
56
  take: 2000,
55
57
  order: { created_at: "DESC" },
56
- relations: ["items"],
58
+ relations: ["items", "shipping_methods"],
57
59
  });
58
60
  const allReturns = Array.isArray(returns) ? returns : [];
59
61
  const createdByFilter = query.created_by ?? "all";
@@ -69,7 +71,45 @@ const GET = async (req, res) => {
69
71
  return true;
70
72
  });
71
73
  const orderReturnsList = filteredReturns.slice(query.offset, query.offset + query.limit);
72
- const safeReturns = orderReturnsList.map((r) => (0, returns_1.ensureReturnDatesForDashboard)((0, returns_1.normalizeOrderModuleReturnForDashboard)(r)));
74
+ const refundInputs = [];
75
+ let mappingService = null;
76
+ try {
77
+ mappingService = req.scope.resolve(refund_payment_mapping_1.REFUND_PAYMENT_MAPPING_MODULE);
78
+ }
79
+ catch {
80
+ mappingService = null;
81
+ }
82
+ for (const row of orderReturnsList) {
83
+ const raw = row;
84
+ let isRefunded = false;
85
+ if (mappingService && raw.id) {
86
+ const mapping = await mappingService.getByReturnId(raw.id).catch(() => null);
87
+ isRefunded = Boolean(mapping?.is_refunded);
88
+ }
89
+ refundInputs.push({
90
+ id: raw.id,
91
+ order_id: raw.order_id,
92
+ refund_amount: raw.refund_amount,
93
+ items: raw.items,
94
+ shipping_methods: raw.shipping_methods,
95
+ is_refunded: isRefunded,
96
+ });
97
+ }
98
+ const orderIds = refundInputs
99
+ .map((row) => row.order_id)
100
+ .filter((id) => typeof id === "string" && id.length > 0);
101
+ const orderMerchandise = await (0, refund_calculation_1.loadOrderMerchandiseByIds)(orderIds, req.scope);
102
+ const refundByReturnId = await (0, refund_calculation_1.loadRefundCalculationsForReturns)(refundInputs, req.scope, orderMerchandise);
103
+ const safeReturns = orderReturnsList.map((r) => {
104
+ const normalized = (0, returns_1.ensureReturnDatesForDashboard)((0, returns_1.normalizeOrderModuleReturnForDashboard)(r));
105
+ const returnId = typeof normalized.id === "string" ? normalized.id : String(r.id);
106
+ const refund = refundByReturnId.get(returnId) ?? null;
107
+ return {
108
+ ...normalized,
109
+ refund,
110
+ currency_code: refund?.currency_code,
111
+ };
112
+ });
73
113
  res.status(200).json({
74
114
  returns: safeReturns,
75
115
  count: filteredReturns.length,
@@ -87,4 +127,4 @@ const GET = async (req, res) => {
87
127
  }
88
128
  };
89
129
  exports.GET = GET;
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3JldHVybi9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBbUQ7QUFFbkQsc0RBR2lDO0FBQ2pDLDZDQUFxRDtBQUU5QyxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsR0FBa0IsRUFBRSxHQUFtQixFQUFFLEVBQUU7SUFDbkUsTUFBTSxXQUFXLEdBQUcsbUNBQXNCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUE7SUFFckUsSUFBSSxLQVdILENBQUE7SUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3pCLE1BQU0sUUFBUSxHQUFHLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFBO1FBQ2hDLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUE7UUFDeEMsTUFBTSxpQkFBaUIsR0FDckIsT0FBTyxZQUFZLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDO1lBQ3JGLENBQUMsQ0FBRSxZQUE2QztZQUNoRCxDQUFDLENBQUMsS0FBSyxDQUFBO1FBQ1gsS0FBSyxHQUFHO1lBQ04sTUFBTSxFQUFFLE9BQU8sUUFBUSxDQUFDLE1BQU0sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDekUsUUFBUSxFQUFFLE9BQU8sUUFBUSxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDL0UsY0FBYyxFQUFFLE9BQU8sUUFBUSxDQUFDLGNBQWMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFj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
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3JldHVybi9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBbUQ7QUFFbkQsc0RBR2lDO0FBQ2pDLDRFQUk0QztBQUM1QyxvRkFBdUY7QUFFdkYsNkNBQXFEO0FBRTlDLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFBRSxHQUFrQixFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUNuRSxNQUFNLFdBQVcsR0FBRyxtQ0FBc0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQTtJQUVyRSxJQUFJLEtBV0gsQ0FBQTtJQUVELElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDekIsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUE7UUFDaEMsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQTtRQUN4QyxNQUFNLGlCQUFpQixHQUNyQixPQUFPLFlBQVksS0FBSyxRQUFRLElBQUksQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUM7WUFDckYsQ0FBQyxDQUFFLFlBQTZDO1lBQ2hELENBQUMsQ0FBQyxLQUFLLENBQUE7UUFDWCxLQUFLLEdBQUc7WUFDTixNQUFNLEVBQUUsT0FBTyxRQUFRLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUztZQUN6RSxRQUFRLEVBQUUsT0FBTyxRQUFRLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUMvRSxjQUFjLEVBQUUsT0FBTyxRQUFRLENBQUMsY0FBYyxLQUFLLFFBQVEsQ0FB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
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.blockRefundUntilReturnReceived = blockRefundUntilReturnReceived;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const refund_receive_guard_1 = require("../../helpers/refund-receive-guard");
6
+ function paymentIdFromRequest(req) {
7
+ const raw = req.params?.id;
8
+ const id = typeof raw === "string" ? raw.trim() : "";
9
+ return id || undefined;
10
+ }
11
+ async function resolveOrderIdForPayment(paymentId, req) {
12
+ const paymentModule = req.scope.resolve(utils_1.Modules.PAYMENT);
13
+ const payments = await paymentModule.listPayments({ id: [paymentId] }, { relations: ["payment_session"], take: 1 });
14
+ const paymentList = Array.isArray(payments) ? payments : [];
15
+ const paymentRow = paymentList[0];
16
+ if (!paymentRow) {
17
+ return null;
18
+ }
19
+ const sessionObj = paymentRow.payment_session;
20
+ let collectionId = paymentRow.payment_collection_id?.trim() ||
21
+ sessionObj?.payment_collection_id?.trim() ||
22
+ null;
23
+ if (!collectionId && typeof paymentRow.payment_session_id === "string") {
24
+ const sessionId = paymentRow.payment_session_id.trim();
25
+ if (sessionId) {
26
+ const sessions = await paymentModule.listPaymentSessions({ id: [sessionId] }).catch(() => []);
27
+ const sessionList = Array.isArray(sessions) ? sessions : [];
28
+ const session = sessionList[0];
29
+ if (session?.payment_collection_id) {
30
+ collectionId = session.payment_collection_id;
31
+ }
32
+ }
33
+ }
34
+ if (!collectionId) {
35
+ return null;
36
+ }
37
+ const remoteQuery = req.scope.resolve(utils_1.ContainerRegistrationKeys.REMOTE_QUERY);
38
+ const pcQuery = (0, utils_1.remoteQueryObjectFromString)({
39
+ entryPoint: "payment_collection",
40
+ fields: ["id", "order.id"],
41
+ filters: { id: [collectionId] },
42
+ });
43
+ const pcRows = await remoteQuery(pcQuery);
44
+ const pcList = Array.isArray(pcRows) ? pcRows : pcRows ? [pcRows] : [];
45
+ const firstPc = pcList[0];
46
+ let orderId = firstPc?.order?.id ?? null;
47
+ if (!orderId) {
48
+ const orderQuery = (0, utils_1.remoteQueryObjectFromString)({
49
+ entryPoint: "order",
50
+ fields: ["id", "payment_collections.id"],
51
+ filters: { payment_collections: { id: [collectionId] } },
52
+ });
53
+ const orderRows = await remoteQuery(orderQuery).catch(() => []);
54
+ const orderList = Array.isArray(orderRows) ? orderRows : orderRows ? [orderRows] : [];
55
+ const firstOrder = orderList[0];
56
+ orderId = firstOrder?.id ?? null;
57
+ }
58
+ return orderId;
59
+ }
60
+ /**
61
+ * Block Medusa core POST /admin/payments/:id/refund while any return on the order
62
+ * is still unreceived. Receive-and-refund inside core workflows is not HTTP and is unaffected.
63
+ */
64
+ async function blockRefundUntilReturnReceived(req, res, next) {
65
+ const paymentId = paymentIdFromRequest(req);
66
+ if (!paymentId) {
67
+ return next();
68
+ }
69
+ try {
70
+ const orderId = await resolveOrderIdForPayment(paymentId, req);
71
+ if (!orderId) {
72
+ return next();
73
+ }
74
+ const orderModule = req.scope.resolve(utils_1.Modules.ORDER);
75
+ const returns = await orderModule.listReturns({ order_id: orderId }, { take: 100 });
76
+ const returnList = Array.isArray(returns) ? returns : [];
77
+ const blocking = (0, refund_receive_guard_1.getUnreceivedReturnBlockingRefund)(returnList.map((row) => ({
78
+ id: row.id,
79
+ status: row.status,
80
+ })));
81
+ if (!blocking) {
82
+ return next();
83
+ }
84
+ res.status(400).json({
85
+ message: (0, refund_receive_guard_1.refundBlockedByReturnMessage)(blocking.status ?? "requested"),
86
+ type: "NOT_ALLOWED",
87
+ });
88
+ }
89
+ catch (err) {
90
+ const message = err instanceof Error ? err.message : "Failed to validate refund against return status";
91
+ res.status(500).json({
92
+ message,
93
+ type: "INTERNAL_ERROR",
94
+ });
95
+ }
96
+ }
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stcmVmdW5kLXVudGlsLXJldHVybi1yZWNlaXZlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvbWlkZGxld2FyZXMvYmxvY2stcmVmdW5kLXVudGlsLXJldHVybi1yZWNlaXZlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQTJGQSx3RUE0Q0M7QUE3SEQscURBQTJHO0FBQzNHLDZFQUcyQztBQUUzQyxTQUFTLG9CQUFvQixDQUFDLEdBQWtCO0lBQzlDLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFBO0lBQzFCLE1BQU0sRUFBRSxHQUFHLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFDcEQsT0FBTyxFQUFFLElBQUksU0FBUyxDQUFBO0FBQ3hCLENBQUM7QUFFRCxLQUFLLFVBQVUsd0JBQXdCLENBQ3JDLFNBQWlCLEVBQ2pCLEdBQWtCO0lBRWxCLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUF3QixlQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDL0UsTUFBTSxRQUFRLEdBQUcsTUFBTSxhQUFhLENBQUMsWUFBWSxDQUMvQyxFQUFFLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQ25CLEVBQUUsU0FBUyxFQUFFLENBQUMsaUJBQWlCLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQzVDLENBQUE7SUFDRCxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUMzRCxNQUFNLFVBQVUsR0FBRyxXQUFXLENBQUMsQ0FBQyxDQUFtRCxDQUFBO0lBQ25GLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FB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
@@ -1,10 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const http_1 = require("@medusajs/framework/http");
4
+ const block_refund_until_return_received_1 = require("./middlewares/block-refund-until-return-received");
4
5
  const validators_1 = require("./store/returns/validators");
5
6
  const cancel_order_1 = require("./store/validators/cancel-order");
6
7
  exports.default = (0, http_1.defineMiddlewares)({
7
8
  routes: [
9
+ {
10
+ matcher: "/admin/payments/:id/refund",
11
+ method: "POST",
12
+ middlewares: [block_refund_until_return_received_1.blockRefundUntilReturnReceived],
13
+ },
8
14
  {
9
15
  matcher: "/store/returns",
10
16
  method: "POST",
@@ -22,4 +28,4 @@ exports.default = (0, http_1.defineMiddlewares)({
22
28
  },
23
29
  ],
24
30
  });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbURBR2lDO0FBQ2pDLDJEQUFvRTtBQUNwRSxrRUFBNEU7QUFFNUUsa0JBQWUsSUFBQSx3QkFBaUIsRUFBQztJQUMvQixNQUFNLEVBQUU7UUFDTjtZQUNFLE9BQU8sRUFBRSxnQkFBZ0I7WUFDekIsTUFBTSxFQUFFLE1BQU07WUFDZCxXQUFXLEVBQUUsQ0FBQyxJQUFBLCtCQUF3QixFQUFDLG9DQUF1QixDQUFDLENBQUM7U0FDakU7UUFDRDtZQUNFLE9BQU8sRUFBRSxnQ0FBZ0M7WUFDekMsTUFBTSxFQUFFLE1BQU07WUFDZCxXQUFXLEVBQUUsQ0FBQyxJQUFBLCtCQUF3QixFQUFDLHlDQUEwQixDQUFDLENBQUM7U0FDcEU7UUFDRDtZQUNFLE9BQU8sRUFBRSxnQ0FBZ0M7WUFDekMsTUFBTSxFQUFFLE1BQU07WUFDZCxXQUFXLEVBQUUsQ0FBQyxJQUFBLCtCQUF3QixFQUFDLHlDQUEwQixDQUFDLENBQUM7U0FDcEU7S0FDRjtDQUNGLENBQUMsQ0FBQSJ9
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbURBR2lDO0FBQ2pDLHlHQUFpRztBQUNqRywyREFBb0U7QUFDcEUsa0VBQTRFO0FBRTVFLGtCQUFlLElBQUEsd0JBQWlCLEVBQUM7SUFDL0IsTUFBTSxFQUFFO1FBQ047WUFDRSxPQUFPLEVBQUUsNEJBQTRCO1lBQ3JDLE1BQU0sRUFBRSxNQUFNO1lBQ2QsV0FBVyxFQUFFLENBQUMsbUVBQThCLENBQUM7U0FDOUM7UUFDRDtZQUNFLE9BQU8sRUFBRSxnQkFBZ0I7WUFDekIsTUFBTSxFQUFFLE1BQU07WUFDZCxXQUFXLEVBQUUsQ0FBQyxJQUFBLCtCQUF3QixFQUFDLG9DQUF1QixDQUFDLENBQUM7U0FDakU7UUFDRDtZQUNFLE9BQU8sRUFBRSxnQ0FBZ0M7WUFDekMsTUFBTSxFQUFFLE1BQU07WUFDZCxXQUFXLEVBQUUsQ0FBQyxJQUFBLCtCQUF3QixFQUFDLHlDQUEwQixDQUFDLENBQUM7U0FDcEU7UUFDRDtZQUNFLE9BQU8sRUFBRSxnQ0FBZ0M7WUFDekMsTUFBTSxFQUFFLE1BQU07WUFDZCxXQUFXLEVBQUUsQ0FBQyxJQUFBLCtCQUF3QixFQUFDLHlDQUEwQixDQUFDLENBQUM7U0FDcEU7S0FDRjtDQUNGLENBQUMsQ0FBQSJ9
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GET = GET;
4
4
  const utils_1 = require("@medusajs/framework/utils");
5
5
  const refund_payment_mapping_1 = require("../../../../../modules/refund-payment-mapping");
6
+ const refund_calculation_1 = require("../../../../../helpers/refund-calculation");
6
7
  /**
7
8
  * GET /store/orders/:order_id/refund-payment-mappings
8
9
  * Customer can list refund payment mappings for their order's returns.
@@ -56,7 +57,8 @@ async function GET(req, res) {
56
57
  for (const returnId of returnIds) {
57
58
  const mapping = await mappingService.getByReturnId(returnId);
58
59
  if (mapping) {
59
- refund_payment_mappings.push({ ...mapping, return_id: returnId });
60
+ const refund = await (0, refund_calculation_1.loadRefundCalculation)(orderId, req.scope, { returnId });
61
+ refund_payment_mappings.push({ ...mapping, return_id: returnId, refund });
60
62
  }
61
63
  }
62
64
  res.json({ refund_payment_mappings });
@@ -70,4 +72,4 @@ async function GET(req, res) {
70
72
  });
71
73
  }
72
74
  }
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL29yZGVycy9bb3JkZXJfaWRdL3JlZnVuZC1wYXltZW50LW1hcHBpbmdzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBZ0JBLGtCQTBFQztBQXpGRCxxREFBbUQ7QUFFbkQsMEZBQTZGO0FBUTdGOzs7O0dBSUc7QUFDSSxLQUFLLFVBQVUsR0FBRyxDQUN2QixHQUFrQixFQUNsQixHQUFtQjtJQUVuQixNQUFNLFdBQVcsR0FBSSxHQUFxRSxDQUFDLFlBQVksQ0FBQTtJQUN2RyxNQUFNLFVBQVUsR0FBRyxXQUFXLEVBQUUsUUFBUSxDQUFBO0lBQ3hDLE1BQU0sU0FBUyxHQUFHLFdBQVcsRUFBRSxVQUFVLENBQUE7SUFDekMsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFrQixDQUFBO0lBRTdDLElBQUksQ0FBQyxVQUFVLElBQUksU0FBUyxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQzVDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ25CLE9BQU8sRUFBRSxtREFBbUQ7WUFDNUQsSUFBSSxFQUFFLGNBQWM7U0FDckIsQ0FBQyxDQUFBO1FBQ0YsT0FBTTtJQUNSLENBQUM7SUFFRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDYixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNuQixPQUFPLEVBQUUsc0JBQXNCO1lBQy9CLElBQUksRUFBRSxjQUFjO1NBQ3JCLENBQUMsQ0FBQTtRQUNGLE9BQU07SUFDUixDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBc0IsZUFBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQ2hGLE1BQU0sS0FBSyxH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
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL29yZGVycy9bb3JkZXJfaWRdL3JlZnVuZC1wYXltZW50LW1hcHBpbmdzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBb0JBLGtCQTZFQztBQWhHRCxxREFBbUQ7QUFFbkQsMEZBQTZGO0FBRzdGLGtGQUdrRDtBQU1sRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLEdBQUcsQ0FDdkIsR0FBa0IsRUFDbEIsR0FBbUI7SUFFbkIsTUFBTSxXQUFXLEdBQUksR0FBcUUsQ0FBQyxZQUFZLENBQUE7SUFDdkcsTUFBTSxVQUFVLEdBQUcsV0FBVyxFQUFFLFFBQVEsQ0FBQTtJQUN4QyxNQUFNLFNBQVMsR0FBRyxXQUFXLEVBQUUsVUFBVSxDQUFBO0lBQ3pDLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsUUFBa0IsQ0FBQTtJQUU3QyxJQUFJLENBQUMsVUFBVSxJQUFJLFNBQVMsS0FBSyxVQUFVLEVBQUUsQ0FBQztRQUM1QyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNuQixPQUFPLEVBQUUsbURBQW1EO1lBQzVELElBQUksRUFBRSxjQUFjO1NBQ3JCLENBQUMsQ0FBQTtRQUNGLE9BQU07SUFDUixDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2IsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDbkIsT0FBTyxFQUFFLHNCQUFzQjtZQUMvQixJQUFJLEVBQUUsY0FBYztTQUNyQixDQUFDLENBQUE7UUFDRixPQUFNO0lBQ1IsQ0FBQztJQUVELElBQUksQ0FBQztRQUNILE1BQU0sa0JBQWtCLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQXNCLGVBQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNo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