@zaamx/netme-pos 0.0.3

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 (30) hide show
  1. package/.medusa/server/src/admin/index.js +428 -0
  2. package/.medusa/server/src/admin/index.mjs +427 -0
  3. package/.medusa/server/src/api/admin/netme-pos/payment-collections/[id]/mark-as-paid/route.js +20 -0
  4. package/.medusa/server/src/api/admin/netme-pos/payment-collections/[id]/payment-sessions/route.js +21 -0
  5. package/.medusa/server/src/api/admin/operators/[id]/route.js +69 -0
  6. package/.medusa/server/src/api/admin/operators/route.js +48 -0
  7. package/.medusa/server/src/api/admin/orders/[id]/cancel-no-refound/route.js +22 -0
  8. package/.medusa/server/src/api/admin/orders/search-by-display-id/route.js +25 -0
  9. package/.medusa/server/src/api/admin/pays/[payment_id]/options/[id]/route.js +35 -0
  10. package/.medusa/server/src/api/admin/pays/[payment_id]/options/route.js +46 -0
  11. package/.medusa/server/src/api/admin/plugin/route.js +7 -0
  12. package/.medusa/server/src/api/lib/connection-pool.js +47 -0
  13. package/.medusa/server/src/api/lib/customer-types.js +24 -0
  14. package/.medusa/server/src/api/lib/sdk.js +112 -0
  15. package/.medusa/server/src/api/lib/utils/password.js +27 -0
  16. package/.medusa/server/src/api/store/custom-shipping-methods/route.js +30 -0
  17. package/.medusa/server/src/api/store/plugin/route.js +7 -0
  18. package/.medusa/server/src/links/posoption-payment.js +16 -0
  19. package/.medusa/server/src/modules/payment-options/index.js +13 -0
  20. package/.medusa/server/src/modules/payment-options/migrations/Migration20250407125141.js +15 -0
  21. package/.medusa/server/src/modules/payment-options/models/payment-option.js +38 -0
  22. package/.medusa/server/src/modules/payment-options/service.js +14 -0
  23. package/.medusa/server/src/workflows/admin-create-operator/index.js +29 -0
  24. package/.medusa/server/src/workflows/admin-create-operator/steps/create-identity.js +27 -0
  25. package/.medusa/server/src/workflows/admin-create-operator/steps/create-operator-user.js +24 -0
  26. package/.medusa/server/src/workflows/authorize-payment-collection/index.js +42 -0
  27. package/.medusa/server/src/workflows/cancel-order-no-refund.js +104 -0
  28. package/.medusa/server/src/workflows/delete-operator.js +41 -0
  29. package/README.md +64 -0
  30. package/package.json +76 -0
