@gigapay-dev/contracts 1.4.3 → 1.4.5
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.
|
@@ -7,7 +7,7 @@ exports.OrderEndpoints = void 0;
|
|
|
7
7
|
const zod_1 = __importDefault(require("zod"));
|
|
8
8
|
const read_1 = require("./read");
|
|
9
9
|
const create_1 = require("./create");
|
|
10
|
-
const
|
|
10
|
+
const query_1 = require("./query");
|
|
11
11
|
exports.OrderEndpoints = {
|
|
12
12
|
create: {
|
|
13
13
|
method: "POST",
|
|
@@ -18,7 +18,7 @@ exports.OrderEndpoints = {
|
|
|
18
18
|
list: {
|
|
19
19
|
method: "GET",
|
|
20
20
|
path: "/orders",
|
|
21
|
-
request:
|
|
21
|
+
request: query_1.OrdersListQuerySchema,
|
|
22
22
|
response: zod_1.default.array(read_1.OrderReadResponseSchema),
|
|
23
23
|
},
|
|
24
24
|
getById: {
|
|
@@ -32,7 +32,7 @@ exports.OrderEndpoints = {
|
|
|
32
32
|
getUserOrders: {
|
|
33
33
|
method: "GET",
|
|
34
34
|
path: "/orders/user",
|
|
35
|
-
request:
|
|
35
|
+
request: query_1.OrdersListQuerySchema,
|
|
36
36
|
response: zod_1.default.array(read_1.OrderReadResponseSchema),
|
|
37
37
|
},
|
|
38
38
|
getUserOrderById: {
|
|
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./create"), exports);
|
|
18
18
|
__exportStar(require("./update"), exports);
|
|
19
19
|
__exportStar(require("./read"), exports);
|
|
20
|
+
__exportStar(require("./query"), exports);
|
|
20
21
|
__exportStar(require("./endpoints"), exports);
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.OrdersListQuerySchema = exports.OrdersSortSchema = exports.OrdersFiltersSchema = exports.OrdersPeriodSchema = void 0;
|
|
7
|
+
const zod_1 = __importDefault(require("zod"));
|
|
8
|
+
const pagination_1 = require("../pagination");
|
|
9
|
+
const OrdersPeriodBase = zod_1.default.object({
|
|
10
|
+
period: zod_1.default.enum(["day", "week", "month", "year", "custom"]).optional(),
|
|
11
|
+
start: zod_1.default.string().datetime().optional(),
|
|
12
|
+
end: zod_1.default.string().datetime().optional(),
|
|
13
|
+
});
|
|
14
|
+
exports.OrdersPeriodSchema = OrdersPeriodBase
|
|
15
|
+
.refine(v => v.period !== "custom" || (v.start && v.end), {
|
|
16
|
+
message: "start/end обязательны при period=custom",
|
|
17
|
+
})
|
|
18
|
+
.refine(v => v.period !== "custom" || new Date(v.start) < new Date(v.end), {
|
|
19
|
+
message: "start должен быть раньше end",
|
|
20
|
+
});
|
|
21
|
+
exports.OrdersFiltersSchema = zod_1.default.object({
|
|
22
|
+
email: zod_1.default.string().email().optional(),
|
|
23
|
+
steamUsername: zod_1.default.string().min(1).optional(),
|
|
24
|
+
status: zod_1.default.enum(["PENDING", "SUCCESS", "FAILED", "CANCELED"]).optional(),
|
|
25
|
+
});
|
|
26
|
+
exports.OrdersSortSchema = zod_1.default.object({
|
|
27
|
+
sortBy: zod_1.default.string().default("createdAt"),
|
|
28
|
+
sortDir: zod_1.default.enum(["asc", "desc"]).default("desc"),
|
|
29
|
+
});
|
|
30
|
+
exports.OrdersListQuerySchema = pagination_1.PaginationQuery
|
|
31
|
+
.merge(exports.OrdersFiltersSchema)
|
|
32
|
+
.merge(exports.OrdersSortSchema)
|
|
33
|
+
.merge(OrdersPeriodBase);
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
import { EndpointContract } from "../../types";
|
|
8
8
|
import { OrderCreateRequestSchema, OrderCreateResponseSchema } from "./create";
|
|
9
9
|
import { PaginationQuery } from "../pagination";
|
|
10
|
+
import { OrdersListQuerySchema } from "./query";
|
|
10
11
|
|
|
11
12
|
export const OrderEndpoints = {
|
|
12
13
|
create: {
|
|
@@ -18,7 +19,7 @@ export const OrderEndpoints = {
|
|
|
18
19
|
list: {
|
|
19
20
|
method: "GET",
|
|
20
21
|
path: "/orders",
|
|
21
|
-
request:
|
|
22
|
+
request: OrdersListQuerySchema,
|
|
22
23
|
response: z.array(OrderReadResponseSchema),
|
|
23
24
|
},
|
|
24
25
|
getById: {
|
|
@@ -32,7 +33,7 @@ export const OrderEndpoints = {
|
|
|
32
33
|
getUserOrders: {
|
|
33
34
|
method: "GET",
|
|
34
35
|
path: "/orders/user",
|
|
35
|
-
request:
|
|
36
|
+
request: OrdersListQuerySchema,
|
|
36
37
|
response: z.array(OrderReadResponseSchema),
|
|
37
38
|
},
|
|
38
39
|
getUserOrderById: {
|
package/commands/orders/index.ts
CHANGED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import z from "zod";
|
|
2
|
+
import { PaginationQuery } from "../pagination";
|
|
3
|
+
|
|
4
|
+
const OrdersPeriodBase = z.object({
|
|
5
|
+
period: z.enum(["day", "week", "month", "year", "custom"]).optional(),
|
|
6
|
+
start: z.string().datetime().optional(),
|
|
7
|
+
end: z.string().datetime().optional(),
|
|
8
|
+
});
|
|
9
|
+
export const OrdersPeriodSchema = OrdersPeriodBase
|
|
10
|
+
.refine(v => v.period !== "custom" || (v.start && v.end), {
|
|
11
|
+
message: "start/end обязательны при period=custom",
|
|
12
|
+
})
|
|
13
|
+
.refine(v => v.period !== "custom" || new Date(v.start!) < new Date(v.end!), {
|
|
14
|
+
message: "start должен быть раньше end",
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
export const OrdersFiltersSchema = z.object({
|
|
18
|
+
email: z.string().email().optional(),
|
|
19
|
+
steamUsername: z.string().min(1).optional(),
|
|
20
|
+
status: z.enum(["PENDING", "SUCCESS", "FAILED", "CANCELED"]).optional(),
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
export const OrdersSortSchema = z.object({
|
|
24
|
+
sortBy: z.string().default("createdAt"),
|
|
25
|
+
sortDir: z.enum(["asc", "desc"]).default("desc"),
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
export const OrdersListQuerySchema = PaginationQuery
|
|
29
|
+
.merge(OrdersFiltersSchema)
|
|
30
|
+
.merge(OrdersSortSchema)
|
|
31
|
+
.merge(OrdersPeriodBase);
|
|
32
|
+
|
|
33
|
+
export type OrdersListQuery = z.infer<typeof OrdersListQuerySchema>;
|