@ikatec/digisac-api-sdk 4.5.1 → 4.6.0
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/README.md +5 -3
- package/dist/apis/answers/AnswersApi.cjs +38 -0
- package/dist/apis/answers/AnswersApi.cjs.map +1 -1
- package/dist/apis/answers/AnswersApi.d.ts +33 -2
- package/dist/apis/answers/AnswersApi.d.ts.map +1 -1
- package/dist/apis/answers/AnswersApi.mjs +38 -0
- package/dist/apis/answers/AnswersApi.mjs.map +1 -1
- package/dist/apis/answers/types.d.ts +64 -1
- package/dist/apis/answers/types.d.ts.map +1 -1
- package/dist/apis/botSimulators/BotSimulatorsApi.cjs +42 -0
- package/dist/apis/botSimulators/BotSimulatorsApi.cjs.map +1 -0
- package/dist/apis/botSimulators/BotSimulatorsApi.d.ts +31 -0
- package/dist/apis/botSimulators/BotSimulatorsApi.d.ts.map +1 -0
- package/dist/apis/botSimulators/BotSimulatorsApi.mjs +41 -0
- package/dist/apis/botSimulators/BotSimulatorsApi.mjs.map +1 -0
- package/dist/apis/botSimulators/index.cjs +4 -0
- package/dist/apis/botSimulators/index.d.ts +3 -0
- package/dist/apis/botSimulators/index.d.ts.map +1 -0
- package/dist/apis/botSimulators/index.mjs +3 -0
- package/dist/apis/botSimulators/types.cjs +0 -0
- package/dist/apis/botSimulators/types.d.ts +73 -0
- package/dist/apis/botSimulators/types.d.ts.map +1 -0
- package/dist/apis/botSimulators/types.mjs +0 -0
- package/dist/apis/botVersions/BotVersionsApi.cjs +25 -0
- package/dist/apis/botVersions/BotVersionsApi.cjs.map +1 -1
- package/dist/apis/botVersions/BotVersionsApi.d.ts +18 -0
- package/dist/apis/botVersions/BotVersionsApi.d.ts.map +1 -1
- package/dist/apis/botVersions/BotVersionsApi.mjs +25 -0
- package/dist/apis/botVersions/BotVersionsApi.mjs.map +1 -1
- package/dist/apis/botVersions/types.d.ts +4 -0
- package/dist/apis/botVersions/types.d.ts.map +1 -1
- package/dist/apis/bots/BotsApi.cjs +99 -4
- package/dist/apis/bots/BotsApi.cjs.map +1 -1
- package/dist/apis/bots/BotsApi.d.ts +78 -5
- package/dist/apis/bots/BotsApi.d.ts.map +1 -1
- package/dist/apis/bots/BotsApi.mjs +99 -4
- package/dist/apis/bots/BotsApi.mjs.map +1 -1
- package/dist/apis/bots/types.d.ts +266 -16
- package/dist/apis/bots/types.d.ts.map +1 -1
- package/dist/apis/index.cjs +3 -0
- package/dist/apis/index.d.ts +1 -0
- package/dist/apis/index.d.ts.map +1 -1
- package/dist/apis/index.mjs +3 -1
- package/dist/apis/questions/QuestionsApi.cjs +15 -0
- package/dist/apis/questions/QuestionsApi.cjs.map +1 -1
- package/dist/apis/questions/QuestionsApi.d.ts +15 -1
- package/dist/apis/questions/QuestionsApi.d.ts.map +1 -1
- package/dist/apis/questions/QuestionsApi.mjs +15 -0
- package/dist/apis/questions/QuestionsApi.mjs.map +1 -1
- package/dist/apis/questions/types.d.ts +25 -5
- package/dist/apis/questions/types.d.ts.map +1 -1
- package/dist/apis/quickReplies/QuickRepliesApi.cjs +16 -0
- package/dist/apis/quickReplies/QuickRepliesApi.cjs.map +1 -1
- package/dist/apis/quickReplies/QuickRepliesApi.d.ts +15 -2
- package/dist/apis/quickReplies/QuickRepliesApi.d.ts.map +1 -1
- package/dist/apis/quickReplies/QuickRepliesApi.mjs +16 -0
- package/dist/apis/quickReplies/QuickRepliesApi.mjs.map +1 -1
- package/dist/apis/quickReplies/types.d.ts +30 -2
- package/dist/apis/quickReplies/types.d.ts.map +1 -1
- package/dist/apis/schedule/ScheduleApi.cjs +37 -2
- package/dist/apis/schedule/ScheduleApi.cjs.map +1 -1
- package/dist/apis/schedule/ScheduleApi.d.ts +30 -3
- package/dist/apis/schedule/ScheduleApi.d.ts.map +1 -1
- package/dist/apis/schedule/ScheduleApi.mjs +37 -2
- package/dist/apis/schedule/ScheduleApi.mjs.map +1 -1
- package/dist/apis/schedule/types.d.ts +58 -11
- package/dist/apis/schedule/types.d.ts.map +1 -1
- package/dist/apis/ticketTopics/TicketTopicsApi.cjs +25 -2
- package/dist/apis/ticketTopics/TicketTopicsApi.cjs.map +1 -1
- package/dist/apis/ticketTopics/TicketTopicsApi.d.ts +18 -4
- package/dist/apis/ticketTopics/TicketTopicsApi.d.ts.map +1 -1
- package/dist/apis/ticketTopics/TicketTopicsApi.mjs +25 -2
- package/dist/apis/ticketTopics/TicketTopicsApi.mjs.map +1 -1
- package/dist/apis/ticketTopics/types.d.ts +22 -1
- package/dist/apis/ticketTopics/types.d.ts.map +1 -1
- package/dist/core/BaseCrudApi.cjs +5 -2
- package/dist/core/BaseCrudApi.cjs.map +1 -1
- package/dist/core/BaseCrudApi.d.ts +7 -4
- package/dist/core/BaseCrudApi.d.ts.map +1 -1
- package/dist/core/BaseCrudApi.mjs +5 -2
- package/dist/core/BaseCrudApi.mjs.map +1 -1
- package/dist/core/types.d.ts +1 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/incommingWebhooks/index.d.ts +7 -7
- package/dist/incommingWebhooks/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/apis/answers/AnswersApi.test.ts +67 -0
- package/src/apis/answers/AnswersApi.ts +66 -2
- package/src/apis/answers/types.ts +64 -2
- package/src/apis/botSimulators/BotSimulatorsApi.test.ts +58 -0
- package/src/apis/botSimulators/BotSimulatorsApi.ts +57 -0
- package/src/apis/botSimulators/index.ts +2 -0
- package/src/apis/botSimulators/types.ts +72 -0
- package/src/apis/botVersions/BotVersionsApi.test.ts +51 -0
- package/src/apis/botVersions/BotVersionsApi.ts +41 -0
- package/src/apis/botVersions/types.ts +4 -0
- package/src/apis/bots/BotsApi.test.ts +177 -0
- package/src/apis/bots/BotsApi.ts +162 -6
- package/src/apis/bots/types.ts +267 -15
- package/src/apis/index.ts +1 -0
- package/src/apis/payloads.test-d.ts +148 -0
- package/src/apis/questions/QuestionsApi.test.ts +49 -0
- package/src/apis/questions/QuestionsApi.ts +20 -1
- package/src/apis/questions/types.ts +25 -6
- package/src/apis/quickReplies/QuickRepliesApi.test.ts +69 -0
- package/src/apis/quickReplies/QuickRepliesApi.ts +35 -2
- package/src/apis/quickReplies/types.ts +34 -2
- package/src/apis/schedule/ScheduleApi.test.ts +80 -0
- package/src/apis/schedule/ScheduleApi.ts +59 -6
- package/src/apis/schedule/types.ts +66 -11
- package/src/apis/ticketTopics/TicketTopicsApi.test.ts +40 -0
- package/src/apis/ticketTopics/TicketTopicsApi.ts +35 -4
- package/src/apis/ticketTopics/types.ts +26 -1
- package/src/core/BaseCrudApi.ts +9 -5
- package/src/core/types.ts +2 -1
- package/src/incommingWebhooks/index.test-d.ts +9 -0
- package/src/incommingWebhooks/index.ts +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuickRepliesApi.cjs","names":["BaseCrudApi"],"sources":["../../../src/apis/quickReplies/QuickRepliesApi.ts"],"sourcesContent":["import type { ApiClient } from '../../core/ApiClient'\nimport { BaseCrudApi } from '../../core/BaseCrudApi'\nimport type { QuickReply
|
|
1
|
+
{"version":3,"file":"QuickRepliesApi.cjs","names":["BaseCrudApi"],"sources":["../../../src/apis/quickReplies/QuickRepliesApi.ts"],"sourcesContent":["import type { ApiClient } from '../../core/ApiClient'\nimport { BaseCrudApi } from '../../core/BaseCrudApi'\nimport type { ListQuery } from '../../core/types'\nimport type {\n QuickReply,\n QuickRepliesLoadOnDemandQuery,\n QuickRepliesLoadOnDemandResult,\n CreateQuickReplyPayload,\n UpdateQuickReplyPayload,\n} from './types'\n\nexport class QuickRepliesApi extends BaseCrudApi<\n QuickReply,\n CreateQuickReplyPayload,\n UpdateQuickReplyPayload,\n ListQuery<QuickReply>,\n 'OK'\n> {\n constructor(client: ApiClient) {\n super(client, '/quick-replies')\n }\n\n /**\n * Deletes a quick reply (soft delete). Resolves to `'OK'`; an unknown id answers 500.\n * @permissions quickReplies.view OR quickReplies.destroy\n */\n override deleteById(id: string, headers?: Record<string, string>): Promise<'OK'> {\n return super.deleteById(id, headers)\n }\n\n /**\n * Lists the replies the user can use (no department, or one of the departments of the user),\n * the way the chat loads them: `limit`/`offset` instead of pages, and `{ data, total }`\n * instead of the pagination envelope.\n * @permissions quickReplies.view\n */\n loadOnDemand(\n query?: QuickRepliesLoadOnDemandQuery,\n headers?: Record<string, string>,\n ): Promise<QuickRepliesLoadOnDemandResult> {\n return this.client.get<QuickRepliesLoadOnDemandResult>(\n `${this.basePath}/load-on-demand${this.toQueryString(query)}`,\n headers,\n )\n }\n}\n"],"mappings":";;;;AAWA,IAAa,kBAAb,cAAqCA,qCAMnC;CACA,YAAY,QAAmB;AAC7B,QAAM,QAAQ,iBAAiB;;;;;;CAOjC,AAAS,WAAW,IAAY,SAAiD;AAC/E,SAAO,MAAM,WAAW,IAAI,QAAQ;;;;;;;;CAStC,aACE,OACA,SACyC;AACzC,SAAO,KAAK,OAAO,IACjB,GAAG,KAAK,SAAS,iBAAiB,KAAK,cAAc,MAAM,IAC3D,QACD"}
|
|
@@ -1,7 +1,20 @@
|
|
|
1
1
|
import type { ApiClient } from '../../core/ApiClient';
|
|
2
2
|
import { BaseCrudApi } from '../../core/BaseCrudApi';
|
|
3
|
-
import type {
|
|
4
|
-
|
|
3
|
+
import type { ListQuery } from '../../core/types';
|
|
4
|
+
import type { QuickReply, QuickRepliesLoadOnDemandQuery, QuickRepliesLoadOnDemandResult, CreateQuickReplyPayload, UpdateQuickReplyPayload } from './types';
|
|
5
|
+
export declare class QuickRepliesApi extends BaseCrudApi<QuickReply, CreateQuickReplyPayload, UpdateQuickReplyPayload, ListQuery<QuickReply>, 'OK'> {
|
|
5
6
|
constructor(client: ApiClient);
|
|
7
|
+
/**
|
|
8
|
+
* Deletes a quick reply (soft delete). Resolves to `'OK'`; an unknown id answers 500.
|
|
9
|
+
* @permissions quickReplies.view OR quickReplies.destroy
|
|
10
|
+
*/
|
|
11
|
+
deleteById(id: string, headers?: Record<string, string>): Promise<'OK'>;
|
|
12
|
+
/**
|
|
13
|
+
* Lists the replies the user can use (no department, or one of the departments of the user),
|
|
14
|
+
* the way the chat loads them: `limit`/`offset` instead of pages, and `{ data, total }`
|
|
15
|
+
* instead of the pagination envelope.
|
|
16
|
+
* @permissions quickReplies.view
|
|
17
|
+
*/
|
|
18
|
+
loadOnDemand(query?: QuickRepliesLoadOnDemandQuery, headers?: Record<string, string>): Promise<QuickRepliesLoadOnDemandResult>;
|
|
6
19
|
}
|
|
7
20
|
//# sourceMappingURL=QuickRepliesApi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuickRepliesApi.d.ts","sourceRoot":"","sources":["../../../src/apis/quickReplies/QuickRepliesApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"QuickRepliesApi.d.ts","sourceRoot":"","sources":["../../../src/apis/quickReplies/QuickRepliesApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EACV,UAAU,EACV,6BAA6B,EAC7B,8BAA8B,EAC9B,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,SAAS,CAAA;AAEhB,qBAAa,eAAgB,SAAQ,WAAW,CAC9C,UAAU,EACV,uBAAuB,EACvB,uBAAuB,EACvB,SAAS,CAAC,UAAU,CAAC,EACrB,IAAI,CACL;gBACa,MAAM,EAAE,SAAS;IAI7B;;;OAGG;IACM,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhF;;;;;OAKG;IACH,YAAY,CACV,KAAK,CAAC,EAAE,6BAA6B,EACrC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,8BAA8B,CAAC;CAM3C"}
|
|
@@ -5,6 +5,22 @@ var QuickRepliesApi = class extends BaseCrudApi {
|
|
|
5
5
|
constructor(client) {
|
|
6
6
|
super(client, "/quick-replies");
|
|
7
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* Deletes a quick reply (soft delete). Resolves to `'OK'`; an unknown id answers 500.
|
|
10
|
+
* @permissions quickReplies.view OR quickReplies.destroy
|
|
11
|
+
*/
|
|
12
|
+
deleteById(id, headers) {
|
|
13
|
+
return super.deleteById(id, headers);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Lists the replies the user can use (no department, or one of the departments of the user),
|
|
17
|
+
* the way the chat loads them: `limit`/`offset` instead of pages, and `{ data, total }`
|
|
18
|
+
* instead of the pagination envelope.
|
|
19
|
+
* @permissions quickReplies.view
|
|
20
|
+
*/
|
|
21
|
+
loadOnDemand(query, headers) {
|
|
22
|
+
return this.client.get(`${this.basePath}/load-on-demand${this.toQueryString(query)}`, headers);
|
|
23
|
+
}
|
|
8
24
|
};
|
|
9
25
|
|
|
10
26
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuickRepliesApi.mjs","names":[],"sources":["../../../src/apis/quickReplies/QuickRepliesApi.ts"],"sourcesContent":["import type { ApiClient } from '../../core/ApiClient'\nimport { BaseCrudApi } from '../../core/BaseCrudApi'\nimport type { QuickReply
|
|
1
|
+
{"version":3,"file":"QuickRepliesApi.mjs","names":[],"sources":["../../../src/apis/quickReplies/QuickRepliesApi.ts"],"sourcesContent":["import type { ApiClient } from '../../core/ApiClient'\nimport { BaseCrudApi } from '../../core/BaseCrudApi'\nimport type { ListQuery } from '../../core/types'\nimport type {\n QuickReply,\n QuickRepliesLoadOnDemandQuery,\n QuickRepliesLoadOnDemandResult,\n CreateQuickReplyPayload,\n UpdateQuickReplyPayload,\n} from './types'\n\nexport class QuickRepliesApi extends BaseCrudApi<\n QuickReply,\n CreateQuickReplyPayload,\n UpdateQuickReplyPayload,\n ListQuery<QuickReply>,\n 'OK'\n> {\n constructor(client: ApiClient) {\n super(client, '/quick-replies')\n }\n\n /**\n * Deletes a quick reply (soft delete). Resolves to `'OK'`; an unknown id answers 500.\n * @permissions quickReplies.view OR quickReplies.destroy\n */\n override deleteById(id: string, headers?: Record<string, string>): Promise<'OK'> {\n return super.deleteById(id, headers)\n }\n\n /**\n * Lists the replies the user can use (no department, or one of the departments of the user),\n * the way the chat loads them: `limit`/`offset` instead of pages, and `{ data, total }`\n * instead of the pagination envelope.\n * @permissions quickReplies.view\n */\n loadOnDemand(\n query?: QuickRepliesLoadOnDemandQuery,\n headers?: Record<string, string>,\n ): Promise<QuickRepliesLoadOnDemandResult> {\n return this.client.get<QuickRepliesLoadOnDemandResult>(\n `${this.basePath}/load-on-demand${this.toQueryString(query)}`,\n headers,\n )\n }\n}\n"],"mappings":";;;AAWA,IAAa,kBAAb,cAAqC,YAMnC;CACA,YAAY,QAAmB;AAC7B,QAAM,QAAQ,iBAAiB;;;;;;CAOjC,AAAS,WAAW,IAAY,SAAiD;AAC/E,SAAO,MAAM,WAAW,IAAI,QAAQ;;;;;;;;CAStC,aACE,OACA,SACyC;AACzC,SAAO,KAAK,OAAO,IACjB,GAAG,KAAK,SAAS,iBAAiB,KAAK,cAAc,MAAM,IAC3D,QACD"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { ListQuery } from '../../core/types';
|
|
1
2
|
import type { Category } from '../categories/types';
|
|
2
3
|
import type { Department } from '../departments/types';
|
|
3
4
|
import type { File } from '../files/types';
|
|
@@ -9,17 +10,44 @@ export type QuickReply = {
|
|
|
9
10
|
createdAt: string;
|
|
10
11
|
updatedAt: string;
|
|
11
12
|
deletedAt: string | null;
|
|
13
|
+
/** Empty = all departments. */
|
|
12
14
|
departments?: Department[];
|
|
13
15
|
categories?: Category[];
|
|
14
16
|
files?: File[];
|
|
15
17
|
};
|
|
16
18
|
export type QuickReplyRelationships = 'departments' | 'categories' | 'files';
|
|
19
|
+
/**
|
|
20
|
+
* Files already uploaded through `FilesApi` with `attachedType: 'quickreply.file'` — uploaded
|
|
21
|
+
* with another type they get the `attachedId` but never show in `files`.
|
|
22
|
+
*/
|
|
23
|
+
export type QuickReplyFilePayload = {
|
|
24
|
+
id: string;
|
|
25
|
+
};
|
|
26
|
+
/** `title` and `text` are each unique in the account (409, unless the account allows duplicate names). */
|
|
17
27
|
export type CreateQuickReplyPayload = {
|
|
18
28
|
title: string;
|
|
19
29
|
text: string;
|
|
30
|
+
/** Department ids; omitted = all departments. */
|
|
31
|
+
departmentIds?: string[];
|
|
32
|
+
categoryIds?: string[];
|
|
33
|
+
files?: QuickReplyFilePayload[];
|
|
20
34
|
};
|
|
35
|
+
/**
|
|
36
|
+
* Not partial: `title` and `text` are required, the departments and categories are replaced
|
|
37
|
+
* (omitted = none), and so are the files.
|
|
38
|
+
*/
|
|
21
39
|
export type UpdateQuickReplyPayload = {
|
|
22
|
-
title
|
|
23
|
-
text
|
|
40
|
+
title: string;
|
|
41
|
+
text: string;
|
|
42
|
+
departmentIds?: string[];
|
|
43
|
+
categoryIds?: string[];
|
|
44
|
+
/** The files to keep or attach; `[]` removes all. Required: omitted, the update fails (500). */
|
|
45
|
+
files: QuickReplyFilePayload[];
|
|
46
|
+
};
|
|
47
|
+
/** The query of `loadOnDemand`, passed to the database as is. */
|
|
48
|
+
export type QuickRepliesLoadOnDemandQuery = Pick<ListQuery<QuickReply>, 'where' | 'include' | 'order' | 'attributes' | 'limit' | 'offset'>;
|
|
49
|
+
export type QuickRepliesLoadOnDemandResult = {
|
|
50
|
+
data: QuickReply[];
|
|
51
|
+
total: number;
|
|
24
52
|
};
|
|
25
53
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/apis/quickReplies/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAE1C,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IAExB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAA;IACvB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;CACf,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,aAAa,GAAG,YAAY,GAAG,OAAO,CAAA;AAE5E,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/apis/quickReplies/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAE1C,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IAExB,+BAA+B;IAC/B,WAAW,CAAC,EAAE,UAAU,EAAE,CAAA;IAC1B,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAA;IACvB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;CACf,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,aAAa,GAAG,YAAY,GAAG,OAAO,CAAA;AAE5E;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAA;AAElD,0GAA0G;AAC1G,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,iDAAiD;IACjD,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,KAAK,CAAC,EAAE,qBAAqB,EAAE,CAAA;CAChC,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,gGAAgG;IAChG,KAAK,EAAE,qBAAqB,EAAE,CAAA;CAC/B,CAAA;AAED,iEAAiE;AACjE,MAAM,MAAM,6BAA6B,GAAG,IAAI,CAC9C,SAAS,CAAC,UAAU,CAAC,EACrB,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,YAAY,GAAG,OAAO,GAAG,QAAQ,CAClE,CAAA;AAED,MAAM,MAAM,8BAA8B,GAAG;IAC3C,IAAI,EAAE,UAAU,EAAE,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA"}
|
|
@@ -1,11 +1,46 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
|
-
const
|
|
2
|
+
const require_core_BaseReadApi = require('../../core/BaseReadApi.cjs');
|
|
3
3
|
|
|
4
4
|
//#region src/apis/schedule/ScheduleApi.ts
|
|
5
|
-
|
|
5
|
+
/**
|
|
6
|
+
* Scheduled messages. Create answers no body and update answers the stored record, so this
|
|
7
|
+
* class extends `BaseReadApi` and writes its own create/update/delete.
|
|
8
|
+
*/
|
|
9
|
+
var ScheduleApi = class extends require_core_BaseReadApi.BaseReadApi {
|
|
6
10
|
constructor(client) {
|
|
7
11
|
super(client, "/schedule");
|
|
8
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* Creates a schedule. Resolves with NO CONTENT: find it back with `getOne` (e.g. by
|
|
15
|
+
* `contactId` and `scheduledAt`).
|
|
16
|
+
* @permissions schedule.create
|
|
17
|
+
*/
|
|
18
|
+
create(body, headers) {
|
|
19
|
+
return this.client.post(this.basePath, body, headers);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Updates a schedule. Resolves to the stored record, without relationships. An unknown id
|
|
23
|
+
* answers 500.
|
|
24
|
+
* @permissions schedule.view OR schedule.update
|
|
25
|
+
*/
|
|
26
|
+
updateById(id, body, headers) {
|
|
27
|
+
return this.client.put(`${this.basePath}/${id}`, body, headers);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Deletes a schedule (soft delete). Resolves to `'OK'`; an unknown id answers 500.
|
|
31
|
+
* @permissions schedule.view OR schedule.destroy
|
|
32
|
+
*/
|
|
33
|
+
deleteById(id, headers) {
|
|
34
|
+
return this.client.delete(`${this.basePath}/${id}`, headers);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Deletes several schedules of the account. Ids that are not UUIDs, or of another account, are
|
|
38
|
+
* skipped in silence; always resolves to `'OK'`.
|
|
39
|
+
* @permissions schedule.destroy
|
|
40
|
+
*/
|
|
41
|
+
deleteMany(ids, headers) {
|
|
42
|
+
return this.client.request("DELETE", `${this.basePath}/many`, { where: { id: ids } }, headers);
|
|
43
|
+
}
|
|
9
44
|
};
|
|
10
45
|
|
|
11
46
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScheduleApi.cjs","names":["
|
|
1
|
+
{"version":3,"file":"ScheduleApi.cjs","names":["BaseReadApi"],"sources":["../../../src/apis/schedule/ScheduleApi.ts"],"sourcesContent":["import type { ApiClient } from '../../core/ApiClient'\nimport { BaseReadApi } from '../../core/BaseReadApi'\nimport type {\n Schedule,\n ScheduleRecord,\n CreateSchedulePayload,\n UpdateSchedulePayload,\n} from './types'\n\n/**\n * Scheduled messages. Create answers no body and update answers the stored record, so this\n * class extends `BaseReadApi` and writes its own create/update/delete.\n */\nexport class ScheduleApi extends BaseReadApi<Schedule> {\n constructor(client: ApiClient) {\n super(client, '/schedule')\n }\n\n /**\n * Creates a schedule. Resolves with NO CONTENT: find it back with `getOne` (e.g. by\n * `contactId` and `scheduledAt`).\n * @permissions schedule.create\n */\n create(body: CreateSchedulePayload, headers?: Record<string, string>): Promise<void> {\n return this.client.post<void, CreateSchedulePayload>(this.basePath, body, headers)\n }\n\n /**\n * Updates a schedule. Resolves to the stored record, without relationships. An unknown id\n * answers 500.\n * @permissions schedule.view OR schedule.update\n */\n updateById(\n id: string,\n body: UpdateSchedulePayload,\n headers?: Record<string, string>,\n ): Promise<ScheduleRecord> {\n return this.client.put<ScheduleRecord, UpdateSchedulePayload>(\n `${this.basePath}/${id}`,\n body,\n headers,\n )\n }\n\n /**\n * Deletes a schedule (soft delete). Resolves to `'OK'`; an unknown id answers 500.\n * @permissions schedule.view OR schedule.destroy\n */\n deleteById(id: string, headers?: Record<string, string>): Promise<'OK'> {\n return this.client.delete<'OK'>(`${this.basePath}/${id}`, headers)\n }\n\n /**\n * Deletes several schedules of the account. Ids that are not UUIDs, or of another account, are\n * skipped in silence; always resolves to `'OK'`.\n * @permissions schedule.destroy\n */\n deleteMany(ids: string[], headers?: Record<string, string>): Promise<'OK'> {\n return this.client.request<'OK', { where: { id: string[] } }>(\n 'DELETE',\n `${this.basePath}/many`,\n { where: { id: ids } },\n headers,\n )\n }\n}\n"],"mappings":";;;;;;;;AAaA,IAAa,cAAb,cAAiCA,qCAAsB;CACrD,YAAY,QAAmB;AAC7B,QAAM,QAAQ,YAAY;;;;;;;CAQ5B,OAAO,MAA6B,SAAiD;AACnF,SAAO,KAAK,OAAO,KAAkC,KAAK,UAAU,MAAM,QAAQ;;;;;;;CAQpF,WACE,IACA,MACA,SACyB;AACzB,SAAO,KAAK,OAAO,IACjB,GAAG,KAAK,SAAS,GAAG,MACpB,MACA,QACD;;;;;;CAOH,WAAW,IAAY,SAAiD;AACtE,SAAO,KAAK,OAAO,OAAa,GAAG,KAAK,SAAS,GAAG,MAAM,QAAQ;;;;;;;CAQpE,WAAW,KAAe,SAAiD;AACzE,SAAO,KAAK,OAAO,QACjB,UACA,GAAG,KAAK,SAAS,QACjB,EAAE,OAAO,EAAE,IAAI,KAAK,EAAE,EACtB,QACD"}
|
|
@@ -1,7 +1,34 @@
|
|
|
1
1
|
import type { ApiClient } from '../../core/ApiClient';
|
|
2
|
-
import {
|
|
3
|
-
import type { Schedule, CreateSchedulePayload, UpdateSchedulePayload } from './types';
|
|
4
|
-
|
|
2
|
+
import { BaseReadApi } from '../../core/BaseReadApi';
|
|
3
|
+
import type { Schedule, ScheduleRecord, CreateSchedulePayload, UpdateSchedulePayload } from './types';
|
|
4
|
+
/**
|
|
5
|
+
* Scheduled messages. Create answers no body and update answers the stored record, so this
|
|
6
|
+
* class extends `BaseReadApi` and writes its own create/update/delete.
|
|
7
|
+
*/
|
|
8
|
+
export declare class ScheduleApi extends BaseReadApi<Schedule> {
|
|
5
9
|
constructor(client: ApiClient);
|
|
10
|
+
/**
|
|
11
|
+
* Creates a schedule. Resolves with NO CONTENT: find it back with `getOne` (e.g. by
|
|
12
|
+
* `contactId` and `scheduledAt`).
|
|
13
|
+
* @permissions schedule.create
|
|
14
|
+
*/
|
|
15
|
+
create(body: CreateSchedulePayload, headers?: Record<string, string>): Promise<void>;
|
|
16
|
+
/**
|
|
17
|
+
* Updates a schedule. Resolves to the stored record, without relationships. An unknown id
|
|
18
|
+
* answers 500.
|
|
19
|
+
* @permissions schedule.view OR schedule.update
|
|
20
|
+
*/
|
|
21
|
+
updateById(id: string, body: UpdateSchedulePayload, headers?: Record<string, string>): Promise<ScheduleRecord>;
|
|
22
|
+
/**
|
|
23
|
+
* Deletes a schedule (soft delete). Resolves to `'OK'`; an unknown id answers 500.
|
|
24
|
+
* @permissions schedule.view OR schedule.destroy
|
|
25
|
+
*/
|
|
26
|
+
deleteById(id: string, headers?: Record<string, string>): Promise<'OK'>;
|
|
27
|
+
/**
|
|
28
|
+
* Deletes several schedules of the account. Ids that are not UUIDs, or of another account, are
|
|
29
|
+
* skipped in silence; always resolves to `'OK'`.
|
|
30
|
+
* @permissions schedule.destroy
|
|
31
|
+
*/
|
|
32
|
+
deleteMany(ids: string[], headers?: Record<string, string>): Promise<'OK'>;
|
|
6
33
|
}
|
|
7
34
|
//# sourceMappingURL=ScheduleApi.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScheduleApi.d.ts","sourceRoot":"","sources":["../../../src/apis/schedule/ScheduleApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"ScheduleApi.d.ts","sourceRoot":"","sources":["../../../src/apis/schedule/ScheduleApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAEhB;;;GAGG;AACH,qBAAa,WAAY,SAAQ,WAAW,CAAC,QAAQ,CAAC;gBACxC,MAAM,EAAE,SAAS;IAI7B;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,qBAAqB,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpF;;;;OAIG;IACH,UAAU,CACR,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,qBAAqB,EAC3B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,cAAc,CAAC;IAQ1B;;;OAGG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIvE;;;;OAIG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAQ3E"}
|
|
@@ -1,10 +1,45 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { BaseReadApi } from "../../core/BaseReadApi.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/apis/schedule/ScheduleApi.ts
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Scheduled messages. Create answers no body and update answers the stored record, so this
|
|
6
|
+
* class extends `BaseReadApi` and writes its own create/update/delete.
|
|
7
|
+
*/
|
|
8
|
+
var ScheduleApi = class extends BaseReadApi {
|
|
5
9
|
constructor(client) {
|
|
6
10
|
super(client, "/schedule");
|
|
7
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* Creates a schedule. Resolves with NO CONTENT: find it back with `getOne` (e.g. by
|
|
14
|
+
* `contactId` and `scheduledAt`).
|
|
15
|
+
* @permissions schedule.create
|
|
16
|
+
*/
|
|
17
|
+
create(body, headers) {
|
|
18
|
+
return this.client.post(this.basePath, body, headers);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Updates a schedule. Resolves to the stored record, without relationships. An unknown id
|
|
22
|
+
* answers 500.
|
|
23
|
+
* @permissions schedule.view OR schedule.update
|
|
24
|
+
*/
|
|
25
|
+
updateById(id, body, headers) {
|
|
26
|
+
return this.client.put(`${this.basePath}/${id}`, body, headers);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Deletes a schedule (soft delete). Resolves to `'OK'`; an unknown id answers 500.
|
|
30
|
+
* @permissions schedule.view OR schedule.destroy
|
|
31
|
+
*/
|
|
32
|
+
deleteById(id, headers) {
|
|
33
|
+
return this.client.delete(`${this.basePath}/${id}`, headers);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Deletes several schedules of the account. Ids that are not UUIDs, or of another account, are
|
|
37
|
+
* skipped in silence; always resolves to `'OK'`.
|
|
38
|
+
* @permissions schedule.destroy
|
|
39
|
+
*/
|
|
40
|
+
deleteMany(ids, headers) {
|
|
41
|
+
return this.client.request("DELETE", `${this.basePath}/many`, { where: { id: ids } }, headers);
|
|
42
|
+
}
|
|
8
43
|
};
|
|
9
44
|
|
|
10
45
|
//#endregion
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScheduleApi.mjs","names":[],"sources":["../../../src/apis/schedule/ScheduleApi.ts"],"sourcesContent":["import type { ApiClient } from '../../core/ApiClient'\nimport {
|
|
1
|
+
{"version":3,"file":"ScheduleApi.mjs","names":[],"sources":["../../../src/apis/schedule/ScheduleApi.ts"],"sourcesContent":["import type { ApiClient } from '../../core/ApiClient'\nimport { BaseReadApi } from '../../core/BaseReadApi'\nimport type {\n Schedule,\n ScheduleRecord,\n CreateSchedulePayload,\n UpdateSchedulePayload,\n} from './types'\n\n/**\n * Scheduled messages. Create answers no body and update answers the stored record, so this\n * class extends `BaseReadApi` and writes its own create/update/delete.\n */\nexport class ScheduleApi extends BaseReadApi<Schedule> {\n constructor(client: ApiClient) {\n super(client, '/schedule')\n }\n\n /**\n * Creates a schedule. Resolves with NO CONTENT: find it back with `getOne` (e.g. by\n * `contactId` and `scheduledAt`).\n * @permissions schedule.create\n */\n create(body: CreateSchedulePayload, headers?: Record<string, string>): Promise<void> {\n return this.client.post<void, CreateSchedulePayload>(this.basePath, body, headers)\n }\n\n /**\n * Updates a schedule. Resolves to the stored record, without relationships. An unknown id\n * answers 500.\n * @permissions schedule.view OR schedule.update\n */\n updateById(\n id: string,\n body: UpdateSchedulePayload,\n headers?: Record<string, string>,\n ): Promise<ScheduleRecord> {\n return this.client.put<ScheduleRecord, UpdateSchedulePayload>(\n `${this.basePath}/${id}`,\n body,\n headers,\n )\n }\n\n /**\n * Deletes a schedule (soft delete). Resolves to `'OK'`; an unknown id answers 500.\n * @permissions schedule.view OR schedule.destroy\n */\n deleteById(id: string, headers?: Record<string, string>): Promise<'OK'> {\n return this.client.delete<'OK'>(`${this.basePath}/${id}`, headers)\n }\n\n /**\n * Deletes several schedules of the account. Ids that are not UUIDs, or of another account, are\n * skipped in silence; always resolves to `'OK'`.\n * @permissions schedule.destroy\n */\n deleteMany(ids: string[], headers?: Record<string, string>): Promise<'OK'> {\n return this.client.request<'OK', { where: { id: string[] } }>(\n 'DELETE',\n `${this.basePath}/many`,\n { where: { id: ids } },\n headers,\n )\n }\n}\n"],"mappings":";;;;;;;AAaA,IAAa,cAAb,cAAiC,YAAsB;CACrD,YAAY,QAAmB;AAC7B,QAAM,QAAQ,YAAY;;;;;;;CAQ5B,OAAO,MAA6B,SAAiD;AACnF,SAAO,KAAK,OAAO,KAAkC,KAAK,UAAU,MAAM,QAAQ;;;;;;;CAQpF,WACE,IACA,MACA,SACyB;AACzB,SAAO,KAAK,OAAO,IACjB,GAAG,KAAK,SAAS,GAAG,MACpB,MACA,QACD;;;;;;CAOH,WAAW,IAAY,SAAiD;AACtE,SAAO,KAAK,OAAO,OAAa,GAAG,KAAK,SAAS,GAAG,MAAM,QAAQ;;;;;;;CAQpE,WAAW,KAAe,SAAiD;AACzE,SAAO,KAAK,OAAO,QACjB,UACA,GAAG,KAAK,SAAS,QACjB,EAAE,OAAO,EAAE,IAAI,KAAK,EAAE,EACtB,QACD"}
|
|
@@ -1,14 +1,26 @@
|
|
|
1
1
|
import type { Contact } from '../contacts/types';
|
|
2
2
|
import type { Department } from '../departments/types';
|
|
3
|
+
import type { File } from '../files/types';
|
|
3
4
|
import type { User } from '../users/types';
|
|
5
|
+
/** `scheduled` until the worker runs it; `error` and `not_sent` come with the `reason`. */
|
|
6
|
+
export type ScheduleStatus = 'scheduled' | 'done' | 'error' | 'not_sent';
|
|
4
7
|
export type Schedule = {
|
|
5
8
|
id: string;
|
|
6
|
-
status:
|
|
9
|
+
status: ScheduleStatus;
|
|
10
|
+
/**
|
|
11
|
+
* Why it was not sent: `ALREADY_TICKET_OPENED`, `DDD_BLOCKED`, `SERVICE_IS_NOT_ENABLED`,
|
|
12
|
+
* `CONTACT_IS_BLOCKED`, `CONTACT_NOT_EXISTS`, `HSM_LIMIT_EXCEEDED`, `HSM_IS_BLOCKED`,
|
|
13
|
+
* `SERVICE_IS_BLOCKED`, `INVALID_PAYLOAD`, a WhatsApp Business error code or
|
|
14
|
+
* `SCHEDULE_UNKNOWN_REASON`.
|
|
15
|
+
*/
|
|
7
16
|
reason: string | null;
|
|
8
|
-
message
|
|
17
|
+
/** For a WhatsApp Business template (`hsmId`), the message the server built from it. */
|
|
18
|
+
message: string | null;
|
|
9
19
|
notes: string;
|
|
10
|
-
openTicket: boolean;
|
|
11
|
-
notificateUser: boolean;
|
|
20
|
+
openTicket: boolean | null;
|
|
21
|
+
notificateUser: boolean | null;
|
|
22
|
+
/** Sends the message even when the contact already has an open ticket. */
|
|
23
|
+
sendWithOpenTicket: boolean | null;
|
|
12
24
|
extraOptions: Record<string, unknown> | null;
|
|
13
25
|
hsmId: string | null;
|
|
14
26
|
hsmFileId: string | null;
|
|
@@ -19,36 +31,71 @@ export type Schedule = {
|
|
|
19
31
|
accountId: string;
|
|
20
32
|
createdAt: string;
|
|
21
33
|
updatedAt: string;
|
|
22
|
-
deletedAt: string | null;
|
|
23
34
|
contact?: Contact;
|
|
24
35
|
department?: Department;
|
|
25
36
|
user?: User | null;
|
|
37
|
+
files?: File[];
|
|
38
|
+
/** The header media of the WhatsApp Business template. */
|
|
39
|
+
hsmFile?: File;
|
|
40
|
+
};
|
|
41
|
+
/** The schedule as stored, without relationships: what `updateById` resolves to. */
|
|
42
|
+
export type ScheduleRecord = Omit<Schedule, 'contact' | 'department' | 'user' | 'files' | 'hsmFile'> & {
|
|
43
|
+
deletedAt: string | null;
|
|
44
|
+
};
|
|
45
|
+
export type ScheduleRelationships = 'contact' | 'department' | 'user' | 'files' | 'hsmFile' | 'contact.service' | 'contact.person';
|
|
46
|
+
/** A new attachment. */
|
|
47
|
+
export type ScheduleNewFilePayload = {
|
|
48
|
+
base64: string;
|
|
49
|
+
name: string;
|
|
50
|
+
mimetype: string;
|
|
51
|
+
};
|
|
52
|
+
/** On update: a new attachment, or one to keep (`id`). */
|
|
53
|
+
export type ScheduleFilePayload = ScheduleNewFilePayload | {
|
|
54
|
+
id: string;
|
|
26
55
|
};
|
|
27
|
-
|
|
56
|
+
/**
|
|
57
|
+
* Another schedule of the connection less than 5 minutes apart answers 402
|
|
58
|
+
* (`Schedule time is already exist.`). A contact of another account answers 500.
|
|
59
|
+
*/
|
|
28
60
|
export type CreateSchedulePayload = {
|
|
29
61
|
scheduledAt: string;
|
|
30
62
|
contactId: string;
|
|
31
63
|
departmentId: string;
|
|
32
|
-
|
|
64
|
+
/** Up to 1024 characters. Optional for a WhatsApp Business template, built from `hsmId`. */
|
|
65
|
+
message?: string;
|
|
66
|
+
/**
|
|
67
|
+
* Up to 1024 characters. Required by the route only with `openTicket: true`, but the column is
|
|
68
|
+
* NOT NULL: send it always (an empty string is fine).
|
|
69
|
+
*/
|
|
33
70
|
notes: string;
|
|
34
|
-
openTicket
|
|
71
|
+
openTicket?: boolean;
|
|
35
72
|
notificateUser?: boolean;
|
|
73
|
+
sendWithOpenTicket?: boolean;
|
|
36
74
|
userId?: string;
|
|
37
75
|
hsmId?: string;
|
|
38
76
|
hsmFileId?: string;
|
|
39
77
|
extraOptions?: Record<string, unknown>;
|
|
78
|
+
/** New attachments only: the create drops `{ id }` items. */
|
|
79
|
+
files?: ScheduleNewFilePayload[];
|
|
40
80
|
};
|
|
81
|
+
/**
|
|
82
|
+
* Not partial: `scheduledAt`, `contactId` and `departmentId` are required on update too. The
|
|
83
|
+
* 5-minute conflict (402) is checked against the whole account.
|
|
84
|
+
*/
|
|
41
85
|
export type UpdateSchedulePayload = {
|
|
42
|
-
scheduledAt
|
|
43
|
-
contactId
|
|
44
|
-
departmentId
|
|
86
|
+
scheduledAt: string;
|
|
87
|
+
contactId: string;
|
|
88
|
+
departmentId: string;
|
|
45
89
|
userId?: string | null;
|
|
46
90
|
message?: string;
|
|
47
91
|
notes?: string;
|
|
48
92
|
openTicket?: boolean;
|
|
49
93
|
notificateUser?: boolean;
|
|
94
|
+
sendWithOpenTicket?: boolean;
|
|
50
95
|
hsmId?: string | null;
|
|
51
96
|
hsmFileId?: string | null;
|
|
52
97
|
extraOptions?: Record<string, unknown> | null;
|
|
98
|
+
/** Replaces the attachments: `{ id }` keeps one, `{ base64, ... }` adds one; omitted or `[]` removes all. */
|
|
99
|
+
files?: ScheduleFilePayload[];
|
|
53
100
|
};
|
|
54
101
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/apis/schedule/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA;AAE1C,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/apis/schedule/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,16 +9,39 @@ var TicketTopicsApi = class extends require_core_BaseCrudApi.BaseCrudApi {
|
|
|
9
9
|
this.unarchive = this.unarchive.bind(this);
|
|
10
10
|
}
|
|
11
11
|
/**
|
|
12
|
+
* Returns the first topic matching the query, or `null` when none match. Reads one item of the
|
|
13
|
+
* paginated list (instead of `paginate: false`), the only path where `departmentIds` and
|
|
14
|
+
* `includeNoDepartment` apply.
|
|
15
|
+
* @permissions ticketTopics.view
|
|
16
|
+
*/
|
|
17
|
+
async getOne(query, headers) {
|
|
18
|
+
return (await this.getMany({
|
|
19
|
+
...query,
|
|
20
|
+
paginate: true,
|
|
21
|
+
perPage: 1,
|
|
22
|
+
page: 1
|
|
23
|
+
}, headers))?.data?.[0] ?? null;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Deletes a ticket topic (soft delete). Resolves to `'OK'`; an unknown id answers 500.
|
|
27
|
+
* @permissions ticketTopics.view OR ticketTopics.destroy
|
|
28
|
+
*/
|
|
29
|
+
deleteById(id, headers) {
|
|
30
|
+
return super.deleteById(id, headers);
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
12
33
|
* Archives a ticket topic. Unlike most resources, ticket-topics archive through a
|
|
13
34
|
* dedicated endpoint (POST `${basePath}/${id}/archive`) rather than `updateById`.
|
|
14
|
-
*
|
|
35
|
+
* Resolves to the stored topic, without `departments`. A topic used in a bot answers 403;
|
|
36
|
+
* an unknown id answers 500.
|
|
37
|
+
* @permissions ticketTopics.archive
|
|
15
38
|
*/
|
|
16
39
|
archive(id, headers) {
|
|
17
40
|
return this.client.post(`${this.basePath}/${id}/archive`, { archive: true }, headers);
|
|
18
41
|
}
|
|
19
42
|
/**
|
|
20
43
|
* Restores a previously archived ticket topic via the same dedicated endpoint.
|
|
21
|
-
* @permissions
|
|
44
|
+
* @permissions ticketTopics.archive
|
|
22
45
|
*/
|
|
23
46
|
unarchive(id, headers) {
|
|
24
47
|
return this.client.post(`${this.basePath}/${id}/archive`, { archive: false }, headers);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TicketTopicsApi.cjs","names":["BaseCrudApi"],"sources":["../../../src/apis/ticketTopics/TicketTopicsApi.ts"],"sourcesContent":["import type { ApiClient } from '../../core/ApiClient'\nimport { BaseCrudApi } from '../../core/BaseCrudApi'\nimport type {
|
|
1
|
+
{"version":3,"file":"TicketTopicsApi.cjs","names":["BaseCrudApi"],"sources":["../../../src/apis/ticketTopics/TicketTopicsApi.ts"],"sourcesContent":["import type { ApiClient } from '../../core/ApiClient'\nimport { BaseCrudApi } from '../../core/BaseCrudApi'\nimport type {\n TicketTopic,\n TicketTopicListQuery,\n CreateTicketTopicPayload,\n UpdateTicketTopicPayload,\n} from './types'\n\nexport class TicketTopicsApi extends BaseCrudApi<\n TicketTopic,\n CreateTicketTopicPayload,\n UpdateTicketTopicPayload,\n TicketTopicListQuery,\n 'OK'\n> {\n constructor(client: ApiClient) {\n super(client, '/ticket-topics')\n this.archive = this.archive.bind(this)\n this.unarchive = this.unarchive.bind(this)\n }\n\n /**\n * Returns the first topic matching the query, or `null` when none match. Reads one item of the\n * paginated list (instead of `paginate: false`), the only path where `departmentIds` and\n * `includeNoDepartment` apply.\n * @permissions ticketTopics.view\n */\n override async getOne(\n query?: TicketTopicListQuery,\n headers?: Record<string, string>,\n ): Promise<TicketTopic | null> {\n const page = await this.getMany({ ...query, paginate: true, perPage: 1, page: 1 }, headers)\n return page?.data?.[0] ?? null\n }\n\n /**\n * Deletes a ticket topic (soft delete). Resolves to `'OK'`; an unknown id answers 500.\n * @permissions ticketTopics.view OR ticketTopics.destroy\n */\n override deleteById(id: string, headers?: Record<string, string>): Promise<'OK'> {\n return super.deleteById(id, headers)\n }\n\n /**\n * Archives a ticket topic. Unlike most resources, ticket-topics archive through a\n * dedicated endpoint (POST `${basePath}/${id}/archive`) rather than `updateById`.\n * Resolves to the stored topic, without `departments`. A topic used in a bot answers 403;\n * an unknown id answers 500.\n * @permissions ticketTopics.archive\n */\n archive(id: string, headers?: Record<string, string>): Promise<TicketTopic> {\n return this.client.post<TicketTopic>(\n `${this.basePath}/${id}/archive`,\n { archive: true },\n headers,\n )\n }\n\n /**\n * Restores a previously archived ticket topic via the same dedicated endpoint.\n * @permissions ticketTopics.archive\n */\n unarchive(id: string, headers?: Record<string, string>): Promise<TicketTopic> {\n return this.client.post<TicketTopic>(\n `${this.basePath}/${id}/archive`,\n { archive: false },\n headers,\n )\n }\n}\n"],"mappings":";;;;AASA,IAAa,kBAAb,cAAqCA,qCAMnC;CACA,YAAY,QAAmB;AAC7B,QAAM,QAAQ,iBAAiB;AAC/B,OAAK,UAAU,KAAK,QAAQ,KAAK,KAAK;AACtC,OAAK,YAAY,KAAK,UAAU,KAAK,KAAK;;;;;;;;CAS5C,MAAe,OACb,OACA,SAC6B;AAE7B,UADa,MAAM,KAAK,QAAQ;GAAE,GAAG;GAAO,UAAU;GAAM,SAAS;GAAG,MAAM;GAAG,EAAE,QAAQ,GAC9E,OAAO,MAAM;;;;;;CAO5B,AAAS,WAAW,IAAY,SAAiD;AAC/E,SAAO,MAAM,WAAW,IAAI,QAAQ;;;;;;;;;CAUtC,QAAQ,IAAY,SAAwD;AAC1E,SAAO,KAAK,OAAO,KACjB,GAAG,KAAK,SAAS,GAAG,GAAG,WACvB,EAAE,SAAS,MAAM,EACjB,QACD;;;;;;CAOH,UAAU,IAAY,SAAwD;AAC5E,SAAO,KAAK,OAAO,KACjB,GAAG,KAAK,SAAS,GAAG,GAAG,WACvB,EAAE,SAAS,OAAO,EAClB,QACD"}
|
|
@@ -1,17 +1,31 @@
|
|
|
1
1
|
import type { ApiClient } from '../../core/ApiClient';
|
|
2
2
|
import { BaseCrudApi } from '../../core/BaseCrudApi';
|
|
3
|
-
import type { TicketTopic, CreateTicketTopicPayload, UpdateTicketTopicPayload } from './types';
|
|
4
|
-
export declare class TicketTopicsApi extends BaseCrudApi<TicketTopic, CreateTicketTopicPayload, UpdateTicketTopicPayload> {
|
|
3
|
+
import type { TicketTopic, TicketTopicListQuery, CreateTicketTopicPayload, UpdateTicketTopicPayload } from './types';
|
|
4
|
+
export declare class TicketTopicsApi extends BaseCrudApi<TicketTopic, CreateTicketTopicPayload, UpdateTicketTopicPayload, TicketTopicListQuery, 'OK'> {
|
|
5
5
|
constructor(client: ApiClient);
|
|
6
|
+
/**
|
|
7
|
+
* Returns the first topic matching the query, or `null` when none match. Reads one item of the
|
|
8
|
+
* paginated list (instead of `paginate: false`), the only path where `departmentIds` and
|
|
9
|
+
* `includeNoDepartment` apply.
|
|
10
|
+
* @permissions ticketTopics.view
|
|
11
|
+
*/
|
|
12
|
+
getOne(query?: TicketTopicListQuery, headers?: Record<string, string>): Promise<TicketTopic | null>;
|
|
13
|
+
/**
|
|
14
|
+
* Deletes a ticket topic (soft delete). Resolves to `'OK'`; an unknown id answers 500.
|
|
15
|
+
* @permissions ticketTopics.view OR ticketTopics.destroy
|
|
16
|
+
*/
|
|
17
|
+
deleteById(id: string, headers?: Record<string, string>): Promise<'OK'>;
|
|
6
18
|
/**
|
|
7
19
|
* Archives a ticket topic. Unlike most resources, ticket-topics archive through a
|
|
8
20
|
* dedicated endpoint (POST `${basePath}/${id}/archive`) rather than `updateById`.
|
|
9
|
-
*
|
|
21
|
+
* Resolves to the stored topic, without `departments`. A topic used in a bot answers 403;
|
|
22
|
+
* an unknown id answers 500.
|
|
23
|
+
* @permissions ticketTopics.archive
|
|
10
24
|
*/
|
|
11
25
|
archive(id: string, headers?: Record<string, string>): Promise<TicketTopic>;
|
|
12
26
|
/**
|
|
13
27
|
* Restores a previously archived ticket topic via the same dedicated endpoint.
|
|
14
|
-
* @permissions
|
|
28
|
+
* @permissions ticketTopics.archive
|
|
15
29
|
*/
|
|
16
30
|
unarchive(id: string, headers?: Record<string, string>): Promise<TicketTopic>;
|
|
17
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TicketTopicsApi.d.ts","sourceRoot":"","sources":["../../../src/apis/ticketTopics/TicketTopicsApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"TicketTopicsApi.d.ts","sourceRoot":"","sources":["../../../src/apis/ticketTopics/TicketTopicsApi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACpD,OAAO,KAAK,EACV,WAAW,EACX,oBAAoB,EACpB,wBAAwB,EACxB,wBAAwB,EACzB,MAAM,SAAS,CAAA;AAEhB,qBAAa,eAAgB,SAAQ,WAAW,CAC9C,WAAW,EACX,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,IAAI,CACL;gBACa,MAAM,EAAE,SAAS;IAM7B;;;;;OAKG;IACY,MAAM,CACnB,KAAK,CAAC,EAAE,oBAAoB,EAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAK9B;;;OAGG;IACM,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhF;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ3E;;;OAGG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;CAO9E"}
|
|
@@ -8,16 +8,39 @@ var TicketTopicsApi = class extends BaseCrudApi {
|
|
|
8
8
|
this.unarchive = this.unarchive.bind(this);
|
|
9
9
|
}
|
|
10
10
|
/**
|
|
11
|
+
* Returns the first topic matching the query, or `null` when none match. Reads one item of the
|
|
12
|
+
* paginated list (instead of `paginate: false`), the only path where `departmentIds` and
|
|
13
|
+
* `includeNoDepartment` apply.
|
|
14
|
+
* @permissions ticketTopics.view
|
|
15
|
+
*/
|
|
16
|
+
async getOne(query, headers) {
|
|
17
|
+
return (await this.getMany({
|
|
18
|
+
...query,
|
|
19
|
+
paginate: true,
|
|
20
|
+
perPage: 1,
|
|
21
|
+
page: 1
|
|
22
|
+
}, headers))?.data?.[0] ?? null;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Deletes a ticket topic (soft delete). Resolves to `'OK'`; an unknown id answers 500.
|
|
26
|
+
* @permissions ticketTopics.view OR ticketTopics.destroy
|
|
27
|
+
*/
|
|
28
|
+
deleteById(id, headers) {
|
|
29
|
+
return super.deleteById(id, headers);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
11
32
|
* Archives a ticket topic. Unlike most resources, ticket-topics archive through a
|
|
12
33
|
* dedicated endpoint (POST `${basePath}/${id}/archive`) rather than `updateById`.
|
|
13
|
-
*
|
|
34
|
+
* Resolves to the stored topic, without `departments`. A topic used in a bot answers 403;
|
|
35
|
+
* an unknown id answers 500.
|
|
36
|
+
* @permissions ticketTopics.archive
|
|
14
37
|
*/
|
|
15
38
|
archive(id, headers) {
|
|
16
39
|
return this.client.post(`${this.basePath}/${id}/archive`, { archive: true }, headers);
|
|
17
40
|
}
|
|
18
41
|
/**
|
|
19
42
|
* Restores a previously archived ticket topic via the same dedicated endpoint.
|
|
20
|
-
* @permissions
|
|
43
|
+
* @permissions ticketTopics.archive
|
|
21
44
|
*/
|
|
22
45
|
unarchive(id, headers) {
|
|
23
46
|
return this.client.post(`${this.basePath}/${id}/archive`, { archive: false }, headers);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TicketTopicsApi.mjs","names":[],"sources":["../../../src/apis/ticketTopics/TicketTopicsApi.ts"],"sourcesContent":["import type { ApiClient } from '../../core/ApiClient'\nimport { BaseCrudApi } from '../../core/BaseCrudApi'\nimport type {
|
|
1
|
+
{"version":3,"file":"TicketTopicsApi.mjs","names":[],"sources":["../../../src/apis/ticketTopics/TicketTopicsApi.ts"],"sourcesContent":["import type { ApiClient } from '../../core/ApiClient'\nimport { BaseCrudApi } from '../../core/BaseCrudApi'\nimport type {\n TicketTopic,\n TicketTopicListQuery,\n CreateTicketTopicPayload,\n UpdateTicketTopicPayload,\n} from './types'\n\nexport class TicketTopicsApi extends BaseCrudApi<\n TicketTopic,\n CreateTicketTopicPayload,\n UpdateTicketTopicPayload,\n TicketTopicListQuery,\n 'OK'\n> {\n constructor(client: ApiClient) {\n super(client, '/ticket-topics')\n this.archive = this.archive.bind(this)\n this.unarchive = this.unarchive.bind(this)\n }\n\n /**\n * Returns the first topic matching the query, or `null` when none match. Reads one item of the\n * paginated list (instead of `paginate: false`), the only path where `departmentIds` and\n * `includeNoDepartment` apply.\n * @permissions ticketTopics.view\n */\n override async getOne(\n query?: TicketTopicListQuery,\n headers?: Record<string, string>,\n ): Promise<TicketTopic | null> {\n const page = await this.getMany({ ...query, paginate: true, perPage: 1, page: 1 }, headers)\n return page?.data?.[0] ?? null\n }\n\n /**\n * Deletes a ticket topic (soft delete). Resolves to `'OK'`; an unknown id answers 500.\n * @permissions ticketTopics.view OR ticketTopics.destroy\n */\n override deleteById(id: string, headers?: Record<string, string>): Promise<'OK'> {\n return super.deleteById(id, headers)\n }\n\n /**\n * Archives a ticket topic. Unlike most resources, ticket-topics archive through a\n * dedicated endpoint (POST `${basePath}/${id}/archive`) rather than `updateById`.\n * Resolves to the stored topic, without `departments`. A topic used in a bot answers 403;\n * an unknown id answers 500.\n * @permissions ticketTopics.archive\n */\n archive(id: string, headers?: Record<string, string>): Promise<TicketTopic> {\n return this.client.post<TicketTopic>(\n `${this.basePath}/${id}/archive`,\n { archive: true },\n headers,\n )\n }\n\n /**\n * Restores a previously archived ticket topic via the same dedicated endpoint.\n * @permissions ticketTopics.archive\n */\n unarchive(id: string, headers?: Record<string, string>): Promise<TicketTopic> {\n return this.client.post<TicketTopic>(\n `${this.basePath}/${id}/archive`,\n { archive: false },\n headers,\n )\n }\n}\n"],"mappings":";;;AASA,IAAa,kBAAb,cAAqC,YAMnC;CACA,YAAY,QAAmB;AAC7B,QAAM,QAAQ,iBAAiB;AAC/B,OAAK,UAAU,KAAK,QAAQ,KAAK,KAAK;AACtC,OAAK,YAAY,KAAK,UAAU,KAAK,KAAK;;;;;;;;CAS5C,MAAe,OACb,OACA,SAC6B;AAE7B,UADa,MAAM,KAAK,QAAQ;GAAE,GAAG;GAAO,UAAU;GAAM,SAAS;GAAG,MAAM;GAAG,EAAE,QAAQ,GAC9E,OAAO,MAAM;;;;;;CAO5B,AAAS,WAAW,IAAY,SAAiD;AAC/E,SAAO,MAAM,WAAW,IAAI,QAAQ;;;;;;;;;CAUtC,QAAQ,IAAY,SAAwD;AAC1E,SAAO,KAAK,OAAO,KACjB,GAAG,KAAK,SAAS,GAAG,GAAG,WACvB,EAAE,SAAS,MAAM,EACjB,QACD;;;;;;CAOH,UAAU,IAAY,SAAwD;AAC5E,SAAO,KAAK,OAAO,KACjB,GAAG,KAAK,SAAS,GAAG,GAAG,WACvB,EAAE,SAAS,OAAO,EAClB,QACD"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { ListQuery } from '../../core/types';
|
|
2
|
+
import type { Department } from '../departments/types';
|
|
1
3
|
export type TicketTopic = {
|
|
2
4
|
id: string;
|
|
3
5
|
name: string;
|
|
@@ -6,11 +8,30 @@ export type TicketTopic = {
|
|
|
6
8
|
createdAt: string;
|
|
7
9
|
updatedAt: string;
|
|
8
10
|
deletedAt: string | null;
|
|
11
|
+
/** Always comes in the paginated `getMany`; elsewhere only with `include`. Empty = all departments. */
|
|
12
|
+
departments?: Department[];
|
|
13
|
+
};
|
|
14
|
+
export type TicketTopicRelationships = 'departments';
|
|
15
|
+
/**
|
|
16
|
+
* Department filters of the paginated `getMany` and of `getOne`. `getMany({ paginate: false })`
|
|
17
|
+
* ignores them in silence (the route reads them only on the paginated path).
|
|
18
|
+
*/
|
|
19
|
+
export type TicketTopicListQuery = ListQuery<TicketTopic> & {
|
|
20
|
+
/** Topics linked to any of these departments. */
|
|
21
|
+
departmentIds?: string | string[];
|
|
22
|
+
/** Also (or only) the topics linked to no department. Only with the default `'json'` query format. */
|
|
23
|
+
includeNoDepartment?: boolean;
|
|
9
24
|
};
|
|
10
25
|
export type CreateTicketTopicPayload = {
|
|
26
|
+
/** Unique in the account (409, unless the account allows duplicate names); trimmed. */
|
|
11
27
|
name: string;
|
|
28
|
+
/** Department ids; `[]` = all departments. Required: a missing list answers 500 after creating the topic. */
|
|
29
|
+
departments: string[];
|
|
12
30
|
};
|
|
13
31
|
export type UpdateTicketTopicPayload = {
|
|
14
|
-
|
|
32
|
+
/** Required on update too. */
|
|
33
|
+
name: string;
|
|
34
|
+
/** Department ids, replacing the current ones; omitted keeps them. */
|
|
35
|
+
departments?: string[];
|
|
15
36
|
};
|
|
16
37
|
//# sourceMappingURL=types.d.ts.map
|