@resolveio/server-lib 22.2.46 → 22.2.48
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/methods/support.js
CHANGED
|
@@ -311,6 +311,7 @@ function sanitizeSupportTicketCreatePayload(ticket) {
|
|
|
311
311
|
}
|
|
312
312
|
var next = __assign({}, ticket);
|
|
313
313
|
next.status = normalizeSupportTicketStatusForBackend(ticket.status);
|
|
314
|
+
next.files = normalizeSupportTicketFileIds(ticket.files);
|
|
314
315
|
next.messages = Array.isArray(ticket.messages)
|
|
315
316
|
? ticket.messages
|
|
316
317
|
.filter(function (message) { return !isInternalSupportMessage(message); })
|
|
@@ -325,18 +326,37 @@ function sanitizeSupportTicketUpdatePayload(ticket) {
|
|
|
325
326
|
}
|
|
326
327
|
var next = __assign({}, ticket);
|
|
327
328
|
next.status = normalizeSupportTicketStatusForBackend(ticket.status);
|
|
329
|
+
next.files = normalizeSupportTicketFileIds(ticket.files);
|
|
328
330
|
next.messages = Array.isArray(ticket.messages)
|
|
329
331
|
? ticket.messages
|
|
330
332
|
.filter(function (message) { return !isInternalSupportMessage(message); })
|
|
331
333
|
.map(function (message) { return stripSupportMessageInternalMetadata(message); })
|
|
332
334
|
: [];
|
|
333
|
-
next.notes =
|
|
335
|
+
next.notes = Array.isArray(ticket.notes)
|
|
336
|
+
? ticket.notes.filter(function (note) { return !!note && typeof note === 'object'; })
|
|
337
|
+
: [];
|
|
334
338
|
delete next.automation;
|
|
335
339
|
delete next.ai_recommendations;
|
|
336
340
|
delete next.source;
|
|
337
341
|
delete next.url_ticket;
|
|
338
342
|
return next;
|
|
339
343
|
}
|
|
344
|
+
function normalizeSupportTicketFileIds(files) {
|
|
345
|
+
if (!Array.isArray(files)) {
|
|
346
|
+
return [];
|
|
347
|
+
}
|
|
348
|
+
return files
|
|
349
|
+
.map(function (file) {
|
|
350
|
+
if (typeof file === 'string') {
|
|
351
|
+
return file.trim();
|
|
352
|
+
}
|
|
353
|
+
if (file && typeof file === 'object') {
|
|
354
|
+
return String(file._id || file.id_file || file.id || '').trim();
|
|
355
|
+
}
|
|
356
|
+
return '';
|
|
357
|
+
})
|
|
358
|
+
.filter(function (id) { return !!id; });
|
|
359
|
+
}
|
|
340
360
|
function normalizeSupportTicketStatusForClient(status) {
|
|
341
361
|
var value = String(status || '').trim().toLowerCase();
|
|
342
362
|
if (value === 'opened' || value === 'active') {
|
package/methods/support.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/methods/support.ts"],"names":[],"mappings":"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","file":"support.js","sourcesContent":["import axios from 'axios';\nimport SimpleSchema from 'simpl-schema';\nimport { MethodManager } from '../managers/method.manager';\nconst SUPPORT_INTERNAL_MESSAGE_PATTERN = /\\b(codex|openai|ai dashboard|ai assistant|workflow update|build plan|pull request|confidence gate|dependency follow-up|thread key|workspace cleanup|support automation|auto-?improve(?: loop)?|autoloop|support codex manager)\\b/i;\nconst SUPPORT_INTERNAL_SOURCE_PATTERN = /\\b(support_automation|codex|openai|ai(?:[_ -]?assistant|[_ -]?dashboard)?)\\b/i;\n\nexport function loadSupportMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n supportCreateBillingUser: {\n \tcheck: new SimpleSchema({\n\t\t\t\tuser: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n }),\n function: async function(user) {\n try {\n let body = await axios.post('https://backend.resolveio.com/api/support/billing-user', user);\n return body.data.result;\n }\n catch {\n return false;\n }\n }\n\t\t},\n\t\tsupportGetSupportTicketWithId: {\n \tcheck: new SimpleSchema({\n\t\t\t\tid_support_ticket: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n }),\n function: async function(id_support_ticket) {\n try {\n let body = await axios.post('https://backend.resolveio.com/api/support/supportTicketWithId', {id_support_ticket: id_support_ticket});\n return sanitizeSupportTicketForClientView(body.data.result);\n }\n catch(error) {\n error.message = `Error in Support Get Support Ticket With Id: ${error.message}`;\n throw error;\n }\n }\n\t\t},\n\t\tsupportInsertSupportTicket: {\n \tskipValidation: true,\n function: async function(supportTicket) {\n try {\n const safePayload = sanitizeSupportTicketCreatePayload(supportTicket);\n let body = await axios.post('https://backend.resolveio.com/api/support/supportInsertTicket', safePayload);\n\n return body.data.result;\n }\n catch(error) {\n error.message = `Error in Support Insert Support Ticket: ${error.message}`;\n throw error;\n }\n }\n\t\t},\n\t\tsupportUpdateSupportTicket: {\n\t\t\tskipValidation: true,\n function: async function(supportTicket) {\n try {\n const safePayload = sanitizeSupportTicketUpdatePayload(supportTicket);\n let body = await axios.post('https://backend.resolveio.com/api/support/supportUpdateTicket', safePayload);\n\n return body.data.result;\n }\n catch(error) {\n error.message = `Error in Support Update Support Ticket: ${error.message}`;\n throw error;\n }\n }\n\t\t},\n\t\tsupportticketsWithOptions: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\toptions: {\n\t\t\t\t\ttype: Object\n\t\t\t\t},\n\t\t\t\t'options.limit': {\n\t\t\t\t\ttype: Number\n\t\t\t\t},\n\t\t\t\t'options.skip': {\n\t\t\t\t\ttype: Number\n\t\t\t\t},\n\t\t\t\t'options.sort': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\t'options.fields': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tsearchString: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfilters: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'filters.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n }),\n function: async function(options, searchString, filters) {\n try {\n const safeFilters = sanitizeSupportTicketFiltersForBackend(filters);\n let body = await axios.post('https://backend.resolveio.com/api/support/supportticketsWithOptions', [options, searchString, safeFilters]);\n const results = Array.isArray(body.data.result) ? body.data.result : [];\n return results.map((ticket: any) => sanitizeSupportTicketForClientView(ticket));\n }\n catch(error) {\n error.message = `Error in Support Tickets With Options: ${error.message}`;\n throw error;\n }\n }\n\t\t},\n\t\tsupportticketCount: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tsearchString: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfilters: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'filters.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n }),\n function: async function(searchString, filters) {\n try {\n const safeFilters = sanitizeSupportTicketFiltersForBackend(filters);\n let body = await axios.post('https://backend.resolveio.com/api/support/supportCountTickets', [searchString, safeFilters]);\n\n return body.data.result;\n }\n catch(error) {\n error.message = `Error in Support Ticket Count: ${error.message}`;\n throw error;\n }\n }\n\t\t}\n\t});\n}\n\nfunction isInternalSupportMessage(message: any): boolean {\n\tif (!message || typeof message !== 'object') {\n\t\treturn false;\n\t}\n\tif (message.internal === true) {\n\t\treturn true;\n\t}\n\tconst visibility = String(message.visibility || '').trim().toLowerCase();\n\tif (visibility === 'internal') {\n\t\treturn true;\n\t}\n\tconst badge = String(message.badge || '').trim().toLowerCase();\n\tif (badge.includes('internal')) {\n\t\treturn true;\n\t}\n\tconst source = String(message.source || '').trim();\n\tif (source && SUPPORT_INTERNAL_SOURCE_PATTERN.test(source)) {\n\t\treturn true;\n\t}\n\tconst text = [\n\t\tString(message.type || ''),\n\t\tString(message.user || ''),\n\t\tString(message.message || '')\n\t].join(' ');\n\treturn SUPPORT_INTERNAL_MESSAGE_PATTERN.test(text);\n}\n\nfunction stripSupportMessageInternalMetadata(message: any): Record<string, any> {\n\tconst next: Record<string, any> = { ...(message || {}) };\n\tdelete next.internal;\n\tdelete next.visibility;\n\tdelete next.badge;\n\tdelete next.source;\n\treturn next;\n}\n\nfunction buildSupportTicketDetailPath(ticket: any): string {\n\tconst ticketId = String(ticket?._id || '').trim();\n\tif (!ticketId) {\n\t\treturn '/support-ticket/detail';\n\t}\n\treturn `/support-ticket/detail/${ticketId}`;\n}\n\nfunction sanitizeSupportTicketForClientView(ticket: any): any {\n\tif (!ticket || typeof ticket !== 'object') {\n\t\treturn ticket;\n\t}\n\tconst next: Record<string, any> = { ...ticket };\n\tnext.status = normalizeSupportTicketStatusForClient(ticket.status);\n\tnext.messages = Array.isArray(ticket.messages)\n\t\t? ticket.messages\n\t\t\t.filter((message: any) => !isInternalSupportMessage(message))\n\t\t\t.map((message: any) => stripSupportMessageInternalMetadata(message))\n\t\t: [];\n\tnext.url_ticket = String(ticket.url_ticket || '').trim() || buildSupportTicketDetailPath(ticket);\n\tnext.notes = [];\n\tdelete next.automation;\n\tdelete next.ai_recommendations;\n\tdelete next.source;\n\treturn next;\n}\n\nfunction sanitizeSupportTicketCreatePayload(ticket: any): any {\n\tif (!ticket || typeof ticket !== 'object') {\n\t\treturn ticket;\n\t}\n\tconst next: Record<string, any> = { ...ticket };\n\tnext.status = normalizeSupportTicketStatusForBackend(ticket.status);\n\tnext.messages = Array.isArray(ticket.messages)\n\t\t? ticket.messages\n\t\t\t.filter((message: any) => !isInternalSupportMessage(message))\n\t\t\t.map((message: any) => stripSupportMessageInternalMetadata(message))\n\t\t: [];\n\tdelete next.url_ticket;\n\treturn next;\n}\n\nfunction sanitizeSupportTicketUpdatePayload(ticket: any): any {\n\tif (!ticket || typeof ticket !== 'object') {\n\t\treturn ticket;\n\t}\n\tconst next: Record<string, any> = { ...ticket };\n\tnext.status = normalizeSupportTicketStatusForBackend(ticket.status);\n\tnext.messages = Array.isArray(ticket.messages)\n\t\t? ticket.messages\n\t\t\t.filter((message: any) => !isInternalSupportMessage(message))\n\t\t\t.map((message: any) => stripSupportMessageInternalMetadata(message))\n\t\t: [];\n\tnext.notes = [];\n\tdelete next.automation;\n\tdelete next.ai_recommendations;\n\tdelete next.source;\n\tdelete next.url_ticket;\n\treturn next;\n}\n\nfunction normalizeSupportTicketStatusForClient(status: any): string {\n\tconst value = String(status || '').trim().toLowerCase();\n\tif (value === 'opened' || value === 'active') {\n\t\treturn 'Active';\n\t}\n\tif (value === 'review') {\n\t\treturn 'Review';\n\t}\n\tif (value === 'resolved' || value === 'closed') {\n\t\treturn 'Closed';\n\t}\n\treturn String(status || '').trim();\n}\n\nfunction normalizeSupportTicketStatusForBackend(status: any): string {\n\tconst value = String(status || '').trim().toLowerCase();\n\tif (value === 'active' || value === 'opened') {\n\t\treturn 'Opened';\n\t}\n\tif (value === 'review') {\n\t\treturn 'Review';\n\t}\n\tif (value === 'resolved' || value === 'closed') {\n\t\treturn 'Closed';\n\t}\n\treturn String(status || '').trim();\n}\n\nfunction sanitizeSupportTicketFiltersForBackend(filters: any): any {\n\tif (!Array.isArray(filters)) {\n\t\treturn [];\n\t}\n\treturn filters.map((filter: any) => sanitizeSupportTicketFilterForBackend(filter));\n}\n\nfunction sanitizeSupportTicketFilterForBackend(filter: any): any {\n\tif (!filter || typeof filter !== 'object') {\n\t\treturn filter;\n\t}\n\tconst next: Record<string, any> = { ...filter };\n\tif (String(filter.prop || '').trim() !== 'status') {\n\t\treturn next;\n\t}\n\tnext.data = normalizeSupportTicketFilterDataForBackend(filter.data);\n\treturn next;\n}\n\nfunction normalizeSupportTicketFilterDataForBackend(value: any): any {\n\tif (typeof value === 'string') {\n\t\treturn normalizeSupportTicketStatusForBackend(value);\n\t}\n\tif (Array.isArray(value)) {\n\t\treturn value.map((item: any) => normalizeSupportTicketFilterDataForBackend(item));\n\t}\n\tif (!value || typeof value !== 'object') {\n\t\treturn value;\n\t}\n\tconst next: Record<string, any> = { ...value };\n\tif (typeof next.$eq === 'string') {\n\t\tnext.$eq = normalizeSupportTicketStatusForBackend(next.$eq);\n\t}\n\tif (typeof next.$ne === 'string') {\n\t\tnext.$ne = normalizeSupportTicketStatusForBackend(next.$ne);\n\t}\n\tif (Array.isArray(next.$in)) {\n\t\tnext.$in = next.$in.map((entry: any) => normalizeSupportTicketFilterDataForBackend(entry));\n\t}\n\tif (Array.isArray(next.$nin)) {\n\t\tnext.$nin = next.$nin.map((entry: any) => normalizeSupportTicketFilterDataForBackend(entry));\n\t}\n\treturn next;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/methods/support.ts"],"names":[],"mappings":"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","file":"support.js","sourcesContent":["import axios from 'axios';\nimport SimpleSchema from 'simpl-schema';\nimport { MethodManager } from '../managers/method.manager';\nconst SUPPORT_INTERNAL_MESSAGE_PATTERN = /\\b(codex|openai|ai dashboard|ai assistant|workflow update|build plan|pull request|confidence gate|dependency follow-up|thread key|workspace cleanup|support automation|auto-?improve(?: loop)?|autoloop|support codex manager)\\b/i;\nconst SUPPORT_INTERNAL_SOURCE_PATTERN = /\\b(support_automation|codex|openai|ai(?:[_ -]?assistant|[_ -]?dashboard)?)\\b/i;\n\nexport function loadSupportMethods(methodManager: MethodManager) {\n\tmethodManager.methods({\n supportCreateBillingUser: {\n \tcheck: new SimpleSchema({\n\t\t\t\tuser: {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n }),\n function: async function(user) {\n try {\n let body = await axios.post('https://backend.resolveio.com/api/support/billing-user', user);\n return body.data.result;\n }\n catch {\n return false;\n }\n }\n\t\t},\n\t\tsupportGetSupportTicketWithId: {\n \tcheck: new SimpleSchema({\n\t\t\t\tid_support_ticket: {\n\t\t\t\t\ttype: String\n\t\t\t\t}\n }),\n function: async function(id_support_ticket) {\n try {\n let body = await axios.post('https://backend.resolveio.com/api/support/supportTicketWithId', {id_support_ticket: id_support_ticket});\n return sanitizeSupportTicketForClientView(body.data.result);\n }\n catch(error) {\n error.message = `Error in Support Get Support Ticket With Id: ${error.message}`;\n throw error;\n }\n }\n\t\t},\n\t\tsupportInsertSupportTicket: {\n \tskipValidation: true,\n function: async function(supportTicket) {\n try {\n const safePayload = sanitizeSupportTicketCreatePayload(supportTicket);\n let body = await axios.post('https://backend.resolveio.com/api/support/supportInsertTicket', safePayload);\n\n return body.data.result;\n }\n catch(error) {\n error.message = `Error in Support Insert Support Ticket: ${error.message}`;\n throw error;\n }\n }\n\t\t},\n\t\tsupportUpdateSupportTicket: {\n\t\t\tskipValidation: true,\n function: async function(supportTicket) {\n try {\n const safePayload = sanitizeSupportTicketUpdatePayload(supportTicket);\n let body = await axios.post('https://backend.resolveio.com/api/support/supportUpdateTicket', safePayload);\n\n return body.data.result;\n }\n catch(error) {\n error.message = `Error in Support Update Support Ticket: ${error.message}`;\n throw error;\n }\n }\n\t\t},\n\t\tsupportticketsWithOptions: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\toptions: {\n\t\t\t\t\ttype: Object\n\t\t\t\t},\n\t\t\t\t'options.limit': {\n\t\t\t\t\ttype: Number\n\t\t\t\t},\n\t\t\t\t'options.skip': {\n\t\t\t\t\ttype: Number\n\t\t\t\t},\n\t\t\t\t'options.sort': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\t'options.fields': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t},\n\t\t\t\tsearchString: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfilters: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'filters.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n }),\n function: async function(options, searchString, filters) {\n try {\n const safeFilters = sanitizeSupportTicketFiltersForBackend(filters);\n let body = await axios.post('https://backend.resolveio.com/api/support/supportticketsWithOptions', [options, searchString, safeFilters]);\n const results = Array.isArray(body.data.result) ? body.data.result : [];\n return results.map((ticket: any) => sanitizeSupportTicketForClientView(ticket));\n }\n catch(error) {\n error.message = `Error in Support Tickets With Options: ${error.message}`;\n throw error;\n }\n }\n\t\t},\n\t\tsupportticketCount: {\n\t\t\tcheck: new SimpleSchema({\n\t\t\t\tsearchString: {\n\t\t\t\t\ttype: String\n\t\t\t\t},\n\t\t\t\tfilters: {\n\t\t\t\t\ttype: Array\n\t\t\t\t},\n\t\t\t\t'filters.$': {\n\t\t\t\t\ttype: Object,\n\t\t\t\t\tblackbox: true\n\t\t\t\t}\n }),\n function: async function(searchString, filters) {\n try {\n const safeFilters = sanitizeSupportTicketFiltersForBackend(filters);\n let body = await axios.post('https://backend.resolveio.com/api/support/supportCountTickets', [searchString, safeFilters]);\n\n return body.data.result;\n }\n catch(error) {\n error.message = `Error in Support Ticket Count: ${error.message}`;\n throw error;\n }\n }\n\t\t}\n\t});\n}\n\nfunction isInternalSupportMessage(message: any): boolean {\n\tif (!message || typeof message !== 'object') {\n\t\treturn false;\n\t}\n\tif (message.internal === true) {\n\t\treturn true;\n\t}\n\tconst visibility = String(message.visibility || '').trim().toLowerCase();\n\tif (visibility === 'internal') {\n\t\treturn true;\n\t}\n\tconst badge = String(message.badge || '').trim().toLowerCase();\n\tif (badge.includes('internal')) {\n\t\treturn true;\n\t}\n\tconst source = String(message.source || '').trim();\n\tif (source && SUPPORT_INTERNAL_SOURCE_PATTERN.test(source)) {\n\t\treturn true;\n\t}\n\tconst text = [\n\t\tString(message.type || ''),\n\t\tString(message.user || ''),\n\t\tString(message.message || '')\n\t].join(' ');\n\treturn SUPPORT_INTERNAL_MESSAGE_PATTERN.test(text);\n}\n\nfunction stripSupportMessageInternalMetadata(message: any): Record<string, any> {\n\tconst next: Record<string, any> = { ...(message || {}) };\n\tdelete next.internal;\n\tdelete next.visibility;\n\tdelete next.badge;\n\tdelete next.source;\n\treturn next;\n}\n\nfunction buildSupportTicketDetailPath(ticket: any): string {\n\tconst ticketId = String(ticket?._id || '').trim();\n\tif (!ticketId) {\n\t\treturn '/support-ticket/detail';\n\t}\n\treturn `/support-ticket/detail/${ticketId}`;\n}\n\nfunction sanitizeSupportTicketForClientView(ticket: any): any {\n\tif (!ticket || typeof ticket !== 'object') {\n\t\treturn ticket;\n\t}\n\tconst next: Record<string, any> = { ...ticket };\n\tnext.status = normalizeSupportTicketStatusForClient(ticket.status);\n\tnext.messages = Array.isArray(ticket.messages)\n\t\t? ticket.messages\n\t\t\t.filter((message: any) => !isInternalSupportMessage(message))\n\t\t\t.map((message: any) => stripSupportMessageInternalMetadata(message))\n\t\t: [];\n\tnext.url_ticket = String(ticket.url_ticket || '').trim() || buildSupportTicketDetailPath(ticket);\n\tnext.notes = [];\n\tdelete next.automation;\n\tdelete next.ai_recommendations;\n\tdelete next.source;\n\treturn next;\n}\n\nfunction sanitizeSupportTicketCreatePayload(ticket: any): any {\n\tif (!ticket || typeof ticket !== 'object') {\n\t\treturn ticket;\n\t}\n\tconst next: Record<string, any> = { ...ticket };\n\tnext.status = normalizeSupportTicketStatusForBackend(ticket.status);\n\tnext.files = normalizeSupportTicketFileIds(ticket.files);\n\tnext.messages = Array.isArray(ticket.messages)\n\t\t? ticket.messages\n\t\t\t.filter((message: any) => !isInternalSupportMessage(message))\n\t\t\t.map((message: any) => stripSupportMessageInternalMetadata(message))\n\t\t: [];\n\tdelete next.url_ticket;\n\treturn next;\n}\n\nfunction sanitizeSupportTicketUpdatePayload(ticket: any): any {\n\tif (!ticket || typeof ticket !== 'object') {\n\t\treturn ticket;\n\t}\n\tconst next: Record<string, any> = { ...ticket };\n\tnext.status = normalizeSupportTicketStatusForBackend(ticket.status);\n\tnext.files = normalizeSupportTicketFileIds(ticket.files);\n\tnext.messages = Array.isArray(ticket.messages)\n\t\t? ticket.messages\n\t\t\t.filter((message: any) => !isInternalSupportMessage(message))\n\t\t\t.map((message: any) => stripSupportMessageInternalMetadata(message))\n\t\t: [];\n\tnext.notes = Array.isArray(ticket.notes)\n\t\t? ticket.notes.filter((note: any) => !!note && typeof note === 'object')\n\t\t: [];\n\tdelete next.automation;\n\tdelete next.ai_recommendations;\n\tdelete next.source;\n\tdelete next.url_ticket;\n\treturn next;\n}\n\nfunction normalizeSupportTicketFileIds(files: any): string[] {\n\tif (!Array.isArray(files)) {\n\t\treturn [];\n\t}\n\treturn files\n\t\t.map((file: any) => {\n\t\t\tif (typeof file === 'string') {\n\t\t\t\treturn file.trim();\n\t\t\t}\n\t\t\tif (file && typeof file === 'object') {\n\t\t\t\treturn String(file._id || file.id_file || file.id || '').trim();\n\t\t\t}\n\t\t\treturn '';\n\t\t})\n\t\t.filter((id: string) => !!id);\n}\n\nfunction normalizeSupportTicketStatusForClient(status: any): string {\n\tconst value = String(status || '').trim().toLowerCase();\n\tif (value === 'opened' || value === 'active') {\n\t\treturn 'Active';\n\t}\n\tif (value === 'review') {\n\t\treturn 'Review';\n\t}\n\tif (value === 'resolved' || value === 'closed') {\n\t\treturn 'Closed';\n\t}\n\treturn String(status || '').trim();\n}\n\nfunction normalizeSupportTicketStatusForBackend(status: any): string {\n\tconst value = String(status || '').trim().toLowerCase();\n\tif (value === 'active' || value === 'opened') {\n\t\treturn 'Opened';\n\t}\n\tif (value === 'review') {\n\t\treturn 'Review';\n\t}\n\tif (value === 'resolved' || value === 'closed') {\n\t\treturn 'Closed';\n\t}\n\treturn String(status || '').trim();\n}\n\nfunction sanitizeSupportTicketFiltersForBackend(filters: any): any {\n\tif (!Array.isArray(filters)) {\n\t\treturn [];\n\t}\n\treturn filters.map((filter: any) => sanitizeSupportTicketFilterForBackend(filter));\n}\n\nfunction sanitizeSupportTicketFilterForBackend(filter: any): any {\n\tif (!filter || typeof filter !== 'object') {\n\t\treturn filter;\n\t}\n\tconst next: Record<string, any> = { ...filter };\n\tif (String(filter.prop || '').trim() !== 'status') {\n\t\treturn next;\n\t}\n\tnext.data = normalizeSupportTicketFilterDataForBackend(filter.data);\n\treturn next;\n}\n\nfunction normalizeSupportTicketFilterDataForBackend(value: any): any {\n\tif (typeof value === 'string') {\n\t\treturn normalizeSupportTicketStatusForBackend(value);\n\t}\n\tif (Array.isArray(value)) {\n\t\treturn value.map((item: any) => normalizeSupportTicketFilterDataForBackend(item));\n\t}\n\tif (!value || typeof value !== 'object') {\n\t\treturn value;\n\t}\n\tconst next: Record<string, any> = { ...value };\n\tif (typeof next.$eq === 'string') {\n\t\tnext.$eq = normalizeSupportTicketStatusForBackend(next.$eq);\n\t}\n\tif (typeof next.$ne === 'string') {\n\t\tnext.$ne = normalizeSupportTicketStatusForBackend(next.$ne);\n\t}\n\tif (Array.isArray(next.$in)) {\n\t\tnext.$in = next.$in.map((entry: any) => normalizeSupportTicketFilterDataForBackend(entry));\n\t}\n\tif (Array.isArray(next.$nin)) {\n\t\tnext.$nin = next.$nin.map((entry: any) => normalizeSupportTicketFilterDataForBackend(entry));\n\t}\n\treturn next;\n}\n"]}
|
package/package.json
CHANGED