@kl1/contracts 1.0.0 → 1.0.2
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.
- package/dist/index.js +1493 -496
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1487 -492
- package/dist/index.mjs.map +1 -1
- package/dist/src/attribute/index.d.ts +527 -65
- package/dist/src/attribute/index.d.ts.map +1 -1
- package/dist/src/attribute/schema.d.ts +91 -11
- package/dist/src/attribute/schema.d.ts.map +1 -1
- package/dist/src/attribute/validation.d.ts +13 -16
- package/dist/src/attribute/validation.d.ts.map +1 -1
- package/dist/src/attribute-option/schema.d.ts +5 -5
- package/dist/src/auth/index.d.ts +64 -29
- package/dist/src/auth/index.d.ts.map +1 -1
- package/dist/src/base-contract.d.ts +6 -6
- package/dist/src/base-contract.d.ts.map +1 -1
- package/dist/src/call-log/schema.d.ts +5 -5
- package/dist/src/call-log/validation.d.ts +2 -2
- package/dist/src/category/index.d.ts +193 -109
- package/dist/src/category/index.d.ts.map +1 -1
- package/dist/src/category/schema.d.ts +24 -2
- package/dist/src/category/schema.d.ts.map +1 -1
- package/dist/src/category/validation.d.ts +4 -4
- package/dist/src/chat/index.d.ts +2111 -0
- package/dist/src/chat/index.d.ts.map +1 -0
- package/dist/src/chat/schema.d.ts +1742 -0
- package/dist/src/chat/schema.d.ts.map +1 -0
- package/dist/src/chat/validation.d.ts +355 -0
- package/dist/src/chat/validation.d.ts.map +1 -0
- package/dist/src/company/schema.d.ts +3 -3
- package/dist/src/contact/schema.d.ts +3 -3
- package/dist/src/contact-email/schema.d.ts +3 -3
- package/dist/src/contact-phone/schema.d.ts +3 -3
- package/dist/src/contract.d.ts +6117 -599
- package/dist/src/contract.d.ts.map +1 -1
- package/dist/src/custom-field/schema.d.ts +5 -5
- package/dist/src/custom-field-upload/schema.d.ts +3 -3
- package/dist/src/cx-log/index.d.ts +64 -62
- package/dist/src/cx-log/index.d.ts.map +1 -1
- package/dist/src/cx-log/schema.d.ts +7 -7
- package/dist/src/cx-log/validation.d.ts +47 -47
- package/dist/src/cx-log/validation.d.ts.map +1 -1
- package/dist/src/evaluate-form/schema.d.ts +3 -3
- package/dist/src/extension/index.d.ts +547 -0
- package/dist/src/extension/index.d.ts.map +1 -0
- package/dist/src/extension/schema.d.ts +9 -9
- package/dist/src/extension/validation.d.ts +49 -0
- package/dist/src/extension/validation.d.ts.map +1 -0
- package/dist/src/group/schema.d.ts +3 -3
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/line/index.d.ts +86 -0
- package/dist/src/line/index.d.ts.map +1 -0
- package/dist/src/line/schema.d.ts +12 -0
- package/dist/src/line/schema.d.ts.map +1 -0
- package/dist/src/line/validation.d.ts +18 -0
- package/dist/src/line/validation.d.ts.map +1 -0
- package/dist/src/log-form/schema.d.ts +3 -3
- package/dist/src/mail/account-contract.d.ts +119 -119
- package/dist/src/mail/account-contract.d.ts.map +1 -1
- package/dist/src/mail/mail-contract.d.ts +622 -623
- package/dist/src/mail/mail-contract.d.ts.map +1 -1
- package/dist/src/mail/mail-server.d.ts.map +1 -1
- package/dist/src/mail/message-contract.d.ts.map +1 -1
- package/dist/src/mail/room-contract.d.ts.map +1 -1
- package/dist/src/mail/schemas/account.schema.d.ts +129 -129
- package/dist/src/permission/index.d.ts +95 -0
- package/dist/src/permission/index.d.ts.map +1 -0
- package/dist/src/permission/schema.d.ts +3 -3
- package/dist/src/platform-contact/schema.d.ts +5 -5
- package/dist/src/role/index.d.ts +545 -0
- package/dist/src/role/index.d.ts.map +1 -0
- package/dist/src/role/schema.d.ts +8 -8
- package/dist/src/role/validation.d.ts +37 -0
- package/dist/src/role/validation.d.ts.map +1 -0
- package/dist/src/tag/index.d.ts +286 -0
- package/dist/src/tag/index.d.ts.map +1 -0
- package/dist/src/tag/schema.d.ts +4 -3
- package/dist/src/tag/schema.d.ts.map +1 -1
- package/dist/src/tag/validation.d.ts +29 -0
- package/dist/src/tag/validation.d.ts.map +1 -0
- package/dist/src/tag-group/schema.d.ts +3 -3
- package/dist/src/telephony-cdr/schema.d.ts +5 -5
- package/dist/src/telephony-extension/index.d.ts +65 -0
- package/dist/src/telephony-extension/index.d.ts.map +1 -0
- package/dist/src/telephony-extension/schema.d.ts +18 -0
- package/dist/src/telephony-extension/schema.d.ts.map +1 -0
- package/dist/src/telephony-live-queue-call/schema.d.ts +3 -3
- package/dist/src/telephony-queue-call-count/schema.d.ts +3 -3
- package/dist/src/ticket/schema.d.ts +5 -5
- package/dist/src/types.d.ts +5 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/upload/schema.d.ts +3 -3
- package/dist/src/user/index.d.ts +1064 -0
- package/dist/src/user/index.d.ts.map +1 -0
- package/dist/src/user/schema.d.ts +15 -15
- package/dist/src/user/schema.d.ts.map +1 -1
- package/dist/src/user/validation.d.ts +49 -0
- package/dist/src/user/validation.d.ts.map +1 -0
- package/dist/src/widget/index.d.ts +817 -0
- package/dist/src/widget/index.d.ts.map +1 -0
- package/dist/src/widget/schema.d.ts +20 -9
- package/dist/src/widget/schema.d.ts.map +1 -1
- package/dist/src/widget/validation.d.ts +63 -0
- package/dist/src/widget/validation.d.ts.map +1 -0
- package/dist/utils.d.ts +2 -2
- package/package.json +2 -1
package/dist/index.mjs
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
// src/contract.ts
|
2
|
-
import { initContract as
|
2
|
+
import { initContract as initContract19 } from "@ts-rest/core";
|
3
3
|
|
4
|
-
// src/
|
4
|
+
// src/attribute/index.ts
|
5
5
|
import { initContract } from "@ts-rest/core";
|
6
|
-
import { z as
|
6
|
+
import { z as z4 } from "zod";
|
7
7
|
|
8
8
|
// src/base-contract.ts
|
9
9
|
import z from "zod";
|
@@ -11,12 +11,12 @@ var DefaultHeaderSchema = z.object({
|
|
11
11
|
// biome-ignore lint/style/useNamingConvention: <explanation>
|
12
12
|
"x-tenant": z.string({ required_error: "Tenant id is required" }),
|
13
13
|
authorization: z.string()
|
14
|
-
});
|
14
|
+
}).optional().nullable();
|
15
15
|
var DefaultEntitySchema = z.object({
|
16
16
|
id: z.string().uuid(),
|
17
17
|
createdAt: z.date(),
|
18
18
|
updatedAt: z.date(),
|
19
|
-
deletedAt: z.date()
|
19
|
+
deletedAt: z.date().nullable()
|
20
20
|
});
|
21
21
|
var DefaultQueryParamsSchema = z.object({
|
22
22
|
page: z.number().positive().default(1),
|
@@ -32,46 +32,202 @@ var DefaultErrorResponseSchema = z.object({
|
|
32
32
|
var DefaultNotFoundSchema = DefaultErrorResponseSchema;
|
33
33
|
var DefaultUnprocessibleSchema = DefaultErrorResponseSchema;
|
34
34
|
var DefaultUnauthorizedSchema = DefaultErrorResponseSchema;
|
35
|
-
var
|
35
|
+
var DefaultResponses = {
|
36
36
|
401: DefaultUnauthorizedSchema,
|
37
37
|
404: DefaultNotFoundSchema,
|
38
38
|
422: DefaultUnprocessibleSchema
|
39
39
|
};
|
40
40
|
|
41
|
+
// src/attribute/schema.ts
|
42
|
+
import z2 from "zod";
|
43
|
+
var AttributeTypeSchema = z2.union([
|
44
|
+
z2.literal("text"),
|
45
|
+
z2.literal("textarea"),
|
46
|
+
z2.literal("date"),
|
47
|
+
z2.literal("select"),
|
48
|
+
z2.literal("link"),
|
49
|
+
z2.literal("attachment")
|
50
|
+
]);
|
51
|
+
var AttributeOptionSchema = z2.object({
|
52
|
+
label: z2.string(),
|
53
|
+
value: z2.string(),
|
54
|
+
isDefault: z2.boolean(),
|
55
|
+
position: z2.number()
|
56
|
+
});
|
57
|
+
var AttributeGroupSchema = DefaultEntitySchema.extend({
|
58
|
+
systemName: z2.string(),
|
59
|
+
displayName: z2.string()
|
60
|
+
});
|
61
|
+
var AttributeSchema = DefaultEntitySchema.extend({
|
62
|
+
systemName: z2.string(),
|
63
|
+
type: AttributeTypeSchema,
|
64
|
+
position: z2.number(),
|
65
|
+
isDefault: z2.boolean(),
|
66
|
+
isArchived: z2.boolean(),
|
67
|
+
isRequired: z2.boolean(),
|
68
|
+
isUnique: z2.boolean(),
|
69
|
+
options: z2.array(AttributeOptionSchema),
|
70
|
+
group: AttributeGroupSchema
|
71
|
+
});
|
72
|
+
|
73
|
+
// src/attribute/validation.ts
|
74
|
+
import { z as z3 } from "zod";
|
75
|
+
var CreateAttributeSchema = z3.object({
|
76
|
+
name: z3.string(),
|
77
|
+
type: AttributeTypeSchema,
|
78
|
+
isRequired: z3.boolean(),
|
79
|
+
isVisible: z3.boolean(),
|
80
|
+
group: z3.string(),
|
81
|
+
options: z3.array(AttributeOptionSchema)
|
82
|
+
});
|
83
|
+
var GetAttributesSchema = z3.object({
|
84
|
+
group: z3.string(),
|
85
|
+
visibleOnly: z3.boolean().default(false)
|
86
|
+
});
|
87
|
+
var UpdateAttributeSchema = CreateAttributeSchema;
|
88
|
+
var UpdatePositionSchema = z3.object({
|
89
|
+
attributes: z3.array(
|
90
|
+
z3.object({
|
91
|
+
// To update the attribute position, the backend need the IDs and the positions.
|
92
|
+
attributeId: z3.string(),
|
93
|
+
position: z3.number()
|
94
|
+
})
|
95
|
+
)
|
96
|
+
});
|
97
|
+
|
98
|
+
// src/attribute/index.ts
|
99
|
+
var attributeContract = initContract().router(
|
100
|
+
{
|
101
|
+
createAttribute: {
|
102
|
+
method: "POST",
|
103
|
+
path: "",
|
104
|
+
body: CreateAttributeSchema,
|
105
|
+
responses: {
|
106
|
+
201: DefaultSuccessResponseSchema.extend({
|
107
|
+
attribute: AttributeSchema
|
108
|
+
}),
|
109
|
+
500: DefaultErrorResponseSchema
|
110
|
+
},
|
111
|
+
headers: DefaultHeaderSchema
|
112
|
+
},
|
113
|
+
getAttributes: {
|
114
|
+
method: "GET",
|
115
|
+
path: "",
|
116
|
+
query: GetAttributesSchema,
|
117
|
+
responses: {
|
118
|
+
200: DefaultSuccessResponseSchema.extend({
|
119
|
+
attributes: z4.array(AttributeSchema)
|
120
|
+
}),
|
121
|
+
500: DefaultErrorResponseSchema
|
122
|
+
},
|
123
|
+
headers: DefaultHeaderSchema
|
124
|
+
},
|
125
|
+
updateAttribute: {
|
126
|
+
method: "PATCH",
|
127
|
+
path: "/:id",
|
128
|
+
pathParams: z4.object({ id: z4.string() }),
|
129
|
+
body: UpdateAttributeSchema,
|
130
|
+
responses: {
|
131
|
+
200: DefaultSuccessResponseSchema.extend({
|
132
|
+
attribute: AttributeSchema
|
133
|
+
}),
|
134
|
+
500: DefaultErrorResponseSchema
|
135
|
+
},
|
136
|
+
headers: DefaultHeaderSchema
|
137
|
+
},
|
138
|
+
changeVisibility: {
|
139
|
+
method: "PATCH",
|
140
|
+
path: "/visibility/:id",
|
141
|
+
pathParams: z4.object({ id: z4.string() }),
|
142
|
+
body: z4.object({ isVisible: z4.boolean() }),
|
143
|
+
responses: {
|
144
|
+
200: DefaultSuccessResponseSchema.extend({
|
145
|
+
message: z4.string().optional()
|
146
|
+
}),
|
147
|
+
500: DefaultErrorResponseSchema
|
148
|
+
},
|
149
|
+
headers: DefaultHeaderSchema
|
150
|
+
},
|
151
|
+
changeRequired: {
|
152
|
+
method: "PATCH",
|
153
|
+
path: "/required/:id",
|
154
|
+
pathParams: z4.object({ id: z4.string() }),
|
155
|
+
body: z4.object({ isRequired: z4.boolean() }),
|
156
|
+
responses: {
|
157
|
+
200: DefaultSuccessResponseSchema.extend({
|
158
|
+
message: z4.string().optional()
|
159
|
+
}),
|
160
|
+
500: DefaultErrorResponseSchema
|
161
|
+
},
|
162
|
+
headers: DefaultHeaderSchema
|
163
|
+
},
|
164
|
+
updatePosition: {
|
165
|
+
method: "PATCH",
|
166
|
+
path: "/position",
|
167
|
+
body: UpdatePositionSchema,
|
168
|
+
responses: {
|
169
|
+
200: DefaultSuccessResponseSchema.extend({
|
170
|
+
message: z4.string().optional()
|
171
|
+
}),
|
172
|
+
500: DefaultErrorResponseSchema
|
173
|
+
},
|
174
|
+
headers: DefaultHeaderSchema
|
175
|
+
},
|
176
|
+
deleteAttribute: {
|
177
|
+
method: "DELETE",
|
178
|
+
path: "/:id",
|
179
|
+
pathParams: z4.object({ id: z4.string() }),
|
180
|
+
body: z4.any().optional(),
|
181
|
+
responses: {
|
182
|
+
200: DefaultSuccessResponseSchema.extend({ message: z4.string() }),
|
183
|
+
500: DefaultErrorResponseSchema
|
184
|
+
},
|
185
|
+
headers: DefaultHeaderSchema
|
186
|
+
}
|
187
|
+
},
|
188
|
+
{
|
189
|
+
pathPrefix: "attributes"
|
190
|
+
}
|
191
|
+
);
|
192
|
+
|
193
|
+
// src/auth/index.ts
|
194
|
+
import { initContract as initContract2 } from "@ts-rest/core";
|
195
|
+
import { z as z8 } from "zod";
|
196
|
+
|
41
197
|
// src/user/schema.ts
|
42
|
-
import
|
198
|
+
import z7 from "zod";
|
43
199
|
|
44
200
|
// src/role/schema.ts
|
45
|
-
import
|
201
|
+
import z6 from "zod";
|
46
202
|
|
47
203
|
// src/permission/schema.ts
|
48
|
-
import
|
204
|
+
import z5 from "zod";
|
49
205
|
var PermissionSchema = DefaultEntitySchema.extend({
|
50
|
-
systemName:
|
51
|
-
displayName:
|
52
|
-
description:
|
206
|
+
systemName: z5.string(),
|
207
|
+
displayName: z5.string(),
|
208
|
+
description: z5.string().nullable()
|
53
209
|
});
|
54
210
|
|
55
211
|
// src/role/schema.ts
|
56
212
|
var RoleSchema = DefaultEntitySchema.extend({
|
57
|
-
systemName:
|
58
|
-
displayName:
|
59
|
-
description:
|
60
|
-
permissions:
|
213
|
+
systemName: z6.string(),
|
214
|
+
displayName: z6.string(),
|
215
|
+
description: z6.string().nullable(),
|
216
|
+
permissions: z6.array(PermissionSchema)
|
61
217
|
});
|
62
218
|
|
63
219
|
// src/user/schema.ts
|
64
220
|
var UserSchema = DefaultEntitySchema.extend({
|
65
|
-
name:
|
66
|
-
email:
|
67
|
-
address:
|
68
|
-
phone:
|
69
|
-
notificationCount:
|
70
|
-
roles:
|
221
|
+
name: z7.string(),
|
222
|
+
email: z7.string().email(),
|
223
|
+
address: z7.string().nullable(),
|
224
|
+
phone: z7.string().nullable(),
|
225
|
+
notificationCount: z7.number().nullable(),
|
226
|
+
roles: z7.array(RoleSchema)
|
71
227
|
});
|
72
228
|
|
73
229
|
// src/auth/index.ts
|
74
|
-
var authContract =
|
230
|
+
var authContract = initContract2().router(
|
75
231
|
{
|
76
232
|
refreshToken: {
|
77
233
|
method: "POST",
|
@@ -79,8 +235,8 @@ var authContract = initContract().router(
|
|
79
235
|
headers: DefaultHeaderSchema,
|
80
236
|
responses: {
|
81
237
|
200: DefaultSuccessResponseSchema.extend({
|
82
|
-
accessToken:
|
83
|
-
refreshToken:
|
238
|
+
accessToken: z8.string(),
|
239
|
+
refreshToken: z8.string()
|
84
240
|
}),
|
85
241
|
401: DefaultUnauthorizedSchema,
|
86
242
|
404: DefaultNotFoundSchema,
|
@@ -94,8 +250,8 @@ var authContract = initContract().router(
|
|
94
250
|
path: "/exchange-token",
|
95
251
|
responses: {
|
96
252
|
200: DefaultSuccessResponseSchema.extend({
|
97
|
-
accessToken:
|
98
|
-
refreshToken:
|
253
|
+
accessToken: z8.string(),
|
254
|
+
refreshToken: z8.string()
|
99
255
|
}),
|
100
256
|
401: DefaultUnauthorizedSchema,
|
101
257
|
404: DefaultNotFoundSchema,
|
@@ -111,7 +267,7 @@ var authContract = initContract().router(
|
|
111
267
|
headers: DefaultHeaderSchema,
|
112
268
|
responses: {
|
113
269
|
200: DefaultSuccessResponseSchema.extend({
|
114
|
-
message:
|
270
|
+
message: z8.string()
|
115
271
|
}),
|
116
272
|
401: DefaultUnauthorizedSchema,
|
117
273
|
404: DefaultNotFoundSchema,
|
@@ -133,258 +289,664 @@ var authContract = initContract().router(
|
|
133
289
|
422: DefaultUnprocessibleSchema
|
134
290
|
},
|
135
291
|
summary: "Get current user"
|
292
|
+
},
|
293
|
+
getAuthUserRole: {
|
294
|
+
method: "GET",
|
295
|
+
path: "/user/role",
|
296
|
+
headers: DefaultHeaderSchema,
|
297
|
+
responses: {
|
298
|
+
200: z8.array(z8.string()),
|
299
|
+
400: z8.object({
|
300
|
+
message: z8.string()
|
301
|
+
}),
|
302
|
+
401: DefaultUnauthorizedSchema
|
303
|
+
},
|
304
|
+
summary: "Get role by auth user which mean current login user roles"
|
136
305
|
}
|
137
306
|
},
|
138
307
|
{ pathPrefix: "auth" }
|
139
308
|
);
|
140
309
|
|
141
|
-
// src/
|
142
|
-
import { initContract as
|
310
|
+
// src/category/index.ts
|
311
|
+
import { initContract as initContract3 } from "@ts-rest/core";
|
312
|
+
import z12 from "zod";
|
143
313
|
|
144
|
-
//
|
145
|
-
import {
|
146
|
-
|
147
|
-
|
314
|
+
// utils.ts
|
315
|
+
import { z as z9 } from "zod";
|
316
|
+
var PaginationSchema = z9.object({
|
317
|
+
page: z9.number().default(1),
|
318
|
+
pageSize: z9.number().default(10),
|
319
|
+
total: z9.number(),
|
320
|
+
lastPage: z9.number().optional().nullable()
|
321
|
+
});
|
322
|
+
var WithPagination = (dataSchema) => {
|
323
|
+
return PaginationSchema.extend({
|
324
|
+
data: z9.array(dataSchema)
|
325
|
+
});
|
326
|
+
};
|
327
|
+
|
328
|
+
// src/category/schema.ts
|
329
|
+
import { z as z10 } from "zod";
|
330
|
+
var CategoryLevelSchema = z10.union([
|
331
|
+
z10.literal(1),
|
332
|
+
z10.literal(2),
|
333
|
+
z10.literal(3)
|
334
|
+
]);
|
335
|
+
var CategorySchema = DefaultEntitySchema.extend({
|
336
|
+
value: z10.string(),
|
337
|
+
level: CategoryLevelSchema,
|
338
|
+
parentId: z10.string().nullable(),
|
339
|
+
childCategoryList: z10.array(
|
340
|
+
z10.object({
|
341
|
+
id: z10.string(),
|
342
|
+
value: z10.string(),
|
343
|
+
level: CategoryLevelSchema,
|
344
|
+
parentId: z10.string().nullable(),
|
345
|
+
childCategoryList: z10.array(
|
346
|
+
z10.object({
|
347
|
+
id: z10.string(),
|
348
|
+
value: z10.string(),
|
349
|
+
level: CategoryLevelSchema,
|
350
|
+
parentId: z10.string().nullable(),
|
351
|
+
childCategoryList: z10.array(z10.any())
|
352
|
+
// This is an empty array.
|
353
|
+
})
|
354
|
+
)
|
355
|
+
})
|
356
|
+
)
|
357
|
+
});
|
358
|
+
var CategoryLevelObjectSchema = z10.object({
|
359
|
+
id: z10.string(),
|
360
|
+
name: z10.string(),
|
361
|
+
level: CategoryLevelSchema
|
362
|
+
});
|
363
|
+
|
364
|
+
// src/category/validation.ts
|
365
|
+
import { z as z11 } from "zod";
|
366
|
+
var CreateCategorySchema = z11.object({
|
367
|
+
value: z11.string(),
|
368
|
+
level: CategoryLevelSchema,
|
369
|
+
parentId: z11.string().nullable()
|
370
|
+
});
|
371
|
+
var UpdateCategorySchema = z11.object({ value: z11.string() });
|
372
|
+
var CreateCategoryLevelSchema = z11.object({
|
373
|
+
name: z11.string(),
|
374
|
+
level: CategoryLevelSchema
|
375
|
+
});
|
376
|
+
var UpdateCategoryLevelSchema = z11.object({
|
377
|
+
id: z11.string(),
|
378
|
+
name: z11.string(),
|
379
|
+
level: CategoryLevelSchema
|
380
|
+
});
|
381
|
+
|
382
|
+
// src/category/index.ts
|
383
|
+
var categoryContract = initContract3().router(
|
148
384
|
{
|
149
|
-
|
385
|
+
createCategory: {
|
150
386
|
method: "POST",
|
151
|
-
path: "
|
387
|
+
path: "",
|
388
|
+
headers: DefaultHeaderSchema,
|
389
|
+
body: CreateCategorySchema,
|
152
390
|
responses: {
|
153
|
-
|
154
|
-
|
391
|
+
201: DefaultSuccessResponseSchema.extend({
|
392
|
+
category: CategorySchema
|
155
393
|
}),
|
156
|
-
|
157
|
-
}
|
158
|
-
body: null,
|
159
|
-
summary: "Create a new room for new incoming mail"
|
394
|
+
500: DefaultErrorResponseSchema
|
395
|
+
}
|
160
396
|
},
|
161
|
-
|
397
|
+
getCategories: {
|
162
398
|
method: "GET",
|
163
|
-
path: "
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
message: z6.string()
|
170
|
-
}),
|
171
|
-
...defaultResponses
|
172
|
-
},
|
173
|
-
summary: "Get a mail room by id"
|
174
|
-
},
|
175
|
-
update: {
|
176
|
-
method: "PATCH",
|
177
|
-
path: "/:id",
|
178
|
-
pathParams: z6.object({
|
179
|
-
id: z6.string()
|
180
|
-
}),
|
399
|
+
path: "",
|
400
|
+
query: z12.object({
|
401
|
+
page: z12.coerce.number().optional(),
|
402
|
+
pageSize: z12.coerce.number().optional()
|
403
|
+
}).optional(),
|
404
|
+
headers: DefaultHeaderSchema,
|
181
405
|
responses: {
|
182
|
-
200:
|
183
|
-
|
184
|
-
|
185
|
-
...defaultResponses
|
186
|
-
},
|
187
|
-
body: null,
|
188
|
-
summary: "Update a mail room by id"
|
406
|
+
200: WithPagination(CategorySchema),
|
407
|
+
500: DefaultErrorResponseSchema
|
408
|
+
}
|
189
409
|
},
|
190
|
-
|
410
|
+
updateCategory: {
|
191
411
|
method: "PATCH",
|
192
412
|
path: "/:id",
|
193
|
-
pathParams:
|
194
|
-
|
195
|
-
|
196
|
-
responses: {
|
197
|
-
200: DefaultSuccessResponseSchema.extend({
|
198
|
-
message: z6.string()
|
199
|
-
}),
|
200
|
-
...defaultResponses
|
201
|
-
},
|
202
|
-
body: null,
|
203
|
-
summary: "Delete a mail room by id"
|
204
|
-
}
|
205
|
-
},
|
206
|
-
{
|
207
|
-
pathPrefix: "/room"
|
208
|
-
}
|
209
|
-
);
|
210
|
-
|
211
|
-
// src/mail/message-contract.ts
|
212
|
-
import { initContract as initContract3 } from "@ts-rest/core";
|
213
|
-
import z7 from "zod";
|
214
|
-
var messageContract = initContract3().router(
|
215
|
-
{
|
216
|
-
create: {
|
217
|
-
method: "POST",
|
218
|
-
path: "/",
|
413
|
+
pathParams: z12.object({ id: z12.string() }),
|
414
|
+
headers: DefaultHeaderSchema,
|
415
|
+
body: UpdateCategorySchema,
|
219
416
|
responses: {
|
220
|
-
200: DefaultSuccessResponseSchema.extend({
|
221
|
-
|
222
|
-
|
223
|
-
...defaultResponses
|
224
|
-
},
|
225
|
-
body: null,
|
226
|
-
summary: "Add a new message into a room"
|
417
|
+
200: DefaultSuccessResponseSchema.extend({ category: CategorySchema }),
|
418
|
+
500: DefaultErrorResponseSchema
|
419
|
+
}
|
227
420
|
},
|
228
|
-
|
229
|
-
method: "
|
421
|
+
deleteCategory: {
|
422
|
+
method: "DELETE",
|
230
423
|
path: "/:id",
|
231
|
-
pathParams:
|
232
|
-
|
233
|
-
|
424
|
+
pathParams: z12.object({ id: z12.string() }),
|
425
|
+
headers: DefaultHeaderSchema,
|
426
|
+
body: z12.any().optional(),
|
234
427
|
responses: {
|
235
428
|
200: DefaultSuccessResponseSchema.extend({
|
236
|
-
message:
|
429
|
+
message: z12.string().optional()
|
237
430
|
}),
|
238
|
-
|
239
|
-
}
|
240
|
-
summary: "Get a message by id"
|
431
|
+
500: DefaultErrorResponseSchema
|
432
|
+
}
|
241
433
|
},
|
242
|
-
|
243
|
-
method: "
|
244
|
-
path: "
|
245
|
-
|
246
|
-
|
247
|
-
}),
|
434
|
+
createCategoryLevel: {
|
435
|
+
method: "POST",
|
436
|
+
path: "/level",
|
437
|
+
headers: DefaultHeaderSchema,
|
438
|
+
body: CreateCategoryLevelSchema,
|
248
439
|
responses: {
|
249
440
|
200: DefaultSuccessResponseSchema.extend({
|
250
|
-
|
441
|
+
categoryLevel: CategoryLevelObjectSchema
|
251
442
|
}),
|
252
|
-
|
253
|
-
}
|
254
|
-
body: null,
|
255
|
-
summary: "Update a message by id"
|
443
|
+
500: DefaultErrorResponseSchema
|
444
|
+
}
|
256
445
|
},
|
257
|
-
|
446
|
+
updateCategoryLevel: {
|
258
447
|
method: "PATCH",
|
259
|
-
path: "/:id",
|
260
|
-
pathParams:
|
261
|
-
|
262
|
-
|
448
|
+
path: "/level/:id",
|
449
|
+
pathParams: z12.object({ id: z12.string() }),
|
450
|
+
headers: DefaultHeaderSchema,
|
451
|
+
body: UpdateCategoryLevelSchema,
|
263
452
|
responses: {
|
264
453
|
200: DefaultSuccessResponseSchema.extend({
|
265
|
-
|
454
|
+
categoryLevel: CategoryLevelObjectSchema
|
266
455
|
}),
|
267
|
-
|
268
|
-
}
|
269
|
-
body: null,
|
270
|
-
summary: "Delete a message by id"
|
456
|
+
500: DefaultErrorResponseSchema
|
457
|
+
}
|
271
458
|
}
|
272
459
|
},
|
273
460
|
{
|
274
|
-
pathPrefix: "
|
461
|
+
pathPrefix: "categories"
|
275
462
|
}
|
276
463
|
);
|
277
464
|
|
278
|
-
// src/
|
465
|
+
// src/chat/index.ts
|
279
466
|
import { initContract as initContract4 } from "@ts-rest/core";
|
280
|
-
import
|
467
|
+
import z19 from "zod";
|
281
468
|
|
282
|
-
// src/
|
283
|
-
import
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
imapPort: z8.string(),
|
297
|
-
imapTlsPort: z8.string(),
|
298
|
-
useTlsForImap: z8.boolean()
|
299
|
-
});
|
300
|
-
var mailAccountSchema = z8.object({
|
301
|
-
id: z8.string(),
|
302
|
-
created_at: z8.string(),
|
303
|
-
updated_at: z8.string(),
|
304
|
-
deletedAt: z8.date().nullable(),
|
305
|
-
tenant_id: z8.string(),
|
306
|
-
name: z8.string(),
|
307
|
-
address: z8.string(),
|
308
|
-
accountId: z8.string(),
|
309
|
-
mailServerId: z8.string(),
|
310
|
-
mailServer: mailServerSchema,
|
311
|
-
state: z8.union([
|
312
|
-
z8.literal("init"),
|
313
|
-
z8.literal("syncing"),
|
314
|
-
z8.literal("connecting"),
|
315
|
-
z8.literal("connected"),
|
316
|
-
z8.literal("disconnected"),
|
317
|
-
z8.literal("authenticationError"),
|
318
|
-
z8.literal("connectError"),
|
319
|
-
z8.literal("unset")
|
320
|
-
])
|
469
|
+
// src/chat/schema.ts
|
470
|
+
import z16 from "zod";
|
471
|
+
|
472
|
+
// src/contact/schema.ts
|
473
|
+
import z13 from "zod";
|
474
|
+
var ContactSchema = DefaultEntitySchema.extend({
|
475
|
+
name: z13.string(),
|
476
|
+
address: z13.string().nullable(),
|
477
|
+
channel: z13.string().nullable(),
|
478
|
+
notes: z13.string().nullable(),
|
479
|
+
contactNumber: z13.string().nullable(),
|
480
|
+
companyId: z13.string().nullable(),
|
481
|
+
contactProfile: z13.string().nullable(),
|
482
|
+
socialProfileUrl: z13.string().nullable()
|
321
483
|
});
|
322
|
-
var accountContractsSchemas = {
|
323
|
-
create: {
|
324
|
-
input: z8.object({
|
325
|
-
address: z8.string().email("Email address must be valid email."),
|
326
|
-
name: z8.string().min(1, "Account name cannot be empty."),
|
327
|
-
password: z8.string().min(1, "Password cannot be empty."),
|
328
|
-
mailServerId: z8.string().uuid("Invalid mail_server_id")
|
329
|
-
})
|
330
|
-
},
|
331
|
-
getById: {
|
332
|
-
input: z8.object({
|
333
|
-
id: z8.string().uuid()
|
334
|
-
}),
|
335
|
-
output: mailAccountSchema
|
336
|
-
},
|
337
|
-
getAll: {
|
338
|
-
output: z8.array(mailAccountSchema)
|
339
|
-
},
|
340
|
-
update: {
|
341
|
-
input: mailAccountSchema,
|
342
|
-
output: mailAccountSchema
|
343
|
-
},
|
344
|
-
disconnect: {
|
345
|
-
input: z8.object({
|
346
|
-
id: z8.string().uuid()
|
347
|
-
}),
|
348
|
-
output: mailAccountSchema
|
349
|
-
},
|
350
|
-
reconnect: {
|
351
|
-
input: z8.object({
|
352
|
-
id: z8.string()
|
353
|
-
}),
|
354
|
-
output: mailAccountSchema
|
355
|
-
},
|
356
|
-
delete: {
|
357
|
-
input: z8.object({
|
358
|
-
id: z8.string()
|
359
|
-
}),
|
360
|
-
output: mailAccountSchema
|
361
|
-
}
|
362
|
-
};
|
363
484
|
|
364
|
-
// src/
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
485
|
+
// src/tag/schema.ts
|
486
|
+
import z14 from "zod";
|
487
|
+
var TagSchema = DefaultEntitySchema.extend({
|
488
|
+
name: z14.string()
|
489
|
+
});
|
490
|
+
var TagGroupSchema = z14.union([
|
491
|
+
z14.literal("general"),
|
492
|
+
z14.literal("contact")
|
493
|
+
]);
|
494
|
+
|
495
|
+
// src/upload/schema.ts
|
496
|
+
import z15 from "zod";
|
497
|
+
var UploadSchema = DefaultEntitySchema.extend({
|
498
|
+
bucketName: z15.string(),
|
499
|
+
fileName: z15.string(),
|
500
|
+
fileSize: z15.number(),
|
501
|
+
fileKey: z15.string()
|
502
|
+
});
|
503
|
+
|
504
|
+
// src/chat/schema.ts
|
505
|
+
var ChannelTypeEnumSchema = z16.union([
|
506
|
+
z16.literal("messenger"),
|
507
|
+
z16.literal("line"),
|
508
|
+
z16.literal("viber"),
|
509
|
+
z16.literal("lazada"),
|
510
|
+
z16.literal("shopee"),
|
511
|
+
z16.literal("whatsapp"),
|
512
|
+
z16.literal("telegram"),
|
513
|
+
z16.literal("kakao")
|
514
|
+
]);
|
515
|
+
var DirectionEnumSchema = z16.union([
|
516
|
+
z16.literal("incoming"),
|
517
|
+
z16.literal("outgoing")
|
518
|
+
]);
|
519
|
+
var ChannelStatusEnumSchema = z16.union([
|
520
|
+
z16.literal(1),
|
521
|
+
// on
|
522
|
+
z16.literal(0)
|
523
|
+
// off
|
524
|
+
]);
|
525
|
+
var MessageTypeEnumSchema = z16.union([
|
526
|
+
z16.literal("text"),
|
527
|
+
z16.literal("image"),
|
528
|
+
z16.literal("video"),
|
529
|
+
z16.literal("audio"),
|
530
|
+
z16.literal("file"),
|
531
|
+
z16.literal("fallback"),
|
532
|
+
z16.literal("location"),
|
533
|
+
z16.literal("attachment"),
|
534
|
+
z16.literal("assign"),
|
535
|
+
z16.literal("solve"),
|
536
|
+
z16.literal("reopen"),
|
537
|
+
z16.literal("open"),
|
538
|
+
z16.literal("sticker"),
|
539
|
+
z16.literal("closed"),
|
540
|
+
z16.literal("handed_over"),
|
541
|
+
z16.literal("updated"),
|
542
|
+
z16.literal("started")
|
543
|
+
]);
|
544
|
+
var MessageLocaleEnumSchema = z16.union([
|
545
|
+
z16.literal("mm"),
|
546
|
+
z16.literal("en"),
|
547
|
+
z16.literal("th")
|
548
|
+
]);
|
549
|
+
var ChannelMetadataSchema = z16.object({
|
550
|
+
id: z16.string(),
|
551
|
+
name: z16.string(),
|
552
|
+
accessToken: z16.string(),
|
553
|
+
additionalCredentials: z16.any()
|
554
|
+
});
|
555
|
+
var ChannelSchema = DefaultEntitySchema.extend({
|
556
|
+
name: z16.string(),
|
557
|
+
type: ChannelTypeEnumSchema,
|
558
|
+
metadata: ChannelMetadataSchema,
|
559
|
+
brandName: z16.string(),
|
560
|
+
platformId: z16.string().uuid(),
|
561
|
+
status: ChannelStatusEnumSchema,
|
562
|
+
isReloginRequired: z16.boolean(),
|
563
|
+
connectedUserName: z16.string(),
|
564
|
+
connectedUserId: z16.string(),
|
565
|
+
actor: UserSchema
|
566
|
+
}).partial().optional();
|
567
|
+
var PlatformContactMetadataSchema = z16.object({
|
568
|
+
id: z16.string(),
|
569
|
+
name: z16.string(),
|
570
|
+
additionalCredentials: z16.any()
|
571
|
+
});
|
572
|
+
var PlatformContactSchema = DefaultEntitySchema.extend({
|
573
|
+
channelId: z16.string().uuid(),
|
574
|
+
socialPlatformId: z16.string().uuid(),
|
575
|
+
platform: ChannelTypeEnumSchema,
|
576
|
+
metadata: PlatformContactMetadataSchema,
|
577
|
+
contact: ContactSchema
|
578
|
+
});
|
579
|
+
var RoomSchema = DefaultEntitySchema.extend({
|
580
|
+
lastMessage: z16.string(),
|
581
|
+
handleTime: z16.number(),
|
582
|
+
isSolved: z16.boolean(),
|
583
|
+
notes: z16.string(),
|
584
|
+
closeAt: z16.date(),
|
585
|
+
unreadCount: z16.number(),
|
586
|
+
firstResponseTime: z16.date(),
|
587
|
+
isLatest: z16.boolean(),
|
588
|
+
direction: DirectionEnumSchema,
|
589
|
+
platformContact: PlatformContactSchema,
|
590
|
+
actor: UserSchema,
|
591
|
+
assignee: UserSchema,
|
592
|
+
channel: ChannelSchema,
|
593
|
+
tags: z16.array(TagSchema)
|
594
|
+
});
|
595
|
+
var MessageSchema = DefaultEntitySchema.extend({
|
596
|
+
message: z16.string(),
|
597
|
+
direction: DirectionEnumSchema,
|
598
|
+
type: MessageTypeEnumSchema,
|
599
|
+
user: UserSchema,
|
600
|
+
readAt: z16.date(),
|
601
|
+
metadata: z16.any(),
|
602
|
+
platformId: z16.string(),
|
603
|
+
replyPlatformMessageId: z16.string(),
|
604
|
+
platformMessageId: z16.string(),
|
605
|
+
upload: UploadSchema,
|
606
|
+
template: z16.any(),
|
607
|
+
locale: MessageLocaleEnumSchema,
|
608
|
+
isSent: z16.boolean()
|
609
|
+
});
|
610
|
+
var UnreadCountsByAssigneeSchema = z16.object({
|
611
|
+
assigneeId: z16.string(),
|
612
|
+
totalUnreadCount: z16.number()
|
613
|
+
});
|
614
|
+
|
615
|
+
// src/chat/validation.ts
|
616
|
+
import z18 from "zod";
|
617
|
+
|
618
|
+
// src/custom-field/schema.ts
|
619
|
+
import z17 from "zod";
|
620
|
+
var CustomFieldSchema = DefaultEntitySchema.extend({
|
621
|
+
textValue: z17.string().nullable(),
|
622
|
+
booleanValue: z17.boolean().nullable(),
|
623
|
+
numberValue: z17.number().nullable(),
|
624
|
+
dateValue: z17.date().nullable(),
|
625
|
+
entityId: z17.string().uuid(),
|
626
|
+
attributeId: z17.string().uuid()
|
627
|
+
});
|
628
|
+
|
629
|
+
// src/chat/validation.ts
|
630
|
+
var ConnectChannelSchema = z18.object({
|
631
|
+
name: z18.string(),
|
632
|
+
type: ChannelTypeEnumSchema,
|
633
|
+
metadata: ChannelMetadataSchema,
|
634
|
+
brandName: z18.string(),
|
635
|
+
connectedUserName: z18.string(),
|
636
|
+
connectedUserId: z18.string(),
|
637
|
+
actor: UserSchema
|
638
|
+
}).partial().optional();
|
639
|
+
var GetRoomsSchema = DefaultQueryParamsSchema.extend({
|
640
|
+
contactTagIds: z18.string().array().nullable().default([]),
|
641
|
+
contactIds: z18.string().array().nullable().default([]),
|
642
|
+
agentIds: z18.string().array().nullable().default([]),
|
643
|
+
roomStatusTagIds: z18.string().array().nullable().default([]),
|
644
|
+
keyword: z18.string().nullable(),
|
645
|
+
company: z18.string().array().nullable().default([]),
|
646
|
+
name: z18.string().nullable(),
|
647
|
+
address: z18.string().nullable(),
|
648
|
+
contactGroups: z18.string().array().nullable().default([]),
|
649
|
+
selectedDate: z18.string().nullable(),
|
650
|
+
customFields: CustomFieldSchema,
|
651
|
+
tags: z18.string().array().nullable().default([]),
|
652
|
+
phone: z18.string().nullable(),
|
653
|
+
email: z18.string().nullable(),
|
654
|
+
notes: z18.string().nullable(),
|
655
|
+
tab: z18.string().nullable()
|
656
|
+
}).partial().optional();
|
657
|
+
|
658
|
+
// src/chat/index.ts
|
659
|
+
var chatContract = initContract4().router({
|
660
|
+
connectChannel: {
|
661
|
+
method: "POST",
|
662
|
+
path: "connect",
|
663
|
+
headers: DefaultHeaderSchema,
|
664
|
+
responses: {
|
665
|
+
200: DefaultSuccessResponseSchema.extend({
|
666
|
+
channel: ChannelSchema
|
667
|
+
})
|
668
|
+
},
|
669
|
+
body: ConnectChannelSchema,
|
670
|
+
summary: "Connect message channel"
|
671
|
+
},
|
672
|
+
getRooms: {
|
673
|
+
method: "GET",
|
674
|
+
path: "/rooms",
|
675
|
+
responses: {
|
676
|
+
200: DefaultSuccessResponseSchema.extend({
|
677
|
+
total: z19.number(),
|
678
|
+
page: z19.number(),
|
679
|
+
pageSize: z19.number(),
|
680
|
+
data: z19.array(RoomSchema),
|
681
|
+
unreadCountsByAssignee: z19.array(UnreadCountsByAssigneeSchema)
|
682
|
+
}),
|
683
|
+
401: DefaultUnauthorizedSchema
|
684
|
+
},
|
685
|
+
headers: DefaultHeaderSchema,
|
686
|
+
query: GetRoomsSchema,
|
687
|
+
summary: "Get rooms"
|
688
|
+
}
|
689
|
+
});
|
690
|
+
|
691
|
+
// src/cx-log/index.ts
|
692
|
+
import { initContract as initContract5 } from "@ts-rest/core";
|
693
|
+
import z22 from "zod";
|
694
|
+
|
695
|
+
// src/cx-log/schema.ts
|
696
|
+
import z20 from "zod";
|
697
|
+
var CxLogSchema = DefaultEntitySchema.extend({
|
698
|
+
caseId: z20.number(),
|
699
|
+
entityId: z20.string().uuid(),
|
700
|
+
entityName: z20.string(),
|
701
|
+
contactId: z20.string().uuid().nullable(),
|
702
|
+
channel: z20.string().nullable(),
|
703
|
+
queueId: z20.string().uuid().nullable(),
|
704
|
+
agentId: z20.string().uuid().nullable(),
|
705
|
+
direction: z20.string().nullable(),
|
706
|
+
startedDate: z20.date().nullable(),
|
707
|
+
handledTime: z20.number().nullable(),
|
708
|
+
firstResponseTime: z20.number().nullable(),
|
709
|
+
disposition: z20.string().nullable()
|
710
|
+
});
|
711
|
+
|
712
|
+
// src/cx-log/validation.ts
|
713
|
+
import z21 from "zod";
|
714
|
+
var sentimentScoreSchema = z21.union([
|
715
|
+
z21.literal("positive"),
|
716
|
+
z21.literal("negative")
|
717
|
+
]);
|
718
|
+
var CustomFieldQueryParamsSchema = z21.object({
|
719
|
+
attributeId: z21.string(),
|
720
|
+
value: z21.union([z21.string(), z21.array(z21.string())]),
|
721
|
+
type: z21.string().optional()
|
722
|
+
});
|
723
|
+
var GetAllCxLogQueryParamsSchema = DefaultQueryParamsSchema.extend({
|
724
|
+
contactId: z21.string().uuid(),
|
725
|
+
caseId: z21.string(),
|
726
|
+
channelIds: z21.array(z21.string().uuid()),
|
727
|
+
queueId: z21.array(z21.string()),
|
728
|
+
agentIds: z21.array(z21.string()),
|
729
|
+
direction: z21.array(z21.union([z21.literal("inbound"), z21.literal("outbound")])),
|
730
|
+
disposition: z21.array(z21.string()),
|
731
|
+
sentimentScore: z21.array(sentimentScoreSchema),
|
732
|
+
csatScore: z21.string(),
|
733
|
+
sla: z21.array(z21.union([z21.literal("meet"), z21.literal("unmeet")])),
|
734
|
+
tags: z21.array(z21.string()),
|
735
|
+
// General tags
|
736
|
+
// Default contact attributes
|
737
|
+
name: z21.string(),
|
738
|
+
contactLabels: z21.array(z21.string()),
|
739
|
+
email: z21.string(),
|
740
|
+
channel: z21.array(z21.string()),
|
741
|
+
phone: z21.string(),
|
742
|
+
notes: z21.string(),
|
743
|
+
address: z21.string(),
|
744
|
+
company: z21.array(z21.string()),
|
745
|
+
// Custom fields
|
746
|
+
customFields: z21.array(CustomFieldQueryParamsSchema),
|
747
|
+
// Date filter
|
748
|
+
selectedDate: z21.string()
|
749
|
+
}).partial().optional();
|
750
|
+
|
751
|
+
// src/cx-log/index.ts
|
752
|
+
var cxLogContract = initContract5().router({
|
753
|
+
findAll: {
|
754
|
+
method: "GET",
|
755
|
+
path: "/cx-logs",
|
756
|
+
headers: DefaultHeaderSchema,
|
757
|
+
responses: {
|
758
|
+
200: DefaultSuccessResponseSchema.extend({
|
759
|
+
total: z22.number(),
|
760
|
+
page: z22.number(),
|
761
|
+
pageSize: z22.number(),
|
762
|
+
cxLogs: z22.array(CxLogSchema)
|
763
|
+
}),
|
764
|
+
401: DefaultUnauthorizedSchema
|
765
|
+
},
|
766
|
+
query: GetAllCxLogQueryParamsSchema,
|
767
|
+
summary: "Get all cx-logs"
|
768
|
+
}
|
769
|
+
});
|
770
|
+
|
771
|
+
// src/line/index.ts
|
772
|
+
import { initContract as initContract6 } from "@ts-rest/core";
|
773
|
+
import z25 from "zod";
|
774
|
+
|
775
|
+
// src/line/schema.ts
|
776
|
+
import z23 from "zod";
|
777
|
+
var ConnectLineSchema = z23.object({
|
778
|
+
id: z23.string(),
|
779
|
+
accessToken: z23.string()
|
780
|
+
});
|
781
|
+
|
782
|
+
// src/line/validation.ts
|
783
|
+
import z24 from "zod";
|
784
|
+
var SendLineStickerSchema = z24.object({
|
785
|
+
userId: z24.string().uuid(),
|
786
|
+
packageId: z24.string(),
|
787
|
+
stickerId: z24.string(),
|
788
|
+
accessToken: z24.string()
|
789
|
+
});
|
790
|
+
|
791
|
+
// src/line/index.ts
|
792
|
+
var lineContract = initContract6().router({
|
793
|
+
sendSticker: {
|
794
|
+
method: "POST",
|
795
|
+
path: "sticker",
|
796
|
+
responses: {
|
797
|
+
200: DefaultSuccessResponseSchema.extend({
|
798
|
+
data: z25.any()
|
799
|
+
}),
|
800
|
+
500: DefaultErrorResponseSchema
|
801
|
+
},
|
802
|
+
body: SendLineStickerSchema,
|
803
|
+
summary: "Send sticker to LINE"
|
804
|
+
},
|
805
|
+
connect: {
|
806
|
+
method: "POST",
|
807
|
+
path: "connect",
|
808
|
+
responses: {
|
809
|
+
200: DefaultSuccessResponseSchema.extend({
|
810
|
+
data: z25.any()
|
811
|
+
}),
|
812
|
+
500: DefaultErrorResponseSchema
|
813
|
+
},
|
814
|
+
body: ConnectLineSchema,
|
815
|
+
summary: "Connect to LINE channel"
|
816
|
+
}
|
817
|
+
});
|
818
|
+
|
819
|
+
// src/mail/email-engine-webhooks-events.contract.ts
|
820
|
+
import { initContract as initContract7 } from "@ts-rest/core";
|
821
|
+
import z26 from "zod";
|
822
|
+
var emailEngineWebhooksEventsContract = initContract7().router({
|
823
|
+
handleWebhooksEvents: {
|
824
|
+
method: "POST",
|
825
|
+
path: "/email_engine/webhooks",
|
826
|
+
// we don't need to respone anything but added responses just for solving type error
|
827
|
+
responses: {
|
828
|
+
200: DefaultSuccessResponseSchema.extend({
|
829
|
+
message: z26.string()
|
830
|
+
})
|
831
|
+
},
|
832
|
+
body: null,
|
833
|
+
summary: "Handle email engine webhooks events such as authenticationSuccess, messageNew"
|
834
|
+
}
|
835
|
+
});
|
836
|
+
|
837
|
+
// src/mail/mail-contract.ts
|
838
|
+
import { initContract as initContract12 } from "@ts-rest/core";
|
839
|
+
|
840
|
+
// src/mail/account-contract.ts
|
841
|
+
import { initContract as initContract8 } from "@ts-rest/core";
|
842
|
+
import z28 from "zod";
|
843
|
+
|
844
|
+
// src/mail/schemas/account.schema.ts
|
845
|
+
import z27 from "zod";
|
846
|
+
var MailServerSchema = z27.object({
|
847
|
+
id: z27.string(),
|
848
|
+
created_at: z27.string(),
|
849
|
+
updated_att: z27.string(),
|
850
|
+
deleted_at: z27.string().nullable(),
|
851
|
+
tenant_id: z27.string(),
|
852
|
+
name: z27.string(),
|
853
|
+
smtpHost: z27.string(),
|
854
|
+
smtpPort: z27.string(),
|
855
|
+
smtpTlsPort: z27.string(),
|
856
|
+
useTlsForSmtp: z27.boolean(),
|
857
|
+
imapHost: z27.string(),
|
858
|
+
imapPort: z27.string(),
|
859
|
+
imapTlsPort: z27.string(),
|
860
|
+
useTlsForImap: z27.boolean()
|
861
|
+
});
|
862
|
+
var MailAccountSchema = z27.object({
|
863
|
+
id: z27.string(),
|
864
|
+
created_at: z27.string(),
|
865
|
+
updated_at: z27.string(),
|
866
|
+
deleted_at: z27.date().nullable(),
|
867
|
+
tenant_id: z27.string(),
|
868
|
+
name: z27.string(),
|
869
|
+
address: z27.string(),
|
870
|
+
accountId: z27.string(),
|
871
|
+
mailServerId: z27.string(),
|
872
|
+
mailServer: MailServerSchema,
|
873
|
+
state: z27.union([
|
874
|
+
z27.literal("init"),
|
875
|
+
z27.literal("syncing"),
|
876
|
+
z27.literal("connecting"),
|
877
|
+
z27.literal("connected"),
|
878
|
+
z27.literal("disconnected"),
|
879
|
+
z27.literal("authenticationError"),
|
880
|
+
z27.literal("connectError"),
|
881
|
+
z27.literal("unset")
|
882
|
+
])
|
883
|
+
});
|
884
|
+
var AccountContractsSchemas = {
|
885
|
+
create: {
|
886
|
+
input: z27.object({
|
887
|
+
address: z27.string().email("Email address must be valid email."),
|
888
|
+
name: z27.string().min(1, "Account name cannot be empty."),
|
889
|
+
password: z27.string().min(1, "Password cannot be empty."),
|
890
|
+
mailServerId: z27.string().uuid("Invalid mail_server_id")
|
891
|
+
})
|
892
|
+
},
|
893
|
+
getById: {
|
894
|
+
input: z27.object({
|
895
|
+
id: z27.string().uuid()
|
896
|
+
}),
|
897
|
+
output: MailAccountSchema
|
898
|
+
},
|
899
|
+
getAll: {
|
900
|
+
output: z27.array(MailAccountSchema)
|
901
|
+
},
|
902
|
+
update: {
|
903
|
+
input: MailAccountSchema,
|
904
|
+
output: MailAccountSchema
|
905
|
+
},
|
906
|
+
disconnect: {
|
907
|
+
input: z27.object({
|
908
|
+
id: z27.string().uuid()
|
909
|
+
}),
|
910
|
+
output: MailAccountSchema
|
911
|
+
},
|
912
|
+
reconnect: {
|
913
|
+
input: z27.object({
|
914
|
+
id: z27.string()
|
915
|
+
}),
|
916
|
+
output: MailAccountSchema
|
917
|
+
},
|
918
|
+
delete: {
|
919
|
+
input: z27.object({
|
920
|
+
id: z27.string()
|
921
|
+
}),
|
922
|
+
output: MailAccountSchema
|
923
|
+
}
|
924
|
+
};
|
925
|
+
|
926
|
+
// src/mail/account-contract.ts
|
927
|
+
var accountContract = initContract8().router(
|
928
|
+
{
|
929
|
+
//#region ........register account
|
930
|
+
create: {
|
931
|
+
method: "POST",
|
932
|
+
path: "",
|
933
|
+
responses: {
|
934
|
+
201: DefaultSuccessResponseSchema.extend({
|
935
|
+
// data: AccountContractsSchemas.create.output,
|
936
|
+
message: z28.string()
|
937
|
+
}),
|
938
|
+
400: z28.object({
|
939
|
+
message: z28.string()
|
940
|
+
}),
|
941
|
+
409: z28.object({
|
942
|
+
message: z28.string()
|
943
|
+
}),
|
944
|
+
500: z28.object({
|
945
|
+
message: z28.string()
|
946
|
+
}),
|
947
|
+
...DefaultResponses
|
386
948
|
},
|
387
|
-
body:
|
949
|
+
body: AccountContractsSchemas.create.input,
|
388
950
|
summary: "Register a new mail account"
|
389
951
|
},
|
390
952
|
//#endregion register account
|
@@ -392,12 +954,12 @@ var accountContract = initContract4().router(
|
|
392
954
|
getById: {
|
393
955
|
method: "GET",
|
394
956
|
path: "/:id",
|
395
|
-
pathParams:
|
957
|
+
pathParams: AccountContractsSchemas.getById.input,
|
396
958
|
responses: {
|
397
959
|
200: DefaultSuccessResponseSchema.extend({
|
398
|
-
data:
|
960
|
+
data: AccountContractsSchemas.getById.output
|
399
961
|
}),
|
400
|
-
...
|
962
|
+
...DefaultResponses
|
401
963
|
},
|
402
964
|
summary: "Get a account by id"
|
403
965
|
},
|
@@ -409,10 +971,10 @@ var accountContract = initContract4().router(
|
|
409
971
|
path: "",
|
410
972
|
responses: {
|
411
973
|
200: DefaultSuccessResponseSchema.extend({
|
412
|
-
data:
|
413
|
-
// data:
|
974
|
+
data: z28.any()
|
975
|
+
// data: AccountContractsSchemas.getAll.output,
|
414
976
|
}),
|
415
|
-
...
|
977
|
+
...DefaultResponses
|
416
978
|
},
|
417
979
|
summary: "Get al accounts"
|
418
980
|
},
|
@@ -421,16 +983,16 @@ var accountContract = initContract4().router(
|
|
421
983
|
update: {
|
422
984
|
method: "PATCH",
|
423
985
|
path: "/:id",
|
424
|
-
pathParams:
|
425
|
-
id:
|
986
|
+
pathParams: z28.object({
|
987
|
+
id: z28.string().uuid()
|
426
988
|
}),
|
427
989
|
responses: {
|
428
990
|
201: DefaultSuccessResponseSchema.extend({
|
429
|
-
data:
|
991
|
+
data: AccountContractsSchemas.update.output
|
430
992
|
}),
|
431
|
-
...
|
993
|
+
...DefaultResponses
|
432
994
|
},
|
433
|
-
body:
|
995
|
+
body: AccountContractsSchemas.update.input.partial(),
|
434
996
|
summary: "Update a account by id"
|
435
997
|
},
|
436
998
|
//#endregion update account
|
@@ -438,12 +1000,12 @@ var accountContract = initContract4().router(
|
|
438
1000
|
disconnect: {
|
439
1001
|
method: "PATCH",
|
440
1002
|
path: "/:id/disconnect",
|
441
|
-
pathParams:
|
1003
|
+
pathParams: AccountContractsSchemas.disconnect.input,
|
442
1004
|
responses: {
|
443
1005
|
201: DefaultSuccessResponseSchema.extend({
|
444
|
-
data:
|
1006
|
+
data: AccountContractsSchemas.disconnect.output
|
445
1007
|
}),
|
446
|
-
...
|
1008
|
+
...DefaultResponses
|
447
1009
|
},
|
448
1010
|
body: null,
|
449
1011
|
summary: "Disconnect an account"
|
@@ -453,12 +1015,12 @@ var accountContract = initContract4().router(
|
|
453
1015
|
reconnect: {
|
454
1016
|
method: "PATCH",
|
455
1017
|
path: "/:id/reconnect",
|
456
|
-
pathParams:
|
1018
|
+
pathParams: AccountContractsSchemas.reconnect.input,
|
457
1019
|
responses: {
|
458
1020
|
201: DefaultSuccessResponseSchema.extend({
|
459
|
-
data:
|
1021
|
+
data: AccountContractsSchemas.reconnect.output
|
460
1022
|
}),
|
461
|
-
...
|
1023
|
+
...DefaultResponses
|
462
1024
|
},
|
463
1025
|
body: null,
|
464
1026
|
summary: "Reconnect a disconncted account"
|
@@ -468,12 +1030,12 @@ var accountContract = initContract4().router(
|
|
468
1030
|
delete: {
|
469
1031
|
method: "DELETE",
|
470
1032
|
path: "/:id",
|
471
|
-
pathParams:
|
1033
|
+
pathParams: AccountContractsSchemas.delete.input,
|
472
1034
|
responses: {
|
473
1035
|
200: DefaultSuccessResponseSchema.extend({
|
474
|
-
message:
|
1036
|
+
message: z28.string()
|
475
1037
|
}),
|
476
|
-
...
|
1038
|
+
...DefaultResponses
|
477
1039
|
},
|
478
1040
|
body: null,
|
479
1041
|
summary: "Delete an account by id"
|
@@ -487,18 +1049,18 @@ var accountContract = initContract4().router(
|
|
487
1049
|
);
|
488
1050
|
|
489
1051
|
// src/mail/mail-server.ts
|
490
|
-
import { initContract as
|
491
|
-
import
|
492
|
-
var serverContract =
|
1052
|
+
import { initContract as initContract9 } from "@ts-rest/core";
|
1053
|
+
import z29 from "zod";
|
1054
|
+
var serverContract = initContract9().router(
|
493
1055
|
{
|
494
1056
|
create: {
|
495
1057
|
method: "POST",
|
496
1058
|
path: "/",
|
497
1059
|
responses: {
|
498
1060
|
200: DefaultSuccessResponseSchema.extend({
|
499
|
-
message:
|
1061
|
+
message: z29.string()
|
500
1062
|
}),
|
501
|
-
...
|
1063
|
+
...DefaultResponses
|
502
1064
|
},
|
503
1065
|
body: null,
|
504
1066
|
summary: "Register a new mail server"
|
@@ -506,28 +1068,28 @@ var serverContract = initContract5().router(
|
|
506
1068
|
get: {
|
507
1069
|
method: "GET",
|
508
1070
|
path: "/:id",
|
509
|
-
pathParams:
|
510
|
-
id:
|
1071
|
+
pathParams: z29.object({
|
1072
|
+
id: z29.string()
|
511
1073
|
}),
|
512
1074
|
responses: {
|
513
1075
|
200: DefaultSuccessResponseSchema.extend({
|
514
|
-
message:
|
1076
|
+
message: z29.string()
|
515
1077
|
}),
|
516
|
-
...
|
1078
|
+
...DefaultResponses
|
517
1079
|
},
|
518
1080
|
summary: "Get a mail server by id"
|
519
1081
|
},
|
520
1082
|
update: {
|
521
1083
|
method: "PATCH",
|
522
1084
|
path: "/:id",
|
523
|
-
pathParams:
|
524
|
-
id:
|
1085
|
+
pathParams: z29.object({
|
1086
|
+
id: z29.string()
|
525
1087
|
}),
|
526
1088
|
responses: {
|
527
1089
|
200: DefaultSuccessResponseSchema.extend({
|
528
|
-
message:
|
1090
|
+
message: z29.string()
|
529
1091
|
}),
|
530
|
-
...
|
1092
|
+
...DefaultResponses
|
531
1093
|
},
|
532
1094
|
body: null,
|
533
1095
|
summary: "Update a mail server by id"
|
@@ -535,14 +1097,14 @@ var serverContract = initContract5().router(
|
|
535
1097
|
delete: {
|
536
1098
|
method: "PATCH",
|
537
1099
|
path: "/:id",
|
538
|
-
pathParams:
|
539
|
-
id:
|
1100
|
+
pathParams: z29.object({
|
1101
|
+
id: z29.string()
|
540
1102
|
}),
|
541
1103
|
responses: {
|
542
1104
|
200: DefaultSuccessResponseSchema.extend({
|
543
|
-
message:
|
1105
|
+
message: z29.string()
|
544
1106
|
}),
|
545
|
-
...
|
1107
|
+
...DefaultResponses
|
546
1108
|
},
|
547
1109
|
body: null,
|
548
1110
|
summary: "Delete a mail server by id"
|
@@ -553,265 +1115,698 @@ var serverContract = initContract5().router(
|
|
553
1115
|
}
|
554
1116
|
);
|
555
1117
|
|
556
|
-
// src/mail/
|
557
|
-
|
558
|
-
|
559
|
-
|
560
|
-
account: accountContract,
|
561
|
-
server: serverContract
|
562
|
-
});
|
563
|
-
|
564
|
-
// src/cx-log/index.ts
|
565
|
-
import { initContract as initContract7 } from "@ts-rest/core";
|
566
|
-
import z13 from "zod";
|
567
|
-
|
568
|
-
// src/cx-log/schema.ts
|
569
|
-
import z11 from "zod";
|
570
|
-
var CxLogSchema = DefaultEntitySchema.extend({
|
571
|
-
caseId: z11.number(),
|
572
|
-
entityId: z11.string().uuid(),
|
573
|
-
entityName: z11.string(),
|
574
|
-
contactId: z11.string().uuid().nullable(),
|
575
|
-
channel: z11.string().nullable(),
|
576
|
-
queueId: z11.string().uuid().nullable(),
|
577
|
-
agentId: z11.string().uuid().nullable(),
|
578
|
-
direction: z11.string().nullable(),
|
579
|
-
startedDate: z11.date().nullable(),
|
580
|
-
handledTime: z11.number().nullable(),
|
581
|
-
firstResponseTime: z11.number().nullable(),
|
582
|
-
disposition: z11.string().nullable()
|
583
|
-
});
|
584
|
-
|
585
|
-
// src/cx-log/validation.ts
|
586
|
-
import z12 from "zod";
|
587
|
-
var CustomFieldQueryParamsSchema = z12.object({
|
588
|
-
attributeId: z12.string(),
|
589
|
-
value: z12.string().or(z12.array(z12.string())),
|
590
|
-
type: z12.string()
|
591
|
-
});
|
592
|
-
var GetAllCxLogQueryParamsSchema = DefaultQueryParamsSchema.extend({
|
593
|
-
contactId: z12.string().uuid().optional(),
|
594
|
-
channelIds: z12.string().uuid().optional(),
|
595
|
-
queueIds: z12.string().uuid().optional(),
|
596
|
-
direction: z12.enum(["inbound", "outbound"]).array().optional(),
|
597
|
-
sentimentScore: z12.enum(["positive", "negative"]).array().optional(),
|
598
|
-
csatScore: z12.string().optional(),
|
599
|
-
sla: z12.enum(["meet", "unmeet"]).array().optional(),
|
600
|
-
caseId: z12.string().optional(),
|
601
|
-
name: z12.string().optional(),
|
602
|
-
email: z12.string().optional(),
|
603
|
-
phone: z12.string().optional(),
|
604
|
-
address: z12.string().optional(),
|
605
|
-
company: z12.string().optional(),
|
606
|
-
agentIds: z12.string().array().optional(),
|
607
|
-
channel: z12.string().array().optional(),
|
608
|
-
disposition: z12.string().array().optional(),
|
609
|
-
notes: z12.string().optional(),
|
610
|
-
contactLabels: z12.string().array().optional(),
|
611
|
-
tags: z12.string().array().optional(),
|
612
|
-
selectedDate: z12.string().optional(),
|
613
|
-
customFields: z12.array(CustomFieldQueryParamsSchema).optional()
|
614
|
-
});
|
615
|
-
|
616
|
-
// src/cx-log/index.ts
|
617
|
-
var cxLogContract = initContract7().router({
|
618
|
-
findAll: {
|
619
|
-
method: "GET",
|
620
|
-
path: "/cx-logs",
|
621
|
-
headers: DefaultHeaderSchema,
|
622
|
-
responses: {
|
623
|
-
200: DefaultSuccessResponseSchema.extend({
|
624
|
-
total: z13.number(),
|
625
|
-
page: z13.number(),
|
626
|
-
pageSize: z13.number(),
|
627
|
-
cxLogs: z13.array(CxLogSchema)
|
628
|
-
}),
|
629
|
-
401: DefaultUnauthorizedSchema
|
630
|
-
},
|
631
|
-
query: GetAllCxLogQueryParamsSchema,
|
632
|
-
summary: "Get all cx-logs"
|
633
|
-
}
|
634
|
-
});
|
635
|
-
|
636
|
-
// src/mail/email-engine-webhooks-events.contract.ts
|
637
|
-
import { initContract as initContract8 } from "@ts-rest/core";
|
638
|
-
import z14 from "zod";
|
639
|
-
var emailEngineWebhooksEventsContract = initContract8().router({
|
640
|
-
handleWebhooksEvents: {
|
641
|
-
method: "POST",
|
642
|
-
path: "/email_engine/webhooks",
|
643
|
-
// we don't need to respone anything but added responses just for solving type error
|
644
|
-
responses: {
|
645
|
-
200: DefaultSuccessResponseSchema.extend({
|
646
|
-
message: z14.string()
|
647
|
-
})
|
648
|
-
},
|
649
|
-
body: null,
|
650
|
-
summary: "Handle email engine webhooks events such as authenticationSuccess, messageNew"
|
651
|
-
}
|
652
|
-
});
|
653
|
-
|
654
|
-
// src/category/index.ts
|
655
|
-
import { initContract as initContract9 } from "@ts-rest/core";
|
656
|
-
import z18 from "zod";
|
657
|
-
|
658
|
-
// utils.ts
|
659
|
-
import { z as z15 } from "zod";
|
660
|
-
var paginationSchema = z15.object({
|
661
|
-
page: z15.number().default(1),
|
662
|
-
pageSize: z15.number().default(10),
|
663
|
-
total: z15.number(),
|
664
|
-
lastPage: z15.number().optional().nullable()
|
665
|
-
});
|
666
|
-
var withPagination = (dataSchema) => {
|
667
|
-
return paginationSchema.extend({
|
668
|
-
data: z15.array(dataSchema)
|
669
|
-
});
|
670
|
-
};
|
671
|
-
|
672
|
-
// src/category/schema.ts
|
673
|
-
import { z as z16 } from "zod";
|
674
|
-
var categoryLevelSchema = z16.union([
|
675
|
-
z16.literal(1),
|
676
|
-
z16.literal(2),
|
677
|
-
z16.literal(3)
|
678
|
-
]);
|
679
|
-
var categorySchema = z16.object({
|
680
|
-
id: z16.string(),
|
681
|
-
value: z16.string(),
|
682
|
-
level: categoryLevelSchema,
|
683
|
-
parentId: z16.string().nullable(),
|
684
|
-
childCategoryList: z16.array(
|
685
|
-
z16.object({
|
686
|
-
id: z16.string(),
|
687
|
-
value: z16.string(),
|
688
|
-
level: categoryLevelSchema,
|
689
|
-
parentId: z16.string().nullable(),
|
690
|
-
childCategoryList: z16.array(
|
691
|
-
z16.object({
|
692
|
-
id: z16.string(),
|
693
|
-
value: z16.string(),
|
694
|
-
level: categoryLevelSchema,
|
695
|
-
parentId: z16.string().nullable(),
|
696
|
-
childCategoryList: z16.array(z16.any())
|
697
|
-
// This is an empty array.
|
698
|
-
})
|
699
|
-
)
|
700
|
-
})
|
701
|
-
)
|
702
|
-
});
|
703
|
-
|
704
|
-
// src/category/validation.ts
|
705
|
-
import { z as z17 } from "zod";
|
706
|
-
var createCategorySchema = z17.object({
|
707
|
-
value: z17.string(),
|
708
|
-
level: categoryLevelSchema,
|
709
|
-
parentId: z17.string().nullable()
|
710
|
-
});
|
711
|
-
var updateCategorySchema = z17.object({ value: z17.string() });
|
712
|
-
var createCategoryLevelSchema = z17.object({
|
713
|
-
name: z17.string(),
|
714
|
-
level: categoryLevelSchema
|
715
|
-
});
|
716
|
-
var updateCategoryLevelSchema = z17.object({
|
717
|
-
id: z17.string(),
|
718
|
-
name: z17.string(),
|
719
|
-
level: categoryLevelSchema
|
720
|
-
});
|
721
|
-
|
722
|
-
// src/category/index.ts
|
723
|
-
var categoryContract = initContract9().router(
|
1118
|
+
// src/mail/message-contract.ts
|
1119
|
+
import { initContract as initContract10 } from "@ts-rest/core";
|
1120
|
+
import z30 from "zod";
|
1121
|
+
var messageContract = initContract10().router(
|
724
1122
|
{
|
725
|
-
|
1123
|
+
create: {
|
726
1124
|
method: "POST",
|
727
|
-
path: "",
|
728
|
-
headers: DefaultHeaderSchema,
|
729
|
-
body: createCategorySchema,
|
1125
|
+
path: "/",
|
730
1126
|
responses: {
|
731
|
-
|
732
|
-
|
1127
|
+
200: DefaultSuccessResponseSchema.extend({
|
1128
|
+
message: z30.string()
|
733
1129
|
}),
|
734
|
-
|
735
|
-
}
|
1130
|
+
...DefaultResponses
|
1131
|
+
},
|
1132
|
+
body: null,
|
1133
|
+
summary: "Add a new message into a room"
|
736
1134
|
},
|
737
|
-
|
1135
|
+
get: {
|
738
1136
|
method: "GET",
|
739
|
-
path: "",
|
740
|
-
|
741
|
-
|
742
|
-
|
743
|
-
}).optional(),
|
744
|
-
headers: DefaultHeaderSchema,
|
1137
|
+
path: "/:id",
|
1138
|
+
pathParams: z30.object({
|
1139
|
+
id: z30.string()
|
1140
|
+
}),
|
745
1141
|
responses: {
|
746
|
-
200:
|
747
|
-
|
748
|
-
|
1142
|
+
200: DefaultSuccessResponseSchema.extend({
|
1143
|
+
message: z30.string()
|
1144
|
+
}),
|
1145
|
+
...DefaultResponses
|
1146
|
+
},
|
1147
|
+
summary: "Get a message by id"
|
749
1148
|
},
|
750
|
-
|
1149
|
+
update: {
|
751
1150
|
method: "PATCH",
|
752
1151
|
path: "/:id",
|
753
|
-
pathParams:
|
754
|
-
|
755
|
-
category: categorySchema
|
1152
|
+
pathParams: z30.object({
|
1153
|
+
id: z30.string()
|
756
1154
|
}),
|
757
|
-
body: updateCategorySchema,
|
758
1155
|
responses: {
|
759
|
-
200: DefaultSuccessResponseSchema
|
760
|
-
|
761
|
-
|
1156
|
+
200: DefaultSuccessResponseSchema.extend({
|
1157
|
+
message: z30.string()
|
1158
|
+
}),
|
1159
|
+
...DefaultResponses
|
1160
|
+
},
|
1161
|
+
body: null,
|
1162
|
+
summary: "Update a message by id"
|
762
1163
|
},
|
763
|
-
|
1164
|
+
delete: {
|
1165
|
+
method: "PATCH",
|
1166
|
+
path: "/:id",
|
1167
|
+
pathParams: z30.object({
|
1168
|
+
id: z30.string()
|
1169
|
+
}),
|
1170
|
+
responses: {
|
1171
|
+
200: DefaultSuccessResponseSchema.extend({
|
1172
|
+
message: z30.string()
|
1173
|
+
}),
|
1174
|
+
...DefaultResponses
|
1175
|
+
},
|
1176
|
+
body: null,
|
1177
|
+
summary: "Delete a message by id"
|
1178
|
+
}
|
1179
|
+
},
|
1180
|
+
{
|
1181
|
+
pathPrefix: "/message"
|
1182
|
+
}
|
1183
|
+
);
|
1184
|
+
|
1185
|
+
// src/mail/room-contract.ts
|
1186
|
+
import { initContract as initContract11 } from "@ts-rest/core";
|
1187
|
+
import z31 from "zod";
|
1188
|
+
var roomContract = initContract11().router(
|
1189
|
+
{
|
1190
|
+
create: {
|
1191
|
+
method: "POST",
|
1192
|
+
path: "/",
|
1193
|
+
responses: {
|
1194
|
+
200: DefaultSuccessResponseSchema.extend({
|
1195
|
+
message: z31.string()
|
1196
|
+
}),
|
1197
|
+
...DefaultResponses
|
1198
|
+
},
|
1199
|
+
body: null,
|
1200
|
+
summary: "Create a new room for new incoming mail"
|
1201
|
+
},
|
1202
|
+
get: {
|
1203
|
+
method: "GET",
|
1204
|
+
path: "/:id",
|
1205
|
+
pathParams: z31.object({
|
1206
|
+
id: z31.string()
|
1207
|
+
}),
|
1208
|
+
responses: {
|
1209
|
+
200: DefaultSuccessResponseSchema.extend({
|
1210
|
+
message: z31.string()
|
1211
|
+
}),
|
1212
|
+
...DefaultResponses
|
1213
|
+
},
|
1214
|
+
summary: "Get a mail room by id"
|
1215
|
+
},
|
1216
|
+
update: {
|
1217
|
+
method: "PATCH",
|
1218
|
+
path: "/:id",
|
1219
|
+
pathParams: z31.object({
|
1220
|
+
id: z31.string()
|
1221
|
+
}),
|
1222
|
+
responses: {
|
1223
|
+
200: DefaultSuccessResponseSchema.extend({
|
1224
|
+
message: z31.string()
|
1225
|
+
}),
|
1226
|
+
...DefaultResponses
|
1227
|
+
},
|
1228
|
+
body: null,
|
1229
|
+
summary: "Update a mail room by id"
|
1230
|
+
},
|
1231
|
+
delete: {
|
1232
|
+
method: "PATCH",
|
1233
|
+
path: "/:id",
|
1234
|
+
pathParams: z31.object({
|
1235
|
+
id: z31.string()
|
1236
|
+
}),
|
1237
|
+
responses: {
|
1238
|
+
200: DefaultSuccessResponseSchema.extend({
|
1239
|
+
message: z31.string()
|
1240
|
+
}),
|
1241
|
+
...DefaultResponses
|
1242
|
+
},
|
1243
|
+
body: null,
|
1244
|
+
summary: "Delete a mail room by id"
|
1245
|
+
}
|
1246
|
+
},
|
1247
|
+
{
|
1248
|
+
pathPrefix: "/room"
|
1249
|
+
}
|
1250
|
+
);
|
1251
|
+
|
1252
|
+
// src/mail/mail-contract.ts
|
1253
|
+
var mailContract = initContract12().router({
|
1254
|
+
room: roomContract,
|
1255
|
+
message: messageContract,
|
1256
|
+
account: accountContract,
|
1257
|
+
server: serverContract
|
1258
|
+
});
|
1259
|
+
|
1260
|
+
// src/tag/index.ts
|
1261
|
+
import { initContract as initContract13 } from "@ts-rest/core";
|
1262
|
+
import z33 from "zod";
|
1263
|
+
|
1264
|
+
// src/tag/validation.ts
|
1265
|
+
import { z as z32 } from "zod";
|
1266
|
+
var CreateTagSchema = z32.object({
|
1267
|
+
name: z32.string(),
|
1268
|
+
group: TagGroupSchema
|
1269
|
+
});
|
1270
|
+
var GetTagsSchema = z32.object({
|
1271
|
+
group: TagGroupSchema.default("general"),
|
1272
|
+
keyword: z32.string()
|
1273
|
+
}).partial().optional();
|
1274
|
+
var UpdateTagSchema = z32.object({ name: z32.string() });
|
1275
|
+
|
1276
|
+
// src/tag/index.ts
|
1277
|
+
var tagContract = initContract13().router(
|
1278
|
+
{
|
1279
|
+
createTag: {
|
1280
|
+
method: "POST",
|
1281
|
+
path: "",
|
1282
|
+
body: CreateTagSchema,
|
1283
|
+
responses: {
|
1284
|
+
201: DefaultSuccessResponseSchema.extend({
|
1285
|
+
tag: TagSchema
|
1286
|
+
}),
|
1287
|
+
500: DefaultErrorResponseSchema
|
1288
|
+
},
|
1289
|
+
headers: DefaultHeaderSchema
|
1290
|
+
},
|
1291
|
+
getTags: {
|
1292
|
+
method: "GET",
|
1293
|
+
path: "",
|
1294
|
+
query: GetTagsSchema,
|
1295
|
+
responses: {
|
1296
|
+
200: DefaultSuccessResponseSchema.extend({
|
1297
|
+
tags: z33.array(TagSchema)
|
1298
|
+
}),
|
1299
|
+
500: DefaultErrorResponseSchema
|
1300
|
+
},
|
1301
|
+
headers: DefaultHeaderSchema
|
1302
|
+
},
|
1303
|
+
updateTag: {
|
1304
|
+
method: "PATCH",
|
1305
|
+
path: "/:id",
|
1306
|
+
pathParams: z33.object({ id: z33.string() }),
|
1307
|
+
body: UpdateTagSchema,
|
1308
|
+
responses: {
|
1309
|
+
200: DefaultSuccessResponseSchema.extend({
|
1310
|
+
tag: TagSchema
|
1311
|
+
}),
|
1312
|
+
500: DefaultErrorResponseSchema
|
1313
|
+
},
|
1314
|
+
headers: DefaultHeaderSchema
|
1315
|
+
},
|
1316
|
+
deleteTag: {
|
764
1317
|
method: "DELETE",
|
765
1318
|
path: "/:id",
|
766
|
-
pathParams:
|
1319
|
+
pathParams: z33.object({ id: z33.string() }),
|
1320
|
+
body: z33.any().optional(),
|
1321
|
+
// We don't need the body.
|
1322
|
+
responses: {
|
1323
|
+
200: DefaultSuccessResponseSchema.extend({ message: z33.string() }),
|
1324
|
+
500: DefaultErrorResponseSchema
|
1325
|
+
},
|
1326
|
+
headers: DefaultHeaderSchema
|
1327
|
+
}
|
1328
|
+
},
|
1329
|
+
{
|
1330
|
+
pathPrefix: "tags"
|
1331
|
+
}
|
1332
|
+
);
|
1333
|
+
|
1334
|
+
// src/extension/index.ts
|
1335
|
+
import { initContract as initContract14 } from "@ts-rest/core";
|
1336
|
+
import z36 from "zod";
|
1337
|
+
|
1338
|
+
// src/extension/schema.ts
|
1339
|
+
import z34 from "zod";
|
1340
|
+
var ExtensionSchema = DefaultEntitySchema.extend({
|
1341
|
+
userId: z34.string().nullable(),
|
1342
|
+
sipServerUrl: z34.string(),
|
1343
|
+
sipUserName: z34.string(),
|
1344
|
+
extensionId: z34.coerce.number().nullable(),
|
1345
|
+
extensionName: z34.string().nullable(),
|
1346
|
+
telephonySignature: z34.string().nullable()
|
1347
|
+
});
|
1348
|
+
|
1349
|
+
// src/extension/validation.ts
|
1350
|
+
import { z as z35 } from "zod";
|
1351
|
+
var CreateExtensionSchema = z35.object({
|
1352
|
+
userId: z35.string().nullable(),
|
1353
|
+
sipServerUrl: z35.string(),
|
1354
|
+
sipUserName: z35.string(),
|
1355
|
+
extensionId: z35.coerce.number().nullable(),
|
1356
|
+
extensionName: z35.string().nullable(),
|
1357
|
+
telephonySignature: z35.string().nullable()
|
1358
|
+
});
|
1359
|
+
var UpdateExtensionSchema = CreateExtensionSchema.extend({
|
1360
|
+
id: z35.string()
|
1361
|
+
});
|
1362
|
+
|
1363
|
+
// src/extension/index.ts
|
1364
|
+
var extensionContract = initContract14().router(
|
1365
|
+
{
|
1366
|
+
createExtension: {
|
1367
|
+
method: "POST",
|
1368
|
+
path: "",
|
767
1369
|
headers: DefaultHeaderSchema,
|
768
|
-
body:
|
1370
|
+
body: CreateExtensionSchema,
|
769
1371
|
responses: {
|
770
|
-
|
1372
|
+
201: DefaultSuccessResponseSchema.extend({
|
1373
|
+
extension: ExtensionSchema
|
1374
|
+
}),
|
1375
|
+
400: z36.object({
|
1376
|
+
message: z36.string()
|
1377
|
+
}),
|
1378
|
+
401: DefaultUnauthorizedSchema,
|
771
1379
|
500: DefaultErrorResponseSchema
|
772
|
-
}
|
1380
|
+
},
|
1381
|
+
summary: "Create a extension."
|
773
1382
|
},
|
774
|
-
|
775
|
-
method: "
|
776
|
-
path: "
|
1383
|
+
getExtensions: {
|
1384
|
+
method: "GET",
|
1385
|
+
path: "",
|
1386
|
+
query: z36.object({
|
1387
|
+
page: z36.coerce.number().default(1),
|
1388
|
+
pageSize: z36.coerce.number().default(10),
|
1389
|
+
keyword: z36.string().optional()
|
1390
|
+
}).optional(),
|
777
1391
|
headers: DefaultHeaderSchema,
|
778
|
-
body: createCategoryLevelSchema,
|
779
1392
|
responses: {
|
780
|
-
200:
|
781
|
-
|
1393
|
+
200: WithPagination(ExtensionSchema),
|
1394
|
+
400: z36.object({
|
1395
|
+
message: z36.string()
|
782
1396
|
}),
|
1397
|
+
401: DefaultUnauthorizedSchema,
|
783
1398
|
500: DefaultErrorResponseSchema
|
784
|
-
}
|
1399
|
+
},
|
1400
|
+
summary: "Get all extensions"
|
785
1401
|
},
|
786
|
-
|
1402
|
+
getExtensionByDialpad: {
|
1403
|
+
method: "GET",
|
1404
|
+
path: "/dialpad",
|
1405
|
+
query: z36.object({
|
1406
|
+
page: z36.coerce.number().default(1),
|
1407
|
+
pageSize: z36.coerce.number().default(10),
|
1408
|
+
keyword: z36.string().optional()
|
1409
|
+
}).optional(),
|
1410
|
+
headers: DefaultHeaderSchema,
|
1411
|
+
responses: {
|
1412
|
+
200: WithPagination(ExtensionSchema),
|
1413
|
+
500: DefaultErrorResponseSchema,
|
1414
|
+
400: z36.object({
|
1415
|
+
message: z36.string()
|
1416
|
+
}),
|
1417
|
+
401: DefaultUnauthorizedSchema
|
1418
|
+
},
|
1419
|
+
summary: "Get by dialpad"
|
1420
|
+
},
|
1421
|
+
updateExtension: {
|
787
1422
|
method: "PATCH",
|
788
|
-
path: "
|
789
|
-
pathParams:
|
1423
|
+
path: "/:id",
|
1424
|
+
pathParams: z36.object({ id: z36.string() }),
|
790
1425
|
headers: DefaultHeaderSchema,
|
791
|
-
body:
|
1426
|
+
body: UpdateExtensionSchema,
|
792
1427
|
responses: {
|
793
1428
|
200: DefaultSuccessResponseSchema.extend({
|
794
|
-
|
1429
|
+
extension: ExtensionSchema
|
795
1430
|
}),
|
796
1431
|
500: DefaultErrorResponseSchema
|
797
|
-
}
|
1432
|
+
},
|
1433
|
+
summary: "Update a extension."
|
1434
|
+
},
|
1435
|
+
deleteExtension: {
|
1436
|
+
method: "DELETE",
|
1437
|
+
path: "/:id",
|
1438
|
+
pathParams: z36.object({ id: z36.string() }),
|
1439
|
+
headers: DefaultHeaderSchema,
|
1440
|
+
body: null,
|
1441
|
+
responses: {
|
1442
|
+
200: DefaultSuccessResponseSchema.extend({ message: z36.string() }),
|
1443
|
+
500: DefaultErrorResponseSchema
|
1444
|
+
},
|
1445
|
+
summary: "Delete a extension."
|
798
1446
|
}
|
799
1447
|
},
|
1448
|
+
{ pathPrefix: "extension" }
|
1449
|
+
);
|
1450
|
+
|
1451
|
+
// src/permission/index.ts
|
1452
|
+
import { initContract as initContract15 } from "@ts-rest/core";
|
1453
|
+
import z37 from "zod";
|
1454
|
+
var permissionContract = initContract15().router(
|
800
1455
|
{
|
801
|
-
|
802
|
-
|
1456
|
+
getPermissions: {
|
1457
|
+
method: "GET",
|
1458
|
+
path: "",
|
1459
|
+
headers: DefaultHeaderSchema,
|
1460
|
+
responses: {
|
1461
|
+
200: z37.object({ permissions: PermissionSchema.array() }),
|
1462
|
+
400: z37.object({
|
1463
|
+
message: z37.string()
|
1464
|
+
}),
|
1465
|
+
401: DefaultUnauthorizedSchema,
|
1466
|
+
500: DefaultErrorResponseSchema
|
1467
|
+
},
|
1468
|
+
summary: "Get all permissions"
|
1469
|
+
}
|
1470
|
+
},
|
1471
|
+
{ pathPrefix: "permission" }
|
1472
|
+
);
|
1473
|
+
|
1474
|
+
// src/role/index.ts
|
1475
|
+
import { initContract as initContract16 } from "@ts-rest/core";
|
1476
|
+
import z39 from "zod";
|
1477
|
+
|
1478
|
+
// src/role/validation.ts
|
1479
|
+
import { z as z38 } from "zod";
|
1480
|
+
var CreateRoleSchema = z38.object({
|
1481
|
+
systemName: z38.string(),
|
1482
|
+
displayName: z38.string(),
|
1483
|
+
description: z38.string().nullable(),
|
1484
|
+
permissions: z38.array(z38.string())
|
1485
|
+
});
|
1486
|
+
var UpdateRoleSchema = CreateRoleSchema.extend({
|
1487
|
+
id: z38.string()
|
1488
|
+
});
|
1489
|
+
|
1490
|
+
// src/role/index.ts
|
1491
|
+
var roleContract = initContract16().router(
|
1492
|
+
{
|
1493
|
+
createRole: {
|
1494
|
+
method: "POST",
|
1495
|
+
path: "",
|
1496
|
+
headers: DefaultHeaderSchema,
|
1497
|
+
body: CreateRoleSchema,
|
1498
|
+
responses: {
|
1499
|
+
201: DefaultSuccessResponseSchema.extend({
|
1500
|
+
role: RoleSchema
|
1501
|
+
}),
|
1502
|
+
400: z39.object({
|
1503
|
+
message: z39.string()
|
1504
|
+
}),
|
1505
|
+
401: DefaultUnauthorizedSchema,
|
1506
|
+
500: DefaultErrorResponseSchema
|
1507
|
+
},
|
1508
|
+
summary: "Create a role."
|
1509
|
+
},
|
1510
|
+
getRoles: {
|
1511
|
+
method: "GET",
|
1512
|
+
path: "",
|
1513
|
+
query: z39.object({
|
1514
|
+
page: z39.coerce.number().default(1),
|
1515
|
+
pageSize: z39.coerce.number().default(10)
|
1516
|
+
}).optional(),
|
1517
|
+
headers: DefaultHeaderSchema,
|
1518
|
+
responses: {
|
1519
|
+
200: WithPagination(RoleSchema),
|
1520
|
+
400: z39.object({
|
1521
|
+
message: z39.string()
|
1522
|
+
}),
|
1523
|
+
401: DefaultUnauthorizedSchema,
|
1524
|
+
500: DefaultErrorResponseSchema
|
1525
|
+
},
|
1526
|
+
summary: "Get all roles"
|
1527
|
+
},
|
1528
|
+
updateRole: {
|
1529
|
+
method: "PATCH",
|
1530
|
+
path: "/:id",
|
1531
|
+
pathParams: z39.object({ id: z39.string() }),
|
1532
|
+
headers: DefaultHeaderSchema,
|
1533
|
+
body: UpdateRoleSchema,
|
1534
|
+
responses: {
|
1535
|
+
201: DefaultSuccessResponseSchema.extend({
|
1536
|
+
role: RoleSchema
|
1537
|
+
}),
|
1538
|
+
400: z39.object({
|
1539
|
+
message: z39.string()
|
1540
|
+
}),
|
1541
|
+
401: DefaultUnauthorizedSchema,
|
1542
|
+
500: DefaultErrorResponseSchema
|
1543
|
+
},
|
1544
|
+
summary: "Update a role."
|
1545
|
+
},
|
1546
|
+
deleteRole: {
|
1547
|
+
method: "DELETE",
|
1548
|
+
path: "/:id",
|
1549
|
+
pathParams: z39.object({ id: z39.string() }),
|
1550
|
+
headers: DefaultHeaderSchema,
|
1551
|
+
body: null,
|
1552
|
+
responses: {
|
1553
|
+
200: DefaultSuccessResponseSchema.extend({ message: z39.string() }),
|
1554
|
+
500: DefaultErrorResponseSchema
|
1555
|
+
},
|
1556
|
+
summary: "Delete a role."
|
1557
|
+
}
|
1558
|
+
},
|
1559
|
+
{ pathPrefix: "role" }
|
1560
|
+
);
|
1561
|
+
|
1562
|
+
// src/widget/index.ts
|
1563
|
+
import { initContract as initContract17 } from "@ts-rest/core";
|
1564
|
+
import z42 from "zod";
|
1565
|
+
|
1566
|
+
// src/widget/schema.ts
|
1567
|
+
import z40 from "zod";
|
1568
|
+
var FieldsSchema = z40.object({ data: z40.array(z40.string()) });
|
1569
|
+
var WidgetPositionSchema = z40.union([
|
1570
|
+
z40.literal("menu"),
|
1571
|
+
z40.literal("ticket_detail"),
|
1572
|
+
z40.literal("contact_detail")
|
1573
|
+
]);
|
1574
|
+
var WidgetSchema = DefaultEntitySchema.extend({
|
1575
|
+
name: z40.string(),
|
1576
|
+
description: z40.string().nullable(),
|
1577
|
+
position: WidgetPositionSchema.nullable(),
|
1578
|
+
fields: FieldsSchema,
|
1579
|
+
url: z40.string().nullable()
|
1580
|
+
});
|
1581
|
+
|
1582
|
+
// src/widget/validation.ts
|
1583
|
+
import z41 from "zod";
|
1584
|
+
var CreateWidgetSchema = z41.object({
|
1585
|
+
name: z41.string(),
|
1586
|
+
description: z41.string(),
|
1587
|
+
url: z41.string(),
|
1588
|
+
position: WidgetPositionSchema,
|
1589
|
+
fields: z41.object({
|
1590
|
+
data: (
|
1591
|
+
// Array of attribute system names
|
1592
|
+
z41.array(z41.string())
|
1593
|
+
)
|
1594
|
+
}).optional()
|
1595
|
+
});
|
1596
|
+
var UpdateWidgetSchema = CreateWidgetSchema.extend({
|
1597
|
+
id: z41.string()
|
1598
|
+
});
|
1599
|
+
|
1600
|
+
// src/widget/index.ts
|
1601
|
+
var widgetContract = initContract17().router(
|
1602
|
+
{
|
1603
|
+
createWidget: {
|
1604
|
+
method: "POST",
|
1605
|
+
path: "",
|
1606
|
+
headers: DefaultHeaderSchema,
|
1607
|
+
body: CreateWidgetSchema,
|
1608
|
+
responses: {
|
1609
|
+
201: DefaultSuccessResponseSchema.extend({
|
1610
|
+
widget: WidgetSchema
|
1611
|
+
}),
|
1612
|
+
400: z42.object({
|
1613
|
+
message: z42.string()
|
1614
|
+
}),
|
1615
|
+
401: DefaultUnauthorizedSchema,
|
1616
|
+
500: DefaultErrorResponseSchema
|
1617
|
+
},
|
1618
|
+
summary: "Create a widget."
|
1619
|
+
},
|
1620
|
+
getWidgets: {
|
1621
|
+
method: "GET",
|
1622
|
+
path: "",
|
1623
|
+
query: z42.object({
|
1624
|
+
page: z42.coerce.number().default(1),
|
1625
|
+
pageSize: z42.coerce.number().default(10),
|
1626
|
+
keyword: z42.coerce.string().optional()
|
1627
|
+
}).optional(),
|
1628
|
+
headers: DefaultHeaderSchema,
|
1629
|
+
responses: {
|
1630
|
+
200: WithPagination(WidgetSchema),
|
1631
|
+
500: DefaultErrorResponseSchema,
|
1632
|
+
400: z42.object({
|
1633
|
+
message: z42.string()
|
1634
|
+
}),
|
1635
|
+
401: DefaultUnauthorizedSchema
|
1636
|
+
},
|
1637
|
+
summary: "Get all widgets"
|
1638
|
+
},
|
1639
|
+
getMenuWidgets: {
|
1640
|
+
method: "GET",
|
1641
|
+
path: "/menu",
|
1642
|
+
headers: DefaultHeaderSchema,
|
1643
|
+
responses: {
|
1644
|
+
200: z42.array(WidgetSchema),
|
1645
|
+
400: z42.object({
|
1646
|
+
message: z42.string()
|
1647
|
+
}),
|
1648
|
+
401: DefaultUnauthorizedSchema,
|
1649
|
+
500: DefaultErrorResponseSchema
|
1650
|
+
},
|
1651
|
+
summary: "Get menu widgets"
|
1652
|
+
},
|
1653
|
+
getTicketWidgets: {
|
1654
|
+
method: "GET",
|
1655
|
+
path: "/ticket_detail",
|
1656
|
+
headers: DefaultHeaderSchema,
|
1657
|
+
responses: {
|
1658
|
+
200: z42.array(WidgetSchema),
|
1659
|
+
400: z42.object({
|
1660
|
+
message: z42.string()
|
1661
|
+
}),
|
1662
|
+
401: DefaultUnauthorizedSchema,
|
1663
|
+
500: DefaultErrorResponseSchema
|
1664
|
+
},
|
1665
|
+
summary: "Get ticket widgets"
|
1666
|
+
},
|
1667
|
+
getContactWidgets: {
|
1668
|
+
method: "GET",
|
1669
|
+
path: "/contact_detail",
|
1670
|
+
headers: DefaultHeaderSchema,
|
1671
|
+
responses: {
|
1672
|
+
200: z42.array(WidgetSchema),
|
1673
|
+
400: z42.object({
|
1674
|
+
message: z42.string()
|
1675
|
+
}),
|
1676
|
+
401: DefaultUnauthorizedSchema,
|
1677
|
+
500: DefaultErrorResponseSchema
|
1678
|
+
},
|
1679
|
+
summary: "Get contact widgets"
|
1680
|
+
},
|
1681
|
+
getWidgetById: {
|
1682
|
+
method: "GET",
|
1683
|
+
path: "/:id",
|
1684
|
+
pathParams: z42.object({ id: z42.string() }),
|
1685
|
+
headers: DefaultHeaderSchema,
|
1686
|
+
responses: {
|
1687
|
+
200: WidgetSchema,
|
1688
|
+
400: z42.object({
|
1689
|
+
message: z42.string()
|
1690
|
+
}),
|
1691
|
+
401: DefaultUnauthorizedSchema,
|
1692
|
+
500: DefaultErrorResponseSchema
|
1693
|
+
},
|
1694
|
+
summary: "Get widget by id"
|
1695
|
+
},
|
1696
|
+
// Hold
|
1697
|
+
// getWidgetUrl: {
|
1698
|
+
// method: 'GET',
|
1699
|
+
// path: '/url_token/generate',
|
1700
|
+
// pathParams: z.object({
|
1701
|
+
// widgetId: z.string(),
|
1702
|
+
// // Position ID is ticket ID, contact ID, etc.
|
1703
|
+
// // TODO: The name "Position ID" is confusing. Think of a better name.
|
1704
|
+
// positionId: z.string(),
|
1705
|
+
// }),
|
1706
|
+
// headers: DefaultHeaderSchema,
|
1707
|
+
// responses: {
|
1708
|
+
// 201: DefaultSuccessResponseSchema.extend({
|
1709
|
+
// widget: z.object({
|
1710
|
+
// url: z.string(),
|
1711
|
+
// }),
|
1712
|
+
// }),
|
1713
|
+
// 400: z.object({
|
1714
|
+
// message: z.string(),
|
1715
|
+
// }),
|
1716
|
+
// 401: DefaultUnauthorizedSchema,
|
1717
|
+
// },
|
1718
|
+
// summary: 'Generate url token for widget.',
|
1719
|
+
// },
|
1720
|
+
updateWidget: {
|
1721
|
+
method: "PATCH",
|
1722
|
+
path: "/:id",
|
1723
|
+
pathParams: z42.object({ id: z42.string() }),
|
1724
|
+
headers: DefaultHeaderSchema,
|
1725
|
+
responses: {
|
1726
|
+
201: DefaultSuccessResponseSchema.extend({
|
1727
|
+
widget: WidgetSchema
|
1728
|
+
}),
|
1729
|
+
400: z42.object({
|
1730
|
+
message: z42.string()
|
1731
|
+
}),
|
1732
|
+
401: DefaultUnauthorizedSchema
|
1733
|
+
},
|
1734
|
+
body: UpdateWidgetSchema,
|
1735
|
+
summary: "Update a widget."
|
1736
|
+
},
|
1737
|
+
deleteWidget: {
|
1738
|
+
method: "DELETE",
|
1739
|
+
path: "/:id",
|
1740
|
+
pathParams: z42.object({ id: z42.string() }),
|
1741
|
+
headers: DefaultHeaderSchema,
|
1742
|
+
body: null,
|
1743
|
+
responses: {
|
1744
|
+
200: DefaultSuccessResponseSchema.extend({ message: z42.string() }),
|
1745
|
+
500: DefaultErrorResponseSchema
|
1746
|
+
},
|
1747
|
+
summary: "Delete a widget."
|
1748
|
+
}
|
1749
|
+
},
|
1750
|
+
{ pathPrefix: "widget" }
|
1751
|
+
);
|
1752
|
+
|
1753
|
+
// src/telephony-extension/index.ts
|
1754
|
+
import { initContract as initContract18 } from "@ts-rest/core";
|
1755
|
+
import z44 from "zod";
|
1756
|
+
|
1757
|
+
// src/telephony-extension/schema.ts
|
1758
|
+
import z43 from "zod";
|
1759
|
+
var TelephonyExtensionSchema = z43.object({
|
1760
|
+
errcode: z43.coerce.number(),
|
1761
|
+
errmsg: z43.string(),
|
1762
|
+
total_number: z43.coerce.number(),
|
1763
|
+
data: z43.array(z43.object({}))
|
1764
|
+
});
|
1765
|
+
|
1766
|
+
// src/telephony-extension/index.ts
|
1767
|
+
var telephonyExtensionContract = initContract18().router(
|
1768
|
+
{
|
1769
|
+
getTelephonyExtensions: {
|
1770
|
+
method: "GET",
|
1771
|
+
path: "/extension_list",
|
1772
|
+
headers: DefaultHeaderSchema,
|
1773
|
+
query: null,
|
1774
|
+
responses: {
|
1775
|
+
200: TelephonyExtensionSchema,
|
1776
|
+
400: z44.object({
|
1777
|
+
message: z44.string()
|
1778
|
+
}),
|
1779
|
+
401: DefaultUnauthorizedSchema,
|
1780
|
+
500: DefaultErrorResponseSchema
|
1781
|
+
},
|
1782
|
+
summary: "Get all extension list by yeastar"
|
1783
|
+
}
|
1784
|
+
},
|
1785
|
+
{ pathPrefix: "telephony" }
|
803
1786
|
);
|
804
1787
|
|
805
1788
|
// src/contract.ts
|
806
|
-
var apiContract =
|
1789
|
+
var apiContract = initContract19().router({
|
807
1790
|
auth: authContract,
|
808
1791
|
mail: mailContract,
|
809
1792
|
cxLog: cxLogContract,
|
1793
|
+
permission: permissionContract,
|
1794
|
+
role: roleContract,
|
1795
|
+
// user: userContract,
|
1796
|
+
extension: extensionContract,
|
1797
|
+
widget: widgetContract,
|
810
1798
|
emailEngineWebhooks: emailEngineWebhooksEventsContract,
|
811
|
-
category: categoryContract
|
1799
|
+
category: categoryContract,
|
1800
|
+
telephonyExtensionContract,
|
1801
|
+
line: lineContract,
|
1802
|
+
attribute: attributeContract,
|
1803
|
+
tag: tagContract,
|
1804
|
+
chat: chatContract
|
812
1805
|
});
|
813
1806
|
export {
|
814
1807
|
apiContract,
|
815
|
-
|
1808
|
+
attributeContract,
|
1809
|
+
categoryContract,
|
1810
|
+
tagContract
|
816
1811
|
};
|
817
1812
|
//# sourceMappingURL=index.mjs.map
|