@webitel/api-services 1.0.10 → 1.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/package.json +1 -1
  2. package/src/api/clients/__tests__/wireParamsCoverage.spec.ts +286 -0
  3. package/src/api/clients/activeCalls/activeCalls.ts +72 -0
  4. package/src/api/clients/agentPauseCauses/agentPauseCauses.ts +182 -0
  5. package/src/api/clients/agentSkills/agentSkills.ts +193 -0
  6. package/src/api/clients/agents/__tests__/agents.wireParams.spec.ts +51 -0
  7. package/src/api/clients/agents/agents.ts +203 -18
  8. package/src/api/clients/auditForms/auditForms.ts +6 -2
  9. package/src/api/clients/auditForms/auditRates.ts +91 -0
  10. package/src/api/clients/backendProfiles/backendProfiles.ts +194 -0
  11. package/src/api/clients/buckets/buckets.ts +21 -25
  12. package/src/api/clients/callHistory/callAnnotations.ts +91 -0
  13. package/src/api/clients/callHistory/callHistory.ts +76 -7
  14. package/src/api/clients/casePriorities/__tests__/casePriorities.spec.ts +50 -0
  15. package/src/api/clients/casePriorities/casePriorities.ts +25 -41
  16. package/src/api/clients/caseStatusConditions/caseStatusConditions.ts +19 -29
  17. package/src/api/clients/caseStatuses/caseStatuses.ts +10 -21
  18. package/src/api/clients/catalog/catalog.ts +2 -8
  19. package/src/api/clients/changelogs/changelogs.ts +8 -0
  20. package/src/api/clients/chatplans/chatplans.ts +173 -0
  21. package/src/api/clients/cognitiveProfiles/cognitiveProfiles.ts +209 -0
  22. package/src/api/clients/communications/communications.ts +38 -42
  23. package/src/api/clients/dialplans/dialplans.ts +197 -0
  24. package/src/api/clients/emailProfiles/emailProfiles.ts +222 -0
  25. package/src/api/clients/fileServices/fileServices.ts +7 -2
  26. package/src/api/clients/flows/flow.ts +54 -43
  27. package/src/api/clients/fts/fts.ts +61 -0
  28. package/src/api/clients/history/transcript/callTranscript.ts +10 -20
  29. package/src/api/clients/importTemplates/importTemplates.ts +180 -0
  30. package/src/api/clients/index.ts +30 -0
  31. package/src/api/clients/lists/blacklistNumbers.ts +155 -0
  32. package/src/api/clients/lists/blacklists.ts +20 -25
  33. package/src/api/clients/logs/logs.ts +157 -0
  34. package/src/api/clients/media/media.ts +19 -15
  35. package/src/api/clients/object/object.ts +3 -14
  36. package/src/api/clients/outboundResourceGroups/outboundResourceGroups.ts +187 -0
  37. package/src/api/clients/outboundResourceGroups/resourcesInGroup.ts +169 -0
  38. package/src/api/clients/outboundResources/outboundResources.ts +225 -0
  39. package/src/api/clients/outboundResources/resourceDisplays.ts +165 -0
  40. package/src/api/clients/pauseTemplates/pauseTemplates.ts +203 -0
  41. package/src/api/clients/queues/__tests__/queueLogs.spec.ts +3 -3
  42. package/src/api/clients/queues/__tests__/queueMembers.spec.ts +4 -4
  43. package/src/api/clients/queues/queueLogs.ts +8 -3
  44. package/src/api/clients/queues/queueMembers.ts +3 -3
  45. package/src/api/clients/queues/queues.ts +52 -0
  46. package/src/api/clients/regions/regions.ts +21 -25
  47. package/src/api/clients/schemaVariables/schemaVariables.ts +167 -0
  48. package/src/api/clients/shiftTemplates/shiftTemplates.ts +176 -0
  49. package/src/api/clients/skills/skillAgents.ts +190 -0
  50. package/src/api/clients/skills/skills.ts +21 -25
  51. package/src/api/clients/storagePolicies/storagePolicies.ts +270 -0
  52. package/src/api/clients/teamHooks/teamHooks.ts +195 -0
  53. package/src/api/clients/teamTriggers/agentTriggers.ts +77 -0
  54. package/src/api/clients/teamTriggers/teamFlows.ts +194 -0
  55. package/src/api/clients/teams/teams.ts +31 -31
  56. package/src/api/clients/triggers/triggerJobs.ts +63 -0
  57. package/src/api/clients/triggers/triggers.ts +266 -0
  58. package/src/api/clients/userSettings/userSettings.ts +8 -9
  59. package/src/api/clients/users/users.ts +2 -0
  60. package/src/api/clients/workingConditions/workingConditions.ts +184 -0
  61. package/src/api/clients/workspaceWidgets/workspaceWidgets.ts +73 -0
  62. package/src/api/clients//321/201ontacts/contactChatMessagesHistory.ts +15 -26
  63. package/types/.tsbuildinfo +1 -1
  64. package/types/api/clients/activeCalls/activeCalls.d.ts +7 -0
  65. package/types/api/clients/agentPauseCauses/agentPauseCauses.d.ts +21 -0
  66. package/types/api/clients/agentSkills/agentSkills.d.ts +12 -0
  67. package/types/api/clients/agents/agents.d.ts +23 -2
  68. package/types/api/clients/auditForms/auditForms.d.ts +7 -0
  69. package/types/api/clients/auditForms/auditRates.d.ts +10 -0
  70. package/types/api/clients/backendProfiles/backendProfiles.d.ts +21 -0
  71. package/types/api/clients/callHistory/callAnnotations.d.ts +12 -0
  72. package/types/api/clients/callHistory/callHistory.d.ts +24 -3
  73. package/types/api/clients/chatplans/chatplans.d.ts +21 -0
  74. package/types/api/clients/cognitiveProfiles/cognitiveProfiles.d.ts +21 -0
  75. package/types/api/clients/dialplans/dialplans.d.ts +16 -0
  76. package/types/api/clients/emailProfiles/emailProfiles.d.ts +27 -0
  77. package/types/api/clients/fileServices/fileServices.d.ts +1 -1
  78. package/types/api/clients/fts/fts.d.ts +7 -0
  79. package/types/api/clients/importTemplates/importTemplates.d.ts +21 -0
  80. package/types/api/clients/index.d.ts +30 -0
  81. package/types/api/clients/lists/blacklistNumbers.d.ts +11 -0
  82. package/types/api/clients/logs/logs.d.ts +15 -0
  83. package/types/api/clients/outboundResourceGroups/outboundResourceGroups.d.ts +20 -0
  84. package/types/api/clients/outboundResourceGroups/resourcesInGroup.d.ts +11 -0
  85. package/types/api/clients/outboundResources/outboundResources.d.ts +21 -0
  86. package/types/api/clients/outboundResources/resourceDisplays.d.ts +11 -0
  87. package/types/api/clients/pauseTemplates/pauseTemplates.d.ts +20 -0
  88. package/types/api/clients/queues/queues.d.ts +5 -0
  89. package/types/api/clients/schemaVariables/schemaVariables.d.ts +21 -0
  90. package/types/api/clients/shiftTemplates/shiftTemplates.d.ts +20 -0
  91. package/types/api/clients/skills/skillAgents.d.ts +13 -0
  92. package/types/api/clients/storagePolicies/storagePolicies.d.ts +26 -0
  93. package/types/api/clients/teamHooks/teamHooks.d.ts +12 -0
  94. package/types/api/clients/teamTriggers/agentTriggers.d.ts +23 -0
  95. package/types/api/clients/teamTriggers/teamFlows.d.ts +12 -0
  96. package/types/api/clients/triggers/triggerJobs.d.ts +7 -0
  97. package/types/api/clients/triggers/triggers.d.ts +22 -0
  98. package/types/api/clients/userSettings/userSettings.d.ts +2 -2
  99. package/types/api/clients/workingConditions/workingConditions.d.ts +20 -0
  100. package/types/api/clients/workspaceWidgets/workspaceWidgets.d.ts +3 -0
