@zaamx/netme-pos 0.0.10 → 0.0.12

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.
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = GET;
4
+ exports.POST = POST;
5
+ exports.DELETE = DELETE;
6
+ const zod_1 = require("@medusajs/framework/zod");
7
+ const utils_1 = require("@medusajs/framework/utils");
8
+ const payment_options_1 = require("../../../../modules/payment-options");
9
+ const UpdatePaymentOptionSchema = zod_1.z.object({
10
+ payment_method: zod_1.z.string().optional(),
11
+ amount: zod_1.z.coerce.number().optional(),
12
+ status: zod_1.z.string().optional(),
13
+ institution: zod_1.z.string().optional(),
14
+ receipt_file: zod_1.z.string().optional(),
15
+ concept: zod_1.z.string().optional(),
16
+ reference_code: zod_1.z.string().optional(),
17
+ depositor_name: zod_1.z.string().optional(),
18
+ terminal_reference: zod_1.z.string().optional(),
19
+ ticket_amount: zod_1.z.coerce.number().optional(),
20
+ authorizer: zod_1.z.string().optional(),
21
+ });
22
+ async function GET(req, res) {
23
+ const { id } = req.params;
24
+ const service = req.scope.resolve(payment_options_1.PAYMENT_OPTION_MODULE);
25
+ try {
26
+ const payment_option = await service.retrievePaymentOption(id);
27
+ res.json({ payment_option });
28
+ }
29
+ catch (error) {
30
+ res.status(404).json({ message: "Payment option not found." });
31
+ }
32
+ }
33
+ async function POST(req, res) {
34
+ const { id } = req.params;
35
+ const service = req.scope.resolve(payment_options_1.PAYMENT_OPTION_MODULE);
36
+ const validated = UpdatePaymentOptionSchema.parse(req.body);
37
+ try {
38
+ const payment_option = await service.updatePaymentOptions({
39
+ id,
40
+ ...validated,
41
+ });
42
+ res.json({ payment_option });
43
+ }
44
+ catch (error) {
45
+ res.status(404).json({ message: error.message });
46
+ }
47
+ }
48
+ async function DELETE(req, res) {
49
+ const { id } = req.params;
50
+ const service = req.scope.resolve(payment_options_1.PAYMENT_OPTION_MODULE);
51
+ const link = req.scope.resolve(utils_1.ContainerRegistrationKeys.LINK);
52
+ // Load first so we know the linked payment for cleanup.
53
+ const existing = await service.retrievePaymentOption(id).catch(() => null);
54
+ if (!existing) {
55
+ res.status(404).json({ message: "Payment option not found." });
56
+ return;
57
+ }
58
+ // Best-effort: drop the payment <-> payment_option link if it exists.
59
+ if (existing.payment_id) {
60
+ await link
61
+ .dismiss({
62
+ [utils_1.Modules.PAYMENT]: { payment_id: existing.payment_id },
63
+ [payment_options_1.PAYMENT_OPTION_MODULE]: { payment_option_id: id },
64
+ })
65
+ .catch(() => { });
66
+ }
67
+ await service.deletePaymentOptions(id);
68
+ res.json({ id, object: "payment_option", deleted: true });
69
+ }
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3BheW1lbnQtb3B0aW9ucy9baWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBMkJBLGtCQVVDO0FBRUQsb0JBZUM7QUFFRCx3QkF5QkM7QUF6RUQsaURBQTJDO0FBQzNDLHFEQUE4RTtBQUU5RSx5RUFBMkU7QUFFM0UsTUFBTSx5QkFBeUIsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3pDLGNBQWMsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3JDLE1BQU0sRUFBRSxPQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNwQyxNQUFNLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QixXQUFXLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNsQyxZQUFZLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNuQyxPQUFPLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM5QixjQUFjLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNyQyxjQUFjLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNyQyxrQkFBa0IsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3pDLGFBQWEsRUFBRSxPQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMzQyxVQUFVLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUNsQyxDQUFDLENBQUE7QUFFSyxLQUFLLFVBQVUsR0FBRyxDQUFDLEdBQWtCLEVB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
@@ -0,0 +1,84 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = GET;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const payment_options_1 = require("../../../modules/payment-options");
6
+ async function GET(req, res) {
7
+ const service = req.scope.resolve(payment_options_1.PAYMENT_OPTION_MODULE);
8
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
9
+ const { limit: limitRaw, offset: offsetRaw, q, status, payment_method, } = req.query;
10
+ const limit = limitRaw ? parseInt(limitRaw, 10) : 15;
11
+ const offset = offsetRaw ? parseInt(offsetRaw, 10) : 0;
12
+ const term = q?.trim();
13
+ const filters = {};
14
+ if (status) {
15
+ filters.status = status;
16
+ }
17
+ if (payment_method) {
18
+ filters.payment_method = payment_method;
19
+ }
20
+ if (term) {
21
+ const like = `%${term}%`;
22
+ const or = [
23
+ { reference_code: { $ilike: like } },
24
+ { concept: { $ilike: like } },
25
+ { depositor_name: { $ilike: like } },
26
+ { payment_method: { $ilike: like } },
27
+ { authorizer: { $ilike: like } },
28
+ { institution: { $ilike: like } },
29
+ { payment_id: { $ilike: like } },
30
+ ];
31
+ // If the term is a pure number, treat it as an order display id and match
32
+ // the payment options linked to that order's payment(s).
33
+ if (/^\d+$/.test(term)) {
34
+ const { data: orders } = await query.graph({
35
+ entity: "order",
36
+ filters: { display_id: parseInt(term, 10) },
37
+ fields: ["id", "payment_collections.payments.id"],
38
+ });
39
+ const paymentIds = orders.flatMap((o) => (o.payment_collections ?? []).flatMap((pc) => (pc.payments ?? []).map((p) => p?.id).filter(Boolean)));
40
+ if (paymentIds.length) {
41
+ or.push({ payment_id: { $in: paymentIds } });
42
+ }
43
+ }
44
+ filters.$or = or;
45
+ }
46
+ const [payment_options, count] = await service.listAndCountPaymentOptions(filters, {
47
+ skip: offset,
48
+ take: limit,
49
+ order: { created_at: "DESC" },
50
+ });
51
+ // Enrich the page with the linked order's display id.
52
+ const paymentIds = [
53
+ ...new Set(payment_options.map((po) => po.payment_id).filter(Boolean)),
54
+ ];
55
+ let orderByPaymentId = {};
56
+ if (paymentIds.length) {
57
+ const { data: payments } = await query.graph({
58
+ entity: "payment",
59
+ filters: { id: paymentIds },
60
+ fields: [
61
+ "id",
62
+ "payment_collection.order.id",
63
+ "payment_collection.order.display_id",
64
+ ],
65
+ });
66
+ orderByPaymentId = payments.reduce((acc, p) => {
67
+ const order = p?.payment_collection?.order;
68
+ if (order) {
69
+ acc[p.id] = { id: order.id, display_id: order.display_id };
70
+ }
71
+ return acc;
72
+ }, {});
73
+ }
74
+ const enriched = payment_options.map((po) => {
75
+ const order = po.payment_id ? orderByPaymentId[po.payment_id] : undefined;
76
+ return {
77
+ ...po,
78
+ order_id: order?.id ?? null,
79
+ order_display_id: order?.display_id ?? null,
80
+ };
81
+ });
82
+ res.json({ payment_options: enriched, count, limit, offset });
83
+ }
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3BheW1lbnQtb3B0aW9ucy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWdCQSxrQkEwR0M7QUE5R0QscURBQXFFO0FBRXJFLHNFQUF3RTtBQUVqRSxLQUFLLFVBQVUsR0FBRyxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDL0QsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsdUNBQXFCLENBQXlCLENBQUE7SUFDaEYsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFaEUsTUFBTSxFQUNKLEtBQUssRUFBRSxRQUFRLEVBQ2YsTUFBTSxFQUFFLFNBQVMsRUFDakIsQ0FBQyxFQUNELE1BQU0sRUFDTixjQUFjLEdBQ2YsR0FBRyxHQUFHLENBQUMsS0FBMkMsQ0FBQTtJQUVuRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUNwRCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN0RCxNQUFNLElBQUksR0FBRyxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUE7SUFFdEIsTUFBTSxPQUFPLEdBQXdCLEVBQUUsQ0FBQTtJQUN2QyxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ1gsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUE7SUFDekIsQ0FBQztJQUNELElBQUksY0FBYyxFQUFFLENBQUM7UUFDbkIsT0FBTyxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUE7SUFDekMsQ0FBQztJ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
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = GET;
4
+ exports.POST = POST;
5
+ const zod_1 = require("@medusajs/framework/zod");
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const PosPermissionsSchema = zod_1.z.object({
8
+ pos_stock_location_ids: zod_1.z.array(zod_1.z.string()).nullable().optional(),
9
+ pos_sales_channel_ids: zod_1.z.array(zod_1.z.string()).nullable().optional(),
10
+ pos_region_ids: zod_1.z.array(zod_1.z.string()).nullable().optional(),
11
+ pos_shipping_option_ids: zod_1.z.array(zod_1.z.string()).nullable().optional(),
12
+ pos_default_region_id: zod_1.z.string().nullable().optional(),
13
+ pos_default_sales_channel_id: zod_1.z.string().nullable().optional(),
14
+ pos_default_stock_location_id: zod_1.z.string().nullable().optional(),
15
+ pos_role: zod_1.z.enum(["cashier", "supervisor", "manager"]).nullable().optional(),
16
+ pos_capabilities: zod_1.z.record(zod_1.z.string(), zod_1.z.boolean()).nullable().optional(),
17
+ });
18
+ const isPosOperator = (user) => Boolean(user?.metadata?.is_pos_operator);
19
+ async function GET(req, res) {
20
+ const { id } = req.params;
21
+ const userModuleService = req.scope.resolve(utils_1.Modules.USER);
22
+ const user = await userModuleService.retrieveUser(id).catch(() => null);
23
+ if (!user || !isPosOperator(user)) {
24
+ res.status(404).json({ message: "Operator not found." });
25
+ return;
26
+ }
27
+ res.json({
28
+ operator: {
29
+ id: user.id,
30
+ email: user.email,
31
+ first_name: user.first_name,
32
+ last_name: user.last_name,
33
+ metadata: user.metadata ?? {},
34
+ },
35
+ });
36
+ }
37
+ async function POST(req, res) {
38
+ const { id } = req.params;
39
+ const userModuleService = req.scope.resolve(utils_1.Modules.USER);
40
+ const user = await userModuleService.retrieveUser(id).catch(() => null);
41
+ if (!user || !isPosOperator(user)) {
42
+ res.status(404).json({ message: "Operator not found." });
43
+ return;
44
+ }
45
+ const validated = PosPermissionsSchema.parse(req.body);
46
+ // The user module shallow-merges metadata (mergeMetadata): keys we omit are
47
+ // preserved, and a key is removed only when its value is an empty string "".
48
+ // So we build a patch where "remove" (null / empty capabilities) maps to "".
49
+ const patch = {};
50
+ for (const [key, value] of Object.entries(validated)) {
51
+ if (value === undefined) {
52
+ continue;
53
+ }
54
+ const isEmptyObject = value !== null &&
55
+ typeof value === "object" &&
56
+ !Array.isArray(value) &&
57
+ Object.keys(value).length === 0;
58
+ patch[key] = value === null || isEmptyObject ? "" : value;
59
+ }
60
+ const updated = await userModuleService.updateUsers({ id, metadata: patch });
61
+ res.json({
62
+ operator: {
63
+ id: updated.id,
64
+ email: updated.email,
65
+ first_name: updated.first_name,
66
+ last_name: updated.last_name,
67
+ metadata: updated.metadata ?? {},
68
+ },
69
+ });
70
+ }
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3Bvcy1wZXJtaXNzaW9ucy9baWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBZ0NBLGtCQW1CQztBQUVELG9CQTJDQztBQXBGRCxpREFBMkM7QUFDM0MscURBQW1EO0FBRW5ELE1BQU0sb0JBQW9CLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNwQyxzQkFBc0IsRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNqRSxxQkFBcUIsRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNoRSxjQUFjLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDekQsdUJBQXVCLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbEUscUJBQXFCLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUN2RCw0QkFBNEIsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzlELDZCQUE2QixFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDL0QsUUFBUSxFQUFFLE9BQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMs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
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = GET;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ async function GET(req, res) {
6
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
7
+ const [stockLocations, salesChannels, regions, shippingOptions] = await Promise.all([
8
+ query.graph({ entity: "stock_location", fields: ["id", "name"] }),
9
+ query.graph({ entity: "sales_channel", fields: ["id", "name"] }),
10
+ query.graph({ entity: "region", fields: ["id", "name", "currency_code"] }),
11
+ query.graph({ entity: "shipping_option", fields: ["id", "name"] }),
12
+ ]);
13
+ res.json({
14
+ stock_locations: stockLocations.data,
15
+ sales_channels: salesChannels.data,
16
+ regions: regions.data,
17
+ shipping_options: shippingOptions.data,
18
+ });
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3Bvcy1wZXJtaXNzaW9ucy9vcHRpb25zL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBV0Esa0JBaUJDO0FBbkJELHFEQUFxRTtBQUU5RCxLQUFLLFVBQVUsR0FBRyxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDL0QsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFFaEUsTUFBTSxDQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLGVBQWUsQ0FBQyxHQUM3RCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUM7UUFDaEIsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNqRSxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztRQUNoRSxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDMUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLEVBQUUsQ0FBQztLQUNuRSxDQUFDLENBQUE7SUFFSixHQUFHLENBQUMsSUFBSSxDQUFDO1FBQ1AsZUFBZSxFQUFFLGNBQWMsQ0FBQyxJQUFJO1FBQ3BDLGNBQWMsRUFBRSxhQUFhLENBQUMsSUFBSTtRQUNsQyxPQUFPLEVBQUUsT0FBTyxDQUFDLElBQUk7UUFDckIsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLElBQUk7S0FDdkMsQ0FBQyxDQUFBO0FBQ0osQ0FBQyJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zaamx/netme-pos",
3
- "version": "0.0.10",
3
+ "version": "0.0.12",
4
4
  "description": "A starter for Medusa plugins.",
5
5
  "author": "Medusa (https://medusajs.com)",
6
6
  "license": "MIT",