@@ -0,0 +1,427 @@
1
+ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
+ import { defineRouteConfig } from "@medusajs/admin-sdk";
3
+ import { EllipsisHorizontal, PencilSquare, Trash, Users } from "@medusajs/icons";
4
+ import { toast, Drawer, Label, Input, Text, Button, Prompt, DropdownMenu, IconButton, FocusModal, createDataTableColumnHelper, useDataTable, DataTable, Container, Heading } from "@medusajs/ui";
5
+ import { useState, useMemo } from "react";
6
+ import { useQueryClient, useMutation, useQuery } from "@tanstack/react-query";
7
+ import Medusa from "@medusajs/js-sdk";
8
+ const sdk = new Medusa({
9
+ // @ts-ignore
10
+ baseUrl: "http://localhost:9000",
11
+ // @ts-ignore
12
+ debug: false,
13
+ auth: {
14
+ type: "session"
15
+ }
16
+ });
17
+ const EditOperatorDrawer = ({
18
+ operator,
19
+ open,
20
+ setOpen
21
+ }) => {
22
+ const [formData, setFormData] = useState({
23
+ first_name: operator.first_name,
24
+ last_name: operator.last_name,
25
+ email: operator.email
26
+ });
27
+ const [errors, setErrors] = useState({});
28
+ const queryClient = useQueryClient();
29
+ const updateOperator = useMutation({
30
+ mutationFn: (data) => sdk.client.fetch(`/admin/operators/${operator.id}`, {
31
+ method: "POST",
32
+ body: data
33
+ }),
34
+ onSuccess: () => {
35
+ queryClient.invalidateQueries({ queryKey: ["operators"] });
36
+ toast.success("Operator updated successfully");
37
+ setOpen(false);
38
+ },
39
+ onError: (error) => {
40
+ toast.error(error.message || "Failed to update operator");
41
+ }
42
+ });
43
+ const handleSubmit = () => {
44
+ const newErrors = {};
45
+ if (!formData.first_name) newErrors.first_name = "First name is required";
46
+ if (!formData.last_name) newErrors.last_name = "Last name is required";
47
+ if (!formData.email) newErrors.email = "Email is required";
48
+ else if (!formData.email.includes("@")) newErrors.email = "Valid email is required";
49
+ if (Object.keys(newErrors).length > 0) {
50
+ setErrors(newErrors);
51
+ return;
52
+ }
53
+ updateOperator.mutate(formData);
54
+ };
55
+ return /* @__PURE__ */ jsx(Drawer, { open, onOpenChange: setOpen, children: /* @__PURE__ */ jsxs(Drawer.Content, { children: [
56
+ /* @__PURE__ */ jsx(Drawer.Header, { children: /* @__PURE__ */ jsx(Drawer.Title, { children: "Edit Operator" }) }),
57
+ /* @__PURE__ */ jsx(Drawer.Body, { className: "flex-1 overflow-auto p-4", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-y-4", children: [
58
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-y-2", children: [
59
+ /* @__PURE__ */ jsx(Label, { children: "First Name" }),
60
+ /* @__PURE__ */ jsx(
61
+ Input,
62
+ {
63
+ value: formData.first_name,
64
+ onChange: (e) => {
65
+ setFormData({ ...formData, first_name: e.target.value });
66
+ setErrors({ ...errors, first_name: "" });
67
+ }
68
+ }
69
+ ),
70
+ errors.first_name && /* @__PURE__ */ jsx(Text, { size: "small", className: "text-ui-fg-error", children: errors.first_name })
71
+ ] }),
72
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-y-2", children: [
73
+ /* @__PURE__ */ jsx(Label, { children: "Last Name" }),
74
+ /* @__PURE__ */ jsx(
75
+ Input,
76
+ {
77
+ value: formData.last_name,
78
+ onChange: (e) => {
79
+ setFormData({ ...formData, last_name: e.target.value });
80
+ setErrors({ ...errors, last_name: "" });
81
+ }
82
+ }
83
+ ),
84
+ errors.last_name && /* @__PURE__ */ jsx(Text, { size: "small", className: "text-ui-fg-error", children: errors.last_name })
85
+ ] }),
86
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-y-2", children: [
87
+ /* @__PURE__ */ jsx(Label, { children: "Email" }),
88
+ /* @__PURE__ */ jsx(
89
+ Input,
90
+ {
91
+ type: "email",
92
+ value: formData.email,
93
+ onChange: (e) => {
94
+ setFormData({ ...formData, email: e.target.value });
95
+ setErrors({ ...errors, email: "" });
96
+ }
97
+ }
98
+ ),
99
+ errors.email && /* @__PURE__ */ jsx(Text, { size: "small", className: "text-ui-fg-error", children: errors.email })
100
+ ] })
101
+ ] }) }),
102
+ /* @__PURE__ */ jsx(Drawer.Footer, { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-end gap-x-2", children: [
103
+ /* @__PURE__ */ jsx(Drawer.Close, { asChild: true, children: /* @__PURE__ */ jsx(
104
+ Button,
105
+ {
106
+ size: "small",
107
+ variant: "secondary",
108
+ disabled: updateOperator.isPending,
109
+ children: "Cancel"
110
+ }
111
+ ) }),
112
+ /* @__PURE__ */ jsx(
113
+ Button,
114
+ {
115
+ size: "small",
116
+ onClick: handleSubmit,
117
+ isLoading: updateOperator.isPending,
118
+ children: "Save"
119
+ }
120
+ )
121
+ ] }) })
122
+ ] }) });
123
+ };
124
+ const DeleteOperatorModal = ({
125
+ operator,
126
+ open,
127
+ setOpen
128
+ }) => {
129
+ const queryClient = useQueryClient();
130
+ const deleteMutation = useMutation({
131
+ mutationFn: () => sdk.client.fetch(`/admin/operators/${operator.id}`, { method: "DELETE" }),
132
+ onSuccess: () => {
133
+ queryClient.invalidateQueries({ queryKey: ["operators"] });
134
+ toast.success("Operator deleted successfully");
135
+ setOpen(false);
136
+ },
137
+ onError: (error) => {
138
+ toast.error(error.message || "Failed to delete operator");
139
+ }
140
+ });
141
+ return /* @__PURE__ */ jsx(Prompt, { open, onOpenChange: setOpen, children: /* @__PURE__ */ jsxs(Prompt.Content, { children: [
142
+ /* @__PURE__ */ jsxs(Prompt.Header, { children: [
143
+ /* @__PURE__ */ jsx(Prompt.Title, { children: "Delete Operator" }),
144
+ /* @__PURE__ */ jsxs(Prompt.Description, { children: [
145
+ "Are you sure you want to delete ",
146
+ operator.first_name,
147
+ "? This action cannot be undone."
148
+ ] })
149
+ ] }),
150
+ /* @__PURE__ */ jsxs(Prompt.Footer, { children: [
151
+ /* @__PURE__ */ jsx(Prompt.Cancel, { children: "Cancel" }),
152
+ /* @__PURE__ */ jsx(
153
+ Prompt.Action,
154
+ {
155
+ onClick: () => deleteMutation.mutate(),
156
+ disabled: deleteMutation.isPending,
157
+ children: "Delete"
158
+ }
159
+ )
160
+ ] })
161
+ ] }) });
162
+ };
163
+ const OperatorActions = ({ operator }) => {
164
+ const [editOpen, setEditOpen] = useState(false);
165
+ const [deleteOpen, setDeleteOpen] = useState(false);
166
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
167
+ /* @__PURE__ */ jsxs(DropdownMenu, { children: [
168
+ /* @__PURE__ */ jsx(DropdownMenu.Trigger, { asChild: true, children: /* @__PURE__ */ jsx(IconButton, { size: "small", variant: "transparent", children: /* @__PURE__ */ jsx(EllipsisHorizontal, {}) }) }),
169
+ /* @__PURE__ */ jsxs(DropdownMenu.Content, { children: [
170
+ /* @__PURE__ */ jsxs(DropdownMenu.Item, { onClick: () => setEditOpen(true), className: "gap-x-2", children: [
171
+ /* @__PURE__ */ jsx(PencilSquare, { className: "text-ui-fg-subtle" }),
172
+ "Edit"
173
+ ] }),
174
+ /* @__PURE__ */ jsx(DropdownMenu.Separator, {}),
175
+ /* @__PURE__ */ jsxs(DropdownMenu.Item, { onClick: () => setDeleteOpen(true), className: "gap-x-2", children: [
176
+ /* @__PURE__ */ jsx(Trash, { className: "text-ui-fg-subtle" }),
177
+ "Delete"
178
+ ] })
179
+ ] })
180
+ ] }),
181
+ /* @__PURE__ */ jsx(EditOperatorDrawer, { operator, open: editOpen, setOpen: setEditOpen }),
182
+ /* @__PURE__ */ jsx(DeleteOperatorModal, { operator, open: deleteOpen, setOpen: setDeleteOpen })
183
+ ] });
184
+ };
185
+ const CreateOperatorModal = () => {
186
+ const [open, setOpen] = useState(false);
187
+ const [formData, setFormData] = useState({
188
+ first_name: "",
189
+ last_name: "",
190
+ email: "",
191
+ password: ""
192
+ });
193
+ const [errors, setErrors] = useState({});
194
+ const queryClient = useQueryClient();
195
+ const createOperator = useMutation({
196
+ mutationFn: (data) => sdk.client.fetch("/admin/operators", {
197
+ method: "POST",
198
+ body: data
199
+ }),
200
+ onSuccess: () => {
201
+ queryClient.invalidateQueries({ queryKey: ["operators"] });
202
+ toast.success("Operator created successfully");
203
+ setOpen(false);
204
+ setFormData({ first_name: "", last_name: "", email: "", password: "" });
205
+ setErrors({});
206
+ },
207
+ onError: (error) => {
208
+ toast.error(error.message || "Failed to create operator");
209
+ }
210
+ });
211
+ const handleSubmit = () => {
212
+ const newErrors = {};
213
+ if (!formData.first_name) newErrors.first_name = "First name is required";
214
+ if (!formData.last_name) newErrors.last_name = "Last name is required";
215
+ if (!formData.email) newErrors.email = "Email is required";
216
+ else if (!formData.email.includes("@")) newErrors.email = "Valid email is required";
217
+ if (!formData.password) newErrors.password = "Password is required";
218
+ if (Object.keys(newErrors).length > 0) {
219
+ setErrors(newErrors);
220
+ return;
221
+ }
222
+ createOperator.mutate(formData);
223
+ };
224
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
225
+ /* @__PURE__ */ jsx(Button, { size: "small", variant: "secondary", onClick: () => setOpen(true), children: "Create Operator" }),
226
+ /* @__PURE__ */ jsx(FocusModal, { open, onOpenChange: setOpen, children: /* @__PURE__ */ jsx(FocusModal.Content, { children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col overflow-hidden h-full", children: [
227
+ /* @__PURE__ */ jsx(FocusModal.Header, { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-end gap-x-2", children: [
228
+ /* @__PURE__ */ jsx(FocusModal.Close, { asChild: true, children: /* @__PURE__ */ jsx(
229
+ Button,
230
+ {
231
+ size: "small",
232
+ variant: "secondary",
233
+ disabled: createOperator.isPending,
234
+ children: "Cancel"
235
+ }
236
+ ) }),
237
+ /* @__PURE__ */ jsx(
238
+ Button,
239
+ {
240
+ size: "small",
241
+ onClick: handleSubmit,
242
+ isLoading: createOperator.isPending,
243
+ children: "Save"
244
+ }
245
+ )
246
+ ] }) }),
247
+ /* @__PURE__ */ jsx(FocusModal.Body, { className: "flex-1 overflow-auto", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-y-4 max-w-[600px] mx-auto mt-8", children: [
248
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-y-2", children: [
249
+ /* @__PURE__ */ jsx(Label, { children: "First Name *" }),
250
+ /* @__PURE__ */ jsx(
251
+ Input,
252
+ {
253
+ value: formData.first_name,
254
+ onChange: (e) => {
255
+ setFormData({ ...formData, first_name: e.target.value });
256
+ setErrors({ ...errors, first_name: "" });
257
+ }
258
+ }
259
+ ),
260
+ errors.first_name && /* @__PURE__ */ jsx(Text, { size: "small", className: "text-ui-fg-error", children: errors.first_name })
261
+ ] }),
262
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-y-2", children: [
263
+ /* @__PURE__ */ jsx(Label, { children: "Last Name *" }),
264
+ /* @__PURE__ */ jsx(
265
+ Input,
266
+ {
267
+ value: formData.last_name,
268
+ onChange: (e) => {
269
+ setFormData({ ...formData, last_name: e.target.value });
270
+ setErrors({ ...errors, last_name: "" });
271
+ }
272
+ }
273
+ ),
274
+ errors.last_name && /* @__PURE__ */ jsx(Text, { size: "small", className: "text-ui-fg-error", children: errors.last_name })
275
+ ] }),
276
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-y-2", children: [
277
+ /* @__PURE__ */ jsx(Label, { children: "Email *" }),
278
+ /* @__PURE__ */ jsx(
279
+ Input,
280
+ {
281
+ type: "email",
282
+ value: formData.email,
283
+ onChange: (e) => {
284
+ setFormData({ ...formData, email: e.target.value });
285
+ setErrors({ ...errors, email: "" });
286
+ }
287
+ }
288
+ ),
289
+ errors.email && /* @__PURE__ */ jsx(Text, { size: "small", className: "text-ui-fg-error", children: errors.email })
290
+ ] }),
291
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-y-2", children: [
292
+ /* @__PURE__ */ jsx(Label, { children: "Password *" }),
293
+ /* @__PURE__ */ jsx(
294
+ Input,
295
+ {
296
+ type: "password",
297
+ value: formData.password,
298
+ onChange: (e) => {
299
+ setFormData({ ...formData, password: e.target.value });
300
+ setErrors({ ...errors, password: "" });
301
+ }
302
+ }
303
+ ),
304
+ /* @__PURE__ */ jsx(Text, { size: "small", className: "text-ui-fg-subtle", children: "This password will be used by the operator to log into their portal." }),
305
+ errors.password && /* @__PURE__ */ jsx(Text, { size: "small", className: "text-ui-fg-error", children: errors.password })
306
+ ] })
307
+ ] }) })
308
+ ] }) }) })
309
+ ] });
310
+ };
311
+ const columnHelper = createDataTableColumnHelper();
312
+ const useColumns = () => {
313
+ return useMemo(
314
+ () => [
315
+ columnHelper.accessor("first_name", {
316
+ header: "First Name"
317
+ }),
318
+ columnHelper.accessor("last_name", {
319
+ header: "Last Name"
320
+ }),
321
+ columnHelper.accessor("email", {
322
+ header: "Email"
323
+ }),
324
+ columnHelper.accessor("created_at", {
325
+ header: "Date Added",
326
+ cell: ({ getValue }) => new Date(getValue()).toLocaleDateString()
327
+ }),
328
+ columnHelper.display({
329
+ id: "actions",
330
+ cell: ({ row }) => /* @__PURE__ */ jsx(OperatorActions, { operator: row.original })
331
+ })
332
+ ],
333
+ []
334
+ );
335
+ };
336
+ const OperatorTable = () => {
337
+ const [searchValue, setSearchValue] = useState("");
338
+ const [pagination, setPagination] = useState({
339
+ pageIndex: 0,
340
+ pageSize: 15
341
+ });
342
+ const limit = pagination.pageSize;
343
+ const offset = pagination.pageIndex * limit;
344
+ const { data, isLoading } = useQuery({
345
+ queryFn: () => sdk.client.fetch("/admin/operators", {
346
+ query: {
347
+ limit,
348
+ offset,
349
+ q: searchValue || void 0
350
+ }
351
+ }),
352
+ queryKey: ["operators", limit, offset, searchValue],
353
+ placeholderData: (previousData) => previousData
354
+ });
355
+ const columns = useColumns();
356
+ const table = useDataTable({
357
+ data: (data == null ? void 0 : data.operators) || [],
358
+ columns,
359
+ getRowId: (row) => row.id,
360
+ rowCount: (data == null ? void 0 : data.count) || 0,
361
+ isLoading,
362
+ search: {
363
+ state: searchValue,
364
+ onSearchChange: setSearchValue
365
+ },
366
+ pagination: {
367
+ state: pagination,
368
+ onPaginationChange: setPagination
369
+ }
370
+ });
371
+ return /* @__PURE__ */ jsxs(DataTable, { instance: table, children: [
372
+ /* @__PURE__ */ jsx(DataTable.Toolbar, { children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-x-2", children: [
373
+ /* @__PURE__ */ jsx(CreateOperatorModal, {}),
374
+ /* @__PURE__ */ jsx(DataTable.Search, { placeholder: "Search operators..." })
375
+ ] }) }),
376
+ /* @__PURE__ */ jsx(DataTable.Table, {}),
377
+ /* @__PURE__ */ jsx(DataTable.Pagination, {})
378
+ ] });
379
+ };
380
+ const OperatorsPage = () => {
381
+ return /* @__PURE__ */ jsxs(Container, { className: "flex flex-col items-stretch overflow-hidden p-0", children: [
382
+ /* @__PURE__ */ jsx("div", { className: "flex items-center justify-between border-b border-ui-border-base px-6 py-4", children: /* @__PURE__ */ jsx(Heading, { level: "h2", children: "Operators" }) }),
383
+ /* @__PURE__ */ jsx(OperatorTable, {})
384
+ ] });
385
+ };
386
+ const config = defineRouteConfig({
387
+ label: "Operators",
388
+ icon: Users
389
+ });
390
+ const i18nTranslations0 = {};
391
+ const widgetModule = { widgets: [] };
392
+ const routeModule = {
393
+ routes: [
394
+ {
395
+ Component: OperatorsPage,
396
+ path: "/operators"
397
+ }
398
+ ]
399
+ };
400
+ const menuItemModule = {
401
+ menuItems: [
402
+ {
403
+ label: config.label,
404
+ icon: config.icon,
405
+ path: "/operators",
406
+ nested: void 0,
407
+ rank: void 0,
408
+ translationNs: void 0
409
+ }
410
+ ]
411
+ };
412
+ const formModule = { customFields: {} };
413
+ const displayModule = {
414
+ displays: {}
415
+ };
416
+ const i18nModule = { resources: i18nTranslations0 };
417
+ const plugin = {
418
+ widgetModule,
419
+ routeModule,
420
+ menuItemModule,
421
+ formModule,
422
+ displayModule,
423
+ i18nModule
424
+ };
425
+ export {
426
+ plugin as default
427
+ };
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = POST;
4
+ const zod_1 = require("@medusajs/framework/zod");
5
+ const authorize_payment_collection_1 = require("../../../../../../workflows/authorize-payment-collection");
6
+ const MarkAsPaidSchema = zod_1.z.object({
7
+ order_id: zod_1.z.string(),
8
+ });
9
+ async function POST(req, res) {
10
+ const { id } = req.params;
11
+ const validated = MarkAsPaidSchema.parse(req.body);
12
+ const { result } = await (0, authorize_payment_collection_1.authorizePaymentCollectionWorkflow)(req.scope).run({
13
+ input: {
14
+ payment_collection_id: id,
15
+ order_id: validated.order_id,
16
+ },
17
+ });
18
+ res.status(200).json({ payment: result });
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL25ldG1lLXBvcy9wYXltZW50LWNvbGxlY3Rpb25zL1tpZF0vbWFyay1hcy1wYWlkL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBUUEsb0JBZUM7QUF0QkQsaURBQTJDO0FBQzNDLDJHQUE2RztBQUU3RyxNQUFNLGdCQUFnQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDOUIsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDdkIsQ0FBQyxDQUFBO0FBRUssS0FBSyxVQUFVLElBQUksQ0FDdEIsR0FBa0IsRUFDbEIsR0FBbUI7SUFFbkIsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7SUFDekIsTUFBTSxTQUFTLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUVsRCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLGlFQUFrQyxFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDdkUsS0FBSyxFQUFFO1lBQ0gscUJBQXFCLEVBQUUsRUFBRTtZQUN6QixRQUFRLEVBQUUsU0FBUyxDQUFDLFFBQVE7U0FDL0I7S0FDSixDQUFDLENBQUE7SUFFRixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFBO0FBQzdDLENBQUMifQ==
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = POST;
4
+ const zod_1 = require("@medusajs/framework/zod");
5
+ const core_flows_1 = require("@medusajs/medusa/core-flows");
6
+ const CreateSessionSchema = zod_1.z.object({
7
+ provider_id: zod_1.z.string(),
8
+ });
9
+ async function POST(req, res) {
10
+ const { id } = req.params;
11
+ const validated = CreateSessionSchema.parse(req.body);
12
+ const { result } = await (0, core_flows_1.createPaymentSessionsWorkflow)(req.scope).run({
13
+ input: {
14
+ payment_collection_id: id,
15
+ provider_id: validated.provider_id,
16
+ },
17
+ });
18
+ // Mimics the store API response structure:
19
+ res.status(200).json({ payment_collection: result });
20
+ }
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL25ldG1lLXBvcy9wYXltZW50LWNvbGxlY3Rpb25zL1tpZF0vcGF5bWVudC1zZXNzaW9ucy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVFBLG9CQWdCQztBQXZCRCxpREFBMkM7QUFDM0MsNERBQTJFO0FBRTNFLE1BQU0sbUJBQW1CLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNqQyxXQUFXLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRTtDQUMxQixDQUFDLENBQUE7QUFFSyxLQUFLLFVBQVUsSUFBSSxDQUN0QixHQUFrQixFQUNsQixHQUFtQjtJQUVuQixNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUN6QixNQUFNLFNBQVMsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO0lBRXJELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUEsMENBQTZCLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUNsRSxLQUFLLEVBQUU7WUFDSCxxQkFBcUIsRUFBRSxFQUFFO1lBQ3pCLFdBQVcsRUFBRSxTQUFTLENBQUMsV0FBVztTQUNyQztLQUNKLENBQUMsQ0FBQTtJQUVGLDJDQUEyQztJQUMzQyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUE7QUFDeEQsQ0FBQyJ9
@@ -0,0 +1,69 @@
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 delete_operator_1 = require("../../../../workflows/delete-operator");
8
+ const utils_1 = require("@medusajs/framework/utils");
9
+ async function GET(req, res) {
10
+ const query = req.scope.resolve("query");
11
+ const id = req.params.id;
12
+ const { data: users } = await query.graph({
13
+ entity: "user",
14
+ fields: ["id", "email", "first_name", "last_name", "avatar_url", "created_at", "updated_at", "metadata"],
15
+ filters: {
16
+ id,
17
+ metadata: {
18
+ is_pos_operator: true
19
+ }
20
+ }
21
+ });
22
+ if (!users || users.length === 0) {
23
+ res.status(404).json({ message: "Operator not found." });
24
+ return;
25
+ }
26
+ res.status(200).json({ operator: users[0] });
27
+ }
28
+ const UpdateOperatorSchema = zod_1.z.object({
29
+ first_name: zod_1.z.string().optional(),
30
+ last_name: zod_1.z.string().optional(),
31
+ email: zod_1.z.string().email().optional(),
32
+ });
33
+ async function POST(req, res) {
34
+ const id = req.params.id;
35
+ const validated = UpdateOperatorSchema.parse(req.body);
36
+ const userModuleService = req.scope.resolve(utils_1.Modules.USER);
37
+ // Verify it exists AND is a POS operator
38
+ const existingUser = await userModuleService.retrieveUser(id);
39
+ if (!existingUser?.metadata?.is_pos_operator) {
40
+ res.status(404).json({ message: "Operator not found." });
41
+ return;
42
+ }
43
+ const updatedUser = await userModuleService.updateUsers({
44
+ id,
45
+ first_name: validated.first_name,
46
+ last_name: validated.last_name,
47
+ });
48
+ // Optionally update auth identity if email changed, but let's stick to name updates for simplicity here.
49
+ res.status(200).json({ operator: updatedUser });
50
+ }
51
+ async function DELETE(req, res) {
52
+ const id = req.params.id;
53
+ const userModuleService = req.scope.resolve(utils_1.Modules.USER);
54
+ // Verify it exists AND is a POS operator before deleting
55
+ const existingUser = await userModuleService.retrieveUser(id).catch(() => null);
56
+ if (!existingUser?.metadata?.is_pos_operator) {
57
+ res.status(404).json({ message: "Operator not found." });
58
+ return;
59
+ }
60
+ await (0, delete_operator_1.adminDeleteOperatorWorkflow)(req.scope).run({
61
+ input: id,
62
+ });
63
+ res.status(200).json({
64
+ id,
65
+ object: "user",
66
+ deleted: true,
67
+ });
68
+ }
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL29wZXJhdG9ycy9baWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBS0Esa0JBd0JDO0FBUUQsb0JBd0JDO0FBRUQsd0JBdUJDO0FBckZELGlEQUEyQztBQUMzQywyRUFBbUY7QUFDbkYscURBQW1EO0FBRTVDLEtBQUssVUFBVSxHQUFHLENBQ3JCLEdBQWtCLEVBQ2xCLEdBQW1CO0lBRW5CLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBQ3hDLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFBO0lBRXhCLE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3RDLE1BQU0sRUFBRSxNQUFNO1FBQ2QsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQztRQUN4RyxPQUFPLEVBQUU7WUFDTCxFQUFFO1lBQ0YsUUFBUSxFQUFFO2dCQUNOLGVBQWUsRUFBRSxJQUFJO2FBQ2pCO1NBQ1g7S0FDSixDQUFDLENBQUE7SUFFRixJQUFJLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDL0IsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxDQUFBO1FBQ3hELE9BQU07SUFDVixDQUFDO0lBRUQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFD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
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = POST;
4
+ exports.GET = GET;
5
+ const zod_1 = require("@medusajs/framework/zod");
6
+ const admin_create_operator_1 = require("../../../workflows/admin-create-operator");
7
+ const password_1 = require("../../lib/utils/password");
8
+ const CreateOperatorSchema = zod_1.z.object({
9
+ first_name: zod_1.z.string().min(1),
10
+ last_name: zod_1.z.string().min(1),
11
+ email: zod_1.z.string().email(),
12
+ password: zod_1.z.string().min(8, "Password must be at least 8 characters long"),
13
+ });
14
+ async function POST(req, res) {
15
+ const validated = CreateOperatorSchema.parse(req.body);
16
+ const passwordHash = await (0, password_1.hashPassword)(validated.password);
17
+ const { result: user } = await (0, admin_create_operator_1.adminCreateOperatorWorkflow)(req.scope).run({
18
+ input: {
19
+ first_name: validated.first_name,
20
+ last_name: validated.last_name,
21
+ email: validated.email,
22
+ passwordHash,
23
+ },
24
+ });
25
+ res.status(200).json({ operator: user });
26
+ }
27
+ async function GET(req, res) {
28
+ // Use graph to query standard Users who have the metadata flag is_pos_operator = true
29
+ const query = req.scope.resolve("query");
30
+ const { data: users, metadata } = await query.graph({
31
+ entity: "user",
32
+ fields: ["id", "email", "first_name", "last_name", "avatar_url", "created_at", "updated_at", "metadata"],
33
+ filters: {
34
+ metadata: {
35
+ is_pos_operator: true
36
+ }
37
+ }
38
+ });
39
+ const meta = metadata;
40
+ // the admin UI expects an array under `operators`
41
+ res.status(200).json({
42
+ operators: users,
43
+ count: meta?.count || users.length,
44
+ offset: meta?.skip || 0,
45
+ limit: meta?.take || users.length,
46
+ });
47
+ }
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL29wZXJhdG9ycy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWFBLG9CQWtCQztBQUVELGtCQTBCQztBQTFERCxpREFBMkM7QUFDM0Msb0ZBQXNGO0FBRXRGLHVEQUF1RDtBQUV2RCxNQUFNLG9CQUFvQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDbEMsVUFBVSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzdCLFNBQVMsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM1QixLQUFLLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssRUFBRTtJQUN6QixRQUFRLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsNkNBQTZDLENBQUM7Q0FDN0UsQ0FBQyxDQUFBO0FBRUssS0FBSyxVQUFVLElBQUksQ0FDdEIsR0FBa0IsRUFDbEIsR0FBbUI7SUFFbkIsTUFBTSxTQUFTLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUV0RCxNQUFNLFlBQVksR0FBRyxNQUFNLElBQUEsdUJBQVksRUFBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUE7SUFFM0QsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUEsbURBQTJCLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUN0RSxLQUFLLEVBQUU7WUFDSCxVQUFVLEVBQUUsU0FBUyxDQUFDLFVBQVU7WUFDaEMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxTQUFTO1lBQzlCLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSztZQUN0QixZQUFZO1NBQ2Y7S0FDSixDQUFDLENBQUE7SUFFRixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0FBQzVDLENBQUM7QUFFTSxLQUFLLFVBQVUsR0FBRyxDQUNyQixHQUFrQixFQUNsQixHQUFtQjtJQUVuQixzRkFBc0Y7SUFDdEYsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUE7SUFFeEMsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ2hELE1BQU0sRUFBRSxNQUFNO1FBQ2QsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQztRQUN4RyxPQUFPLEVBQUU7WUFDTCxRQUFRLEVBQUU7Z0JBQ04sZUFBZSxFQUFFLElBQUk7YUFDakI7U0FDWDtLQUNKLENBQUMsQ0FBQTtJQUVGLE1BQU0sSUFBSSxHQUFHLFFBQWUsQ0FBQTtJQUU1QixrREFBa0Q7SUFDbEQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDakIsU0FBUyxFQUFFLEtBQUs7UUFDaEIsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU07UUFDbEMsTUFBTSxFQUFFLElBQUksRUFBRSxJQUFJLElBQUksQ0FBQztRQUN2QixLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksSUFBSSxLQUFLLENBQUMsTUFBTTtLQUNwQyxDQUFDLENBQUE7QUFDTixDQUFDIn0=
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = POST;
4
+ const cancel_order_no_refund_1 = require("../../../../../workflows/cancel-order-no-refund");
5
+ async function POST(req, res) {
6
+ try {
7
+ const { result } = await (0, cancel_order_no_refund_1.cancelOrderWorkflow)(req.scope).run({
8
+ input: {
9
+ order_id: req.params.id,
10
+ }
11
+ });
12
+ res.json({
13
+ result
14
+ });
15
+ }
16
+ catch (error) {
17
+ res.status(500).json({
18
+ error: error.message
19
+ });
20
+ }
21
+ }
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL29yZGVycy9baWRdL2NhbmNlbC1uby1yZWZvdW5kL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsb0JBa0JDO0FBbkJELDRGQUFzRjtBQUMvRSxLQUFLLFVBQVUsSUFBSSxDQUN4QixHQUErQixFQUMvQixHQUFtQjtJQUVuQixJQUFJLENBQUM7UUFDSCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLDRDQUFtQixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDMUQsS0FBSyxFQUFFO2dCQUNMLFFBQVEsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7YUFDeEI7U0FDRixDQUFDLENBQUE7UUFDRixHQUFHLENBQUMsSUFBSSxDQUFDO1lBQ1AsTUFBTTtTQUNQLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDbkIsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPO1NBQ3JCLENBQUMsQ0FBQTtJQUNKLENBQUM7QUFDSCxDQUFDIn0=
@@ -0,0 +1,25 @@
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 displayId = req.query.display_id;
7
+ if (!displayId) {
8
+ return res.status(400).json({
9
+ message: "display_id is required"
10
+ });
11
+ }
12
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
13
+ const { data: orders } = await query.graph({
14
+ entity: "order",
15
+ filters: {
16
+ display_id: displayId
17
+ },
18
+ fields: ["id", "display_id", "status", "created_at"]
19
+ });
20
+ res.json({
21
+ orders
22
+ });
23
+ };
24
+ exports.GET = GET;
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL29yZGVycy9zZWFyY2gtYnktZGlzcGxheS1pZC9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBcUU7QUFFOUQsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN0QixHQUFrQixFQUNsQixHQUFtQixFQUNuQixFQUFFO0lBQ0YsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFvQixDQUFBO0lBRWhELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNmLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDMUIsT0FBTyxFQUFFLHdCQUF3QjtTQUNsQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQzdCLGlDQUF5QixDQUFDLEtBQUssQ0FDaEMsQ0FBQTtJQUVELE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3pDLE1BQU0sRUFBRSxPQUFPO1FBQ2YsT0FBTyxFQUFFO1lBQ0wsVUFBVSxFQUFFLFNBQVM7U0FDakI7UUFDUixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxZQUFZLENBQUM7S0FDckQsQ0FBQyxDQUFBO0lBRUYsR0FBRyxDQUFDLElBQUksQ0FBQztRQUNQLE1BQU07S0FDUCxDQUFDLENBQUE7QUFDSixDQUFDLENBQUE7QUEzQlksUUFBQSxHQUFHLE9BMkJmIn0=