@@ -0,0 +1,194 @@
1
+ import { getTeamTriggerService } from '../../../gen-wire';
2
+ import { getDefaultGetListResponse, getDefaultGetParams } from '../../defaults';
3
+ import {
4
+ applyTransform,
5
+ camelToSnake,
6
+ merge,
7
+ mergeEach,
8
+ notify,
9
+ sanitize,
10
+ snakeToCamel,
11
+ starToSearch,
12
+ } from '../../transformers';
13
+ import type {
14
+ ApiId,
15
+ ApiParams,
16
+ NestedAddItemParams,
17
+ NestedDeleteItemParams,
18
+ NestedGetItemParams,
19
+ NestedPatchItemParams,
20
+ NestedUpdateItemParams,
21
+ } from '../_shared/types';
22
+
23
+ const fieldsToSend = [
24
+ 'name',
25
+ 'schema',
26
+ 'enabled',
27
+ 'description',
28
+ ];
29
+
30
+ const preRequestHandler = (parentId: ApiId) => (item: ApiParams) => ({
31
+ ...item,
32
+ teamId: parentId,
33
+ });
34
+
35
+ const getTeamFlowsList = async (params: ApiParams) => {
36
+ const defaultObject = {
37
+ enabled: false,
38
+ };
39
+
40
+ const { page, size, search, sort, fields, id, enabled, parentId } =
41
+ applyTransform(params, [
42
+ merge(getDefaultGetParams()),
43
+ starToSearch('search'),
44
+ ]);
45
+
46
+ try {
47
+ const response = await getTeamTriggerService().searchTeamTrigger(
48
+ String(parentId),
49
+ {
50
+ page,
51
+ size,
52
+ // the generated param is `q`; `search` is what the datalist store sends
53
+ q: search,
54
+ sort,
55
+ fields,
56
+ enabled,
57
+ id,
58
+ },
59
+ );
60
+ const { items, next } = applyTransform(response.data, [
61
+ snakeToCamel(),
62
+ merge(getDefaultGetListResponse()),
63
+ ]);
64
+ return {
65
+ items: applyTransform(items, [
66
+ mergeEach(defaultObject),
67
+ ]),
68
+ next,
69
+ };
70
+ } catch (err) {
71
+ throw applyTransform(err, [
72
+ notify,
73
+ ]);
74
+ }
75
+ };
76
+
77
+ const getTeamFlow = async ({ parentId, itemId: id }: NestedGetItemParams) => {
78
+ const defaultObject = {
79
+ name: '',
80
+ description: '',
81
+ enabled: false,
82
+ schema: {},
83
+ };
84
+
85
+ try {
86
+ const response = await getTeamTriggerService().readTeamTrigger(
87
+ String(parentId),
88
+ Number(id),
89
+ );
90
+ return applyTransform(response.data, [
91
+ snakeToCamel(),
92
+ merge(defaultObject),
93
+ ]);
94
+ } catch (err) {
95
+ throw applyTransform(err, [
96
+ notify,
97
+ ]);
98
+ }
99
+ };
100
+
101
+ const addTeamFlow = async ({ parentId, itemInstance }: NestedAddItemParams) => {
102
+ const item = applyTransform(itemInstance, [
103
+ preRequestHandler(parentId),
104
+ sanitize(fieldsToSend),
105
+ camelToSnake(),
106
+ ]);
107
+ try {
108
+ const response = await getTeamTriggerService().createTeamTrigger(
109
+ String(parentId),
110
+ item,
111
+ );
112
+ return applyTransform(response.data, [
113
+ snakeToCamel(),
114
+ ]);
115
+ } catch (err) {
116
+ throw applyTransform(err, [
117
+ notify,
118
+ ]);
119
+ }
120
+ };
121
+
122
+ const patchTeamFlow = async ({
123
+ parentId,
124
+ changes,
125
+ id,
126
+ }: NestedPatchItemParams) => {
127
+ const body = applyTransform(changes, [
128
+ sanitize(fieldsToSend),
129
+ camelToSnake(),
130
+ ]);
131
+ try {
132
+ const response = await getTeamTriggerService().patchTeamTrigger(
133
+ String(parentId),
134
+ Number(id),
135
+ body,
136
+ );
137
+ return applyTransform(response.data, [
138
+ snakeToCamel(),
139
+ ]);
140
+ } catch (err) {
141
+ throw applyTransform(err, [
142
+ notify,
143
+ ]);
144
+ }
145
+ };
146
+
147
+ const updateTeamFlow = async ({
148
+ parentId,
149
+ itemInstance,
150
+ itemId: id,
151
+ }: NestedUpdateItemParams) => {
152
+ const item = applyTransform(itemInstance, [
153
+ preRequestHandler(parentId),
154
+ sanitize(fieldsToSend),
155
+ camelToSnake(),
156
+ ]);
157
+ try {
158
+ const response = await getTeamTriggerService().updateTeamTrigger(
159
+ String(parentId),
160
+ Number(id),
161
+ item,
162
+ );
163
+ return applyTransform(response.data, [
164
+ snakeToCamel(),
165
+ ]);
166
+ } catch (err) {
167
+ throw applyTransform(err, [
168
+ notify,
169
+ ]);
170
+ }
171
+ };
172
+
173
+ const deleteTeamFlow = async ({ parentId, id }: NestedDeleteItemParams) => {
174
+ try {
175
+ const response = await getTeamTriggerService().deleteTeamTrigger(
176
+ String(parentId),
177
+ Number(id),
178
+ );
179
+ return applyTransform(response.data, []);
180
+ } catch (err) {
181
+ throw applyTransform(err, [
182
+ notify,
183
+ ]);
184
+ }
185
+ };
186
+
187
+ export const TeamFlowsAPI = {
188
+ getList: getTeamFlowsList,
189
+ get: getTeamFlow,
190
+ add: addTeamFlow,
191
+ patch: patchTeamFlow,
192
+ update: updateTeamFlow,
193
+ delete: deleteTeamFlow,
194
+ };
@@ -1,10 +1,5 @@
1
- import { AgentTeamServiceApiFactory } from 'webitel-sdk';
2
- import {
3
- getDefaultGetListResponse,
4
- getDefaultGetParams,
5
- getDefaultInstance,
6
- getDefaultOpenAPIConfig,
7
- } from '../../defaults';
1
+ import { getAgentTeamService } from '../../../gen-wire';
2
+ import { getDefaultGetListResponse, getDefaultGetParams } from '../../defaults';
8
3
  import {
9
4
  applyTransform,
10
5
  camelToSnake,
@@ -22,11 +17,6 @@ import type {
22
17
  UpdateItemParams,
23
18
  } from '../_shared/types';
24
19
 
25
- const instance = getDefaultInstance();
26
- const configuration = getDefaultOpenAPIConfig();
27
-
28
- const teamService = AgentTeamServiceApiFactory(configuration, '', instance);
29
-
30
20
  const fieldsToSend = [
31
21
  'name',
32
22
  'description',
@@ -38,26 +28,33 @@ const fieldsToSend = [
38
28
  'taskAcceptTimeout',
39
29
  'callTimeout',
40
30
  'inviteChatTimeout',
31
+ 'screenControl',
41
32
  ];
42
33
 
43
34
  const getTeamsList = async (params: ApiParams) => {
44
- const { page, size, search, sort, fields, id, strategy, adminId } =
45
- applyTransform(params, [
46
- merge(getDefaultGetParams()),
47
- starToSearch('search'),
48
- ]);
35
+ const listFieldsToSend = [
36
+ 'page',
37
+ 'size',
38
+ 'q',
39
+ 'sort',
40
+ 'fields',
41
+ 'id',
42
+ 'strategy',
43
+ 'admin_id',
44
+ ];
45
+ const requestParams = applyTransform(params, [
46
+ merge(getDefaultGetParams()),
47
+ starToSearch('search'),
48
+ camelToSnake(),
49
+ (params) => ({
50
+ ...params,
51
+ q: params.search,
52
+ }),
53
+ sanitize(listFieldsToSend),
54
+ ]);
49
55
 
50
56
  try {
51
- const response = await teamService.searchAgentTeam(
52
- page,
53
- size,
54
- search,
55
- sort,
56
- fields,
57
- id,
58
- strategy,
59
- adminId,
60
- );
57
+ const response = await getAgentTeamService().searchAgentTeam(requestParams);
61
58
  const { items, next } = applyTransform(response.data, [
62
59
  snakeToCamel(),
63
60
  merge(getDefaultGetListResponse()),
@@ -90,7 +87,7 @@ const getTeam = async ({ itemId: id }: GetItemParams) => {
90
87
  };
91
88
 
92
89
  try {
93
- const response = await teamService.readAgentTeam(String(id));
90
+ const response = await getAgentTeamService().readAgentTeam(String(id));
94
91
  return applyTransform(response.data, [
95
92
  snakeToCamel(),
96
93
  merge(defaultObject),
@@ -108,7 +105,7 @@ const addTeam = async ({ itemInstance }: AddItemParams) => {
108
105
  camelToSnake(),
109
106
  ]);
110
107
  try {
111
- const response = await teamService.createAgentTeam(item);
108
+ const response = await getAgentTeamService().createAgentTeam(item);
112
109
  return applyTransform(response.data, [
113
110
  snakeToCamel(),
114
111
  ]);
@@ -125,7 +122,10 @@ const updateTeam = async ({ itemInstance, itemId: id }: UpdateItemParams) => {
125
122
  camelToSnake(),
126
123
  ]);
127
124
  try {
128
- const response = await teamService.updateAgentTeam(String(id), item);
125
+ const response = await getAgentTeamService().updateAgentTeam(
126
+ String(id),
127
+ item,
128
+ );
129
129
  return applyTransform(response.data, [
130
130
  snakeToCamel(),
131
131
  ]);
@@ -138,7 +138,7 @@ const updateTeam = async ({ itemInstance, itemId: id }: UpdateItemParams) => {
138
138
 
139
139
  const deleteTeam = async ({ id }: DeleteItemParams) => {
140
140
  try {
141
- const response = await teamService.deleteAgentTeam(String(id));
141
+ const response = await getAgentTeamService().deleteAgentTeam(String(id));
142
142
  return applyTransform(response.data, []);
143
143
  } catch (err) {
144
144
  throw applyTransform(err, [
@@ -0,0 +1,63 @@
1
+ import { getTriggerService } from '../../../gen-wire';
2
+ import { getDefaultGetListResponse, getDefaultGetParams } from '../../defaults';
3
+ import {
4
+ applyTransform,
5
+ merge,
6
+ notify,
7
+ snakeToCamel,
8
+ starToSearch,
9
+ } from '../../transformers';
10
+ import type { ApiParams } from '../_shared/types';
11
+
12
+ const getTriggerJobsList = async (params: ApiParams) => {
13
+ const {
14
+ parentId,
15
+ page,
16
+ size,
17
+ q,
18
+ sort,
19
+ fields,
20
+ startedAtFrom,
21
+ startedAtTo,
22
+ durationFrom,
23
+ durationTo,
24
+ result,
25
+ } = applyTransform(params, [
26
+ merge(getDefaultGetParams()),
27
+ starToSearch('search'),
28
+ ]);
29
+
30
+ try {
31
+ const response = await getTriggerService().searchTriggerJob(
32
+ Number(parentId),
33
+ {
34
+ page,
35
+ size,
36
+ q,
37
+ sort,
38
+ fields,
39
+ 'started_at.from': startedAtFrom,
40
+ 'started_at.to': startedAtTo,
41
+ 'duration.from': durationFrom,
42
+ 'duration.to': durationTo,
43
+ state: result,
44
+ },
45
+ );
46
+ const { items, next } = applyTransform(response.data, [
47
+ snakeToCamel(),
48
+ merge(getDefaultGetListResponse()),
49
+ ]);
50
+ return {
51
+ items,
52
+ next,
53
+ };
54
+ } catch (err) {
55
+ throw applyTransform(err, [
56
+ notify,
57
+ ]);
58
+ }
59
+ };
60
+
61
+ export const TriggerJobsAPI = {
62
+ getList: getTriggerJobsList,
63
+ };
@@ -0,0 +1,266 @@
1
+ import deepCopy from 'deep-copy';
2
+ import { getTriggerService } from '../../../gen-wire';
3
+ import { getDefaultGetListResponse, getDefaultGetParams } from '../../defaults';
4
+ import {
5
+ applyTransform,
6
+ camelToSnake,
7
+ merge,
8
+ mergeEach,
9
+ notify,
10
+ sanitize,
11
+ snakeToCamel,
12
+ starToSearch,
13
+ } from '../../transformers';
14
+ import type {
15
+ AddItemParams,
16
+ ApiParams,
17
+ DeleteItemParams,
18
+ GetItemParams,
19
+ PatchItemParams,
20
+ UpdateItemParams,
21
+ } from '../_shared/types';
22
+
23
+ /**
24
+ * `variables` is a free-form string map; its keys are user data, not API
25
+ * fields, so the case transformers must leave them alone.
26
+ */
27
+ const doNotConvertKeys = [
28
+ 'variables',
29
+ ];
30
+
31
+ const fieldsToSend = [
32
+ 'description',
33
+ 'enabled',
34
+ 'id',
35
+ 'name',
36
+ 'schema',
37
+ 'timeout',
38
+ 'timezone',
39
+ 'type',
40
+ 'variables',
41
+ 'expression',
42
+ 'event',
43
+ 'object',
44
+ ];
45
+
46
+ /**
47
+ * The form binds `variables` as a `{ key, value }[]`, the API takes a map.
48
+ * `type`, `event` and `object` are bound as lookup objects; only the value
49
+ * goes over the wire.
50
+ */
51
+ const preRequestHandler = (item: ApiParams) => {
52
+ const copy = deepCopy(item);
53
+ copy.variables = copy.variables.reduce(
54
+ (variables: ApiParams, variable: ApiParams) => {
55
+ if (!variable.key) return variables;
56
+ variables[variable.key] = variable.value;
57
+ return variables;
58
+ },
59
+ {},
60
+ );
61
+ return {
62
+ ...copy,
63
+ type: copy?.type?.value ?? copy?.type,
64
+ event: copy?.event?.value ?? copy?.event,
65
+ object: copy?.object?.value ?? copy?.object,
66
+ };
67
+ };
68
+
69
+ const getTriggersList = async (params: ApiParams) => {
70
+ const listFieldsToSend = [
71
+ 'page',
72
+ 'size',
73
+ 'search',
74
+ 'sort',
75
+ 'fields',
76
+ 'id',
77
+ 'schemaId',
78
+ ];
79
+ const defaultObject = {
80
+ enabled: false,
81
+ };
82
+
83
+ const { page, size, search, sort, fields, id, schemaId } = applyTransform(
84
+ params,
85
+ [
86
+ merge(getDefaultGetParams()),
87
+ starToSearch('search'),
88
+ sanitize(listFieldsToSend),
89
+ ],
90
+ );
91
+
92
+ try {
93
+ const response = await getTriggerService().searchTrigger({
94
+ page,
95
+ size,
96
+ // the generated param is `q`; `search` is what the datalist store sends
97
+ q: search,
98
+ sort,
99
+ fields,
100
+ id,
101
+ schema_id: schemaId,
102
+ });
103
+ const { items, next } = applyTransform(response.data, [
104
+ snakeToCamel(doNotConvertKeys),
105
+ merge(getDefaultGetListResponse()),
106
+ ]);
107
+ return {
108
+ items: applyTransform(items, [
109
+ mergeEach(defaultObject),
110
+ ]),
111
+ next,
112
+ };
113
+ } catch (err) {
114
+ throw applyTransform(err, [
115
+ notify,
116
+ ]);
117
+ }
118
+ };
119
+
120
+ /**
121
+ * Returns `type`, `event` and `object` as raw enum values. Mapping them onto
122
+ * localized lookup entries is the caller's job — the labels are app-side i18n
123
+ * keys.
124
+ */
125
+ const getTrigger = async ({ itemId: id }: GetItemParams) => {
126
+ const defaultObject = {
127
+ timeout: 0,
128
+ variables: {},
129
+ };
130
+
131
+ const responseHandler = (response: ApiParams) => {
132
+ const copy = deepCopy(response);
133
+ if (response.variables) {
134
+ copy.variables = Object.keys(copy.variables).map((key) => ({
135
+ key,
136
+ value: copy.variables[key],
137
+ }));
138
+ }
139
+ return copy;
140
+ };
141
+
142
+ try {
143
+ const response = await getTriggerService().readTrigger(Number(id));
144
+ return applyTransform(response.data, [
145
+ snakeToCamel(doNotConvertKeys),
146
+ merge(defaultObject),
147
+ responseHandler,
148
+ ]);
149
+ } catch (err) {
150
+ throw applyTransform(err, [
151
+ notify,
152
+ ]);
153
+ }
154
+ };
155
+
156
+ const addTrigger = async ({ itemInstance }: AddItemParams) => {
157
+ const item = applyTransform(itemInstance, [
158
+ preRequestHandler,
159
+ sanitize(fieldsToSend),
160
+ camelToSnake(doNotConvertKeys),
161
+ ]);
162
+ try {
163
+ const response = await getTriggerService().createTrigger(item);
164
+ return applyTransform(response.data, [
165
+ snakeToCamel(doNotConvertKeys),
166
+ ]);
167
+ } catch (err) {
168
+ throw applyTransform(err, [
169
+ notify,
170
+ ]);
171
+ }
172
+ };
173
+
174
+ const patchTrigger = async ({ changes, id }: PatchItemParams) => {
175
+ const body = applyTransform(changes, [
176
+ sanitize(fieldsToSend),
177
+ camelToSnake(doNotConvertKeys),
178
+ ]);
179
+ try {
180
+ const response = await getTriggerService().patchTrigger(Number(id), body);
181
+ return applyTransform(response.data, [
182
+ snakeToCamel(doNotConvertKeys),
183
+ ]);
184
+ } catch (err) {
185
+ throw applyTransform(err, [
186
+ notify,
187
+ ]);
188
+ }
189
+ };
190
+
191
+ const updateTrigger = async ({
192
+ itemInstance,
193
+ itemId: id,
194
+ }: UpdateItemParams) => {
195
+ const item = applyTransform(itemInstance, [
196
+ preRequestHandler,
197
+ sanitize(fieldsToSend),
198
+ camelToSnake(doNotConvertKeys),
199
+ ]);
200
+ try {
201
+ const response = await getTriggerService().updateTrigger(Number(id), item);
202
+ return applyTransform(response.data, [
203
+ snakeToCamel(doNotConvertKeys),
204
+ ]);
205
+ } catch (err) {
206
+ throw applyTransform(err, [
207
+ notify,
208
+ ]);
209
+ }
210
+ };
211
+
212
+ const deleteTrigger = async ({ id }: DeleteItemParams) => {
213
+ try {
214
+ const response = await getTriggerService().deleteTrigger(Number(id));
215
+ return applyTransform(response.data, []);
216
+ } catch (err) {
217
+ throw applyTransform(err, [
218
+ notify,
219
+ ]);
220
+ }
221
+ };
222
+
223
+ const getTriggersLookup = (params: Parameters<typeof getTriggersList>[0]) =>
224
+ getTriggersList({
225
+ ...params,
226
+ fields: params.fields || [
227
+ 'id',
228
+ 'name',
229
+ ],
230
+ });
231
+
232
+ const startTrigger = async (_params: ApiParams, item: ApiParams) => {
233
+ const body = applyTransform(item, [
234
+ camelToSnake(doNotConvertKeys),
235
+ ]);
236
+ try {
237
+ const response = await getTriggerService().createTriggerJob(
238
+ Number(item.id),
239
+ body,
240
+ );
241
+ return applyTransform(response.data, [
242
+ snakeToCamel(doNotConvertKeys),
243
+ notify(({ callback }) =>
244
+ callback({
245
+ type: 'success',
246
+ text: 'Successfully ran',
247
+ }),
248
+ ),
249
+ ]);
250
+ } catch (err) {
251
+ throw applyTransform(err, [
252
+ notify,
253
+ ]);
254
+ }
255
+ };
256
+
257
+ export const TriggersAPI = {
258
+ getList: getTriggersList,
259
+ get: getTrigger,
260
+ add: addTrigger,
261
+ patch: patchTrigger,
262
+ update: updateTrigger,
263
+ delete: deleteTrigger,
264
+ getLookup: getTriggersLookup,
265
+ start: startTrigger,
266
+ };
@@ -1,16 +1,15 @@
1
- import { UserSettingsApiFactory } from 'webitel-sdk';
2
-
3
- import { getDefaultInstance, getDefaultOpenAPIConfig } from '../../defaults';
1
+ import { getDefaultAxiosInstance } from '../../axios/genClient';
4
2
  import { applyTransform, notify } from '../../transformers';
5
3
 
6
- const instance = getDefaultInstance();
7
- const configuration = getDefaultOpenAPIConfig();
8
-
9
- const service = UserSettingsApiFactory(configuration, '', instance);
4
+ /*
5
+ * Hand-written rather than generated: `/user/settings/{key}` is absent from the
6
+ * OpenAPI spec orval reads, so there is no `gen-wire` service for it.
7
+ */
8
+ const url = (key: string) => `/user/settings/${encodeURIComponent(key)}`;
10
9
 
11
10
  const getUserSettings = async ({ key }: { key: string }) => {
12
11
  try {
13
- const response = await service.getUserSettings(key);
12
+ const response = await getDefaultAxiosInstance().get(url(key));
14
13
  return response.data;
15
14
  } catch (err) {
16
15
  throw applyTransform(err, [
@@ -27,7 +26,7 @@ const setUserSettings = async ({
27
26
  value: object;
28
27
  }) => {
29
28
  try {
30
- const response = await service.setUserSettings(key, value);
29
+ const response = await getDefaultAxiosInstance().put(url(key), value);
31
30
  return response.data;
32
31
  } catch (err) {
33
32
  throw applyTransform(err, [
@@ -42,6 +42,8 @@ const fieldsToSend = [
42
42
  'email',
43
43
  'contact',
44
44
  'chatName',
45
+ // bound by the client's user form; `force_password_change` on ApiInputUser
46
+ 'forcePasswordChange',
45
47
  ];
46
48
 
47
49
  const getUsersList = async (params: ApiParams) => {