@ikatec/digisac-api-sdk 4.5.0 → 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/permissions/types.d.ts +1 -1
- package/dist/apis/permissions/types.d.ts.map +1 -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/apis/tickets/types.d.ts +37 -1
- package/dist/apis/tickets/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 +171 -1
- package/src/apis/permissions/types.ts +10 -4
- 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/apis/tickets/types.ts +40 -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,5 +1,6 @@
|
|
|
1
1
|
import type { Contact } from '../contacts/types'
|
|
2
2
|
import type { Department } from '../departments/types'
|
|
3
|
+
import type { Message } from '../messages/types'
|
|
3
4
|
import type { Service } from '../services/types'
|
|
4
5
|
import type { User } from '../users/types'
|
|
5
6
|
|
|
@@ -23,6 +24,43 @@ export type TicketMetrics = {
|
|
|
23
24
|
isActiveTicket?: boolean
|
|
24
25
|
}
|
|
25
26
|
|
|
27
|
+
export type TicketTransferAction = 'opened' | 'transferred' | 'closed'
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* A step of the history of a ticket (opening, transfer, closing), as the `ticketTransfers` include of
|
|
31
|
+
* `GET /tickets/{id}` answers it. `byUserId` is who performed the step (null when there is no user, e.g. a bot).
|
|
32
|
+
*
|
|
33
|
+
* Inside `ticketTransfers`, the route whitelist only accepts `byUser`, `fromUser`, `toUser`, `fromDepartment` and
|
|
34
|
+
* `toDepartment`: `transferredMessage`, `firstMessage` and `lastMessage` are dropped in silence and come as `null`.
|
|
35
|
+
*/
|
|
36
|
+
export type TicketTransfer = {
|
|
37
|
+
id: string
|
|
38
|
+
action: TicketTransferAction | null
|
|
39
|
+
comments: string | null
|
|
40
|
+
fromDistribution: boolean
|
|
41
|
+
accountId: string
|
|
42
|
+
ticketId: string
|
|
43
|
+
byUserId: string | null
|
|
44
|
+
fromUserId: string | null
|
|
45
|
+
toUserId: string | null
|
|
46
|
+
fromDepartmentId: string | null
|
|
47
|
+
toDepartmentId: string | null
|
|
48
|
+
transferredMessageId: string | null
|
|
49
|
+
firstMessageId: string | null
|
|
50
|
+
lastMessageId: string | null
|
|
51
|
+
createdAt: string
|
|
52
|
+
updatedAt: string
|
|
53
|
+
// relationships
|
|
54
|
+
byUser?: User | null
|
|
55
|
+
fromUser?: User | null
|
|
56
|
+
toUser?: User | null
|
|
57
|
+
fromDepartment?: Department | null
|
|
58
|
+
toDepartment?: Department | null
|
|
59
|
+
transferredMessage?: Message | null
|
|
60
|
+
firstMessage?: Message | null
|
|
61
|
+
lastMessage?: Message | null
|
|
62
|
+
}
|
|
63
|
+
|
|
26
64
|
export type Ticket = {
|
|
27
65
|
id: string
|
|
28
66
|
isOpen: boolean
|
|
@@ -49,9 +87,10 @@ export type Ticket = {
|
|
|
49
87
|
department?: Department
|
|
50
88
|
user?: User | null
|
|
51
89
|
service?: Service | null
|
|
90
|
+
ticketTransfers?: TicketTransfer[]
|
|
52
91
|
}
|
|
53
92
|
|
|
54
|
-
export type TicketRelationships = 'contact' | 'department' | 'user' | 'service'
|
|
93
|
+
export type TicketRelationships = 'contact' | 'department' | 'user' | 'service' | 'ticketTransfers'
|
|
55
94
|
|
|
56
95
|
export type CreateTicketPayload = {
|
|
57
96
|
contactId: string
|
package/src/core/BaseCrudApi.ts
CHANGED
|
@@ -14,15 +14,19 @@ export type {
|
|
|
14
14
|
CrudApi,
|
|
15
15
|
} from './types'
|
|
16
16
|
|
|
17
|
-
/**
|
|
17
|
+
/**
|
|
18
|
+
* Generic CRUD resource: the reads of `BaseReadApi` plus `create`, `updateById` and `deleteById`.
|
|
19
|
+
* `TDeleteResponse` is what `deleteById` resolves to (most routes answer the text `'OK'`).
|
|
20
|
+
*/
|
|
18
21
|
export class BaseCrudApi<
|
|
19
22
|
TResponse,
|
|
20
23
|
TCreate,
|
|
21
24
|
TUpdate = TCreate,
|
|
22
25
|
TQuery extends ListQuery<TResponse> = ListQuery<TResponse>,
|
|
26
|
+
TDeleteResponse = TResponse,
|
|
23
27
|
>
|
|
24
28
|
extends BaseReadApi<TResponse, TQuery>
|
|
25
|
-
implements CrudApi<TResponse, TCreate, TUpdate, TQuery>
|
|
29
|
+
implements CrudApi<TResponse, TCreate, TUpdate, TQuery, TDeleteResponse>
|
|
26
30
|
{
|
|
27
31
|
/**
|
|
28
32
|
* Creates a new resource.
|
|
@@ -42,9 +46,9 @@ export class BaseCrudApi<
|
|
|
42
46
|
|
|
43
47
|
/**
|
|
44
48
|
* Deletes a resource by ID.
|
|
45
|
-
* @permissions $resourceName.
|
|
49
|
+
* @permissions $resourceName.destroy
|
|
46
50
|
*/
|
|
47
|
-
deleteById(id: string, headers?: Record<string, string>): Promise<
|
|
48
|
-
return this.client.delete<
|
|
51
|
+
deleteById(id: string, headers?: Record<string, string>): Promise<TDeleteResponse> {
|
|
52
|
+
return this.client.delete<TDeleteResponse>(`${this.basePath}/${id}`, headers)
|
|
49
53
|
}
|
|
50
54
|
}
|
package/src/core/types.ts
CHANGED
|
@@ -159,8 +159,9 @@ export type CrudApi<
|
|
|
159
159
|
TCreate,
|
|
160
160
|
TUpdate = TCreate,
|
|
161
161
|
TQuery extends ListQuery<TResponse> = ListQuery<TResponse>,
|
|
162
|
+
TDeleteResponse = TResponse,
|
|
162
163
|
> = HasGetMany<TResponse, TQuery> &
|
|
163
164
|
HasGetById<TResponse> &
|
|
164
165
|
HasCreate<TResponse, TCreate> &
|
|
165
166
|
HasUpdateById<TResponse, TUpdate> &
|
|
166
|
-
HasDeleteById<
|
|
167
|
+
HasDeleteById<TDeleteResponse>
|
|
@@ -2,6 +2,7 @@ import { expectAssignable, expectNotAssignable, expectType } from 'tsd'
|
|
|
2
2
|
import type { WebhookPayload, WebhookEvent, WebhookEventPayloadMap, BotCommandData } from './index'
|
|
3
3
|
import type { Message, MessageRelationships } from '../apis/messages'
|
|
4
4
|
import type { Ticket, TicketRelationships } from '../apis/tickets'
|
|
5
|
+
import type { BotApiSignalData, BotContexts } from '../apis/bots'
|
|
5
6
|
|
|
6
7
|
// ── WebhookPayload (generic) ─────────────────────────────────────────────────
|
|
7
8
|
|
|
@@ -37,6 +38,14 @@ declare const botPayload: WebhookPayload<'bot.command'>
|
|
|
37
38
|
expectType<BotCommandData>(botPayload.data)
|
|
38
39
|
expectAssignable<{ id: string; command: string }>(botPayload.data)
|
|
39
40
|
|
|
41
|
+
// ── bot.* deliver the stored bot, with the contexts in the map form ──────────
|
|
42
|
+
|
|
43
|
+
declare const botCreated: WebhookPayload<'bot.created'>
|
|
44
|
+
expectType<BotContexts>(botCreated.data.contexts)
|
|
45
|
+
|
|
46
|
+
declare const apiSignal: WebhookPayload<'bot.api-signal'>
|
|
47
|
+
expectType<BotApiSignalData>(apiSignal.data)
|
|
48
|
+
|
|
40
49
|
// ── invalid events are rejected ──────────────────────────────────────────────
|
|
41
50
|
|
|
42
51
|
expectNotAssignable<WebhookEvent>('message.deleted')
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { BotApiSignalData, BotRecord } from '../apis/bots'
|
|
2
2
|
import type { Campaign, CampaignRelationships } from '../apis/campaigns'
|
|
3
3
|
import type { Contact, ContactRelationships } from '../apis/contacts'
|
|
4
4
|
import type { Department, DepartmentRelationships } from '../apis/departments'
|
|
@@ -103,13 +103,13 @@ export interface WebhookEventPayloadMap {
|
|
|
103
103
|
'role.created': Omit<Role, RoleRelationships>
|
|
104
104
|
'role.updated': Omit<Role, RoleRelationships>
|
|
105
105
|
'role.destroyed': Omit<Role, RoleRelationships>
|
|
106
|
-
'bot.created':
|
|
107
|
-
'bot.updated':
|
|
108
|
-
'bot.destroyed':
|
|
106
|
+
'bot.created': BotRecord
|
|
107
|
+
'bot.updated': BotRecord
|
|
108
|
+
'bot.destroyed': BotRecord
|
|
109
109
|
'bot.command': BotCommandData
|
|
110
|
-
'bot.enter-context':
|
|
111
|
-
'bot.leave-context':
|
|
112
|
-
'bot.api-signal':
|
|
110
|
+
'bot.enter-context': BotRecord
|
|
111
|
+
'bot.leave-context': BotRecord
|
|
112
|
+
'bot.api-signal': BotApiSignalData
|
|
113
113
|
'quickReplies.created': Omit<QuickReply, QuickReplyRelationships>
|
|
114
114
|
'quickReplies.updated': Omit<QuickReply, QuickReplyRelationships>
|
|
115
115
|
'quickReplies.destroyed': Omit<QuickReply, QuickReplyRelationships>
|