@webitel/api-services 1.0.16 → 1.0.18
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/package.json
CHANGED
|
@@ -204,7 +204,11 @@ const updateFieldsToSend = [
|
|
|
204
204
|
|
|
205
205
|
const sanitizeManagers = (itemInstance: ApiParams) => {
|
|
206
206
|
// handle many managers and even no managers field cases
|
|
207
|
-
const
|
|
207
|
+
const list = Array.isArray(itemInstance.managers)
|
|
208
|
+
? itemInstance.managers
|
|
209
|
+
: (itemInstance.managers?.data ?? []);
|
|
210
|
+
|
|
211
|
+
const managers = list.filter(
|
|
208
212
|
({
|
|
209
213
|
user,
|
|
210
214
|
}: {
|
|
@@ -221,7 +225,11 @@ const sanitizeManagers = (itemInstance: ApiParams) => {
|
|
|
221
225
|
|
|
222
226
|
const sanitizeTimezones = (itemInstance: ApiParams) => {
|
|
223
227
|
// handle many timezones and even no timezones field cases
|
|
224
|
-
const
|
|
228
|
+
const list = Array.isArray(itemInstance.timezones)
|
|
229
|
+
? itemInstance.timezones
|
|
230
|
+
: (itemInstance.timezones?.data ?? []);
|
|
231
|
+
|
|
232
|
+
const timezones = list.filter(
|
|
225
233
|
({
|
|
226
234
|
timezone,
|
|
227
235
|
}: {
|
|
@@ -238,7 +246,14 @@ const sanitizeTimezones = (itemInstance: ApiParams) => {
|
|
|
238
246
|
|
|
239
247
|
const sanitizeGroups = (itemInstance: ApiParams) => {
|
|
240
248
|
// handle many groups and even no groups field cases
|
|
241
|
-
|
|
249
|
+
if (!Array.isArray(itemInstance.groups)) {
|
|
250
|
+
return {
|
|
251
|
+
...itemInstance,
|
|
252
|
+
groups: itemInstance.groups?.data ?? [],
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
const groups = itemInstance.groups.map((item: ApiParams) => ({
|
|
242
257
|
group: item,
|
|
243
258
|
}));
|
|
244
259
|
return {
|
|
@@ -247,6 +262,28 @@ const sanitizeGroups = (itemInstance: ApiParams) => {
|
|
|
247
262
|
};
|
|
248
263
|
};
|
|
249
264
|
|
|
265
|
+
const flatListFields = [
|
|
266
|
+
'labels',
|
|
267
|
+
'phones',
|
|
268
|
+
'emails',
|
|
269
|
+
'imclients',
|
|
270
|
+
'variables',
|
|
271
|
+
] as const;
|
|
272
|
+
|
|
273
|
+
const sanitizeListFields = (itemInstance: ApiParams) => {
|
|
274
|
+
const patch: ApiParams = {};
|
|
275
|
+
for (const field of flatListFields) {
|
|
276
|
+
const value = itemInstance[field];
|
|
277
|
+
if (value && !Array.isArray(value)) {
|
|
278
|
+
patch[field] = value.data ?? [];
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
return {
|
|
282
|
+
...itemInstance,
|
|
283
|
+
...patch,
|
|
284
|
+
};
|
|
285
|
+
};
|
|
286
|
+
|
|
250
287
|
const add = async ({ itemInstance }: AddItemParams) => {
|
|
251
288
|
// `name`/`managers[].user`/`timezones[].timezone`/`groups[].group` are
|
|
252
289
|
// expected already in the shape `ContactsInputContact` declares (e.g.
|
|
@@ -257,6 +294,7 @@ const add = async ({ itemInstance }: AddItemParams) => {
|
|
|
257
294
|
sanitizeManagers,
|
|
258
295
|
sanitizeTimezones,
|
|
259
296
|
sanitizeGroups,
|
|
297
|
+
sanitizeListFields,
|
|
260
298
|
sanitizeToWire(createFieldsToSend),
|
|
261
299
|
]);
|
|
262
300
|
try {
|
|
@@ -279,6 +317,7 @@ const update = async ({ itemInstance }: AddItemParams) => {
|
|
|
279
317
|
sanitizeManagers,
|
|
280
318
|
sanitizeTimezones,
|
|
281
319
|
sanitizeGroups,
|
|
320
|
+
sanitizeListFields,
|
|
282
321
|
sanitizeToWire(updateFieldsToSend),
|
|
283
322
|
]);
|
|
284
323
|
try {
|