bx-rest 0.9.7 → 0.9.9
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/consts/part-name-methods.d.ts +2 -0
- package/esm2022/consts/part-name-methods.mjs +3 -1
- package/esm2022/map/tasks/task.mjs +1 -1
- package/esm2022/request-navvy/app.mjs +2 -2
- package/esm2022/request-navvy/bizproc/workflow.mjs +1 -1
- package/esm2022/request-navvy/calendar/user/settings.mjs +1 -1
- package/esm2022/request-navvy/crm/enum/index.mjs +115 -0
- package/esm2022/request-navvy/crm/enum/settings.mjs +21 -0
- package/esm2022/request-navvy/crm/multifield.mjs +21 -0
- package/esm2022/request-navvy/crm.mjs +7 -1
- package/esm2022/request-navvy/department.mjs +1 -1
- package/esm2022/request-navvy/disk/folder.mjs +1 -1
- package/esm2022/request-navvy/lists/element.mjs +1 -1
- package/esm2022/request-navvy/log/blogpost.mjs +1 -1
- package/esm2022/request-navvy/socialnetwork/api/contentview.mjs +1 -1
- package/esm2022/request-navvy/tasks/task.mjs +1 -1
- package/esm2022/request-navvy/user/userfield.mjs +1 -1
- package/esm2022/request-navvy/user.mjs +1 -1
- package/esm2022/rest/navvy.mjs +2 -2
- package/esm2022/typification/rest/app.mjs +5 -0
- package/esm2022/typification/rest/crm/enum.mjs +2 -0
- package/esm2022/typification/rest/crm/index.mjs +3 -1
- package/esm2022/typification/rest/crm/multifield.mjs +2 -0
- package/esm2022/typification/rest/user.mjs +2 -1
- package/fesm2022/bx-rest.mjs +159 -2
- package/fesm2022/bx-rest.mjs.map +1 -1
- package/map/tasks/task.d.ts +2 -2
- package/package.json +1 -1
- package/request-navvy/app.d.ts +2 -2
- package/request-navvy/bizproc/workflow.d.ts +1 -1
- package/request-navvy/calendar/user/settings.d.ts +1 -1
- package/request-navvy/crm/enum/index.d.ts +78 -0
- package/request-navvy/crm/enum/settings.d.ts +13 -0
- package/request-navvy/crm/multifield.d.ts +13 -0
- package/request-navvy/crm.d.ts +6 -0
- package/request-navvy/department.d.ts +4 -6
- package/request-navvy/disk/folder.d.ts +4 -4
- package/request-navvy/lists/element.d.ts +1 -1
- package/request-navvy/log/blogpost.d.ts +1 -1
- package/request-navvy/socialnetwork/api/contentview.d.ts +2 -2
- package/request-navvy/tasks/task.d.ts +2 -2
- package/request-navvy/user/userfield.d.ts +2 -1
- package/request-navvy/user.d.ts +3 -3
- package/rest/navvy.d.ts +2 -2
- package/typification/rest/app.d.ts +4 -0
- package/typification/rest/crm/enum.d.ts +46 -0
- package/typification/rest/crm/index.d.ts +2 -0
- package/typification/rest/crm/multifield.d.ts +12 -0
- package/typification/rest/user.d.ts +1 -0
package/fesm2022/bx-rest.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bx-rest.mjs","sources":["../../../projects/bx-rest/src/settings.ts","../../../projects/bx-rest/src/functions/mapResult.ts","../../../projects/bx-rest/src/services/base.ts","../../../projects/bx-rest/src/map/rest.ts","../../../projects/bx-rest/src/services/vanilla/сookies.ts","../../../projects/bx-rest/src/services/vanilla/localStorage.ts","../../../projects/bx-rest/src/services/vanilla/sessionStorage.ts","../../../projects/bx-rest/src/services/http/sessionKey.ts","../../../projects/bx-rest/src/services/http/HttpData.ts","../../../projects/bx-rest/src/services/http/base/base.ts","../../../projects/bx-rest/src/services/http/http.ts","../../../projects/bx-rest/src/services/http/HttpBX.ts","../../../projects/bx-rest/src/services/navvy/extends/navvy-pag-base.ts","../../../projects/bx-rest/src/services/navvy/navvy-simple.ts","../../../projects/bx-rest/src/consts/part-name-methods.ts","../../../projects/bx-rest/src/request/user/userfield.ts","../../../projects/bx-rest/src/request/user.ts","../../../projects/bx-rest/src/request/lists/element.ts","../../../projects/bx-rest/src/request/lists/field.ts","../../../projects/bx-rest/src/request/lists.ts","../../../projects/bx-rest/src/request/task/elapseditem.ts","../../../projects/bx-rest/src/request/task/commentitem.ts","../../../projects/bx-rest/src/request/task/planner.ts","../../../projects/bx-rest/src/request/task/item/userfield.ts","../../../projects/bx-rest/src/request/task/item.ts","../../../projects/bx-rest/src/request/task.ts","../../../projects/bx-rest/src/request/tasks/task/result.ts","../../../projects/bx-rest/src/request/tasks/task.ts","../../../projects/bx-rest/src/request/tasks.ts","../../../projects/bx-rest/src/request/disk/file.ts","../../../projects/bx-rest/src/request/disk/folder.ts","../../../projects/bx-rest/src/request/disk/attachedObject.ts","../../../projects/bx-rest/src/request/disk.ts","../../../projects/bx-rest/src/request/bizproc/workflow/instance.ts","../../../projects/bx-rest/src/request/bizproc/workflow/template.ts","../../../projects/bx-rest/src/services/http/httpNavvy.ts","../../../projects/bx-rest/src/request/bizproc/workflow.ts","../../../projects/bx-rest/src/request/bizproc/activity.ts","../../../projects/bx-rest/src/request/bizproc/task.ts","../../../projects/bx-rest/src/request/bizproc/robot.ts","../../../projects/bx-rest/src/request/bizproc/event.ts","../../../projects/bx-rest/src/request/bizproc.ts","../../../projects/bx-rest/src/request/log/blogpost.ts","../../../projects/bx-rest/src/request/log/blogcomment.ts","../../../projects/bx-rest/src/request/log.ts","../../../projects/bx-rest/src/request/sonet_group.ts","../../../projects/bx-rest/src/request/server.ts","../../../projects/bx-rest/src/request/department.ts","../../../projects/bx-rest/src/request/app.ts","../../../projects/bx-rest/src/request/socialnetwork/api/contentview.ts","../../../projects/bx-rest/src/request/socialnetwork/api/livefeed/blogpost/important.ts","../../../projects/bx-rest/src/request/socialnetwork/api/livefeed/blogpost.ts","../../../projects/bx-rest/src/request/socialnetwork/api/livefeed.ts","../../../projects/bx-rest/src/request/socialnetwork/api.ts","../../../projects/bx-rest/src/request/socialnetwork.ts","../../../projects/bx-rest/src/request/pull/application/config.ts","../../../projects/bx-rest/src/request/pull/config.ts","../../../projects/bx-rest/src/request/pull/channel/public.ts","../../../projects/bx-rest/src/request/pull.ts","../../../projects/bx-rest/src/rest/base.ts","../../../projects/bx-rest/src/services/navvy/navvy-alternative-pagination-navigation.ts","../../../projects/bx-rest/src/services/navvy/navvy-pag-nav-with-useless-key.ts","../../../projects/bx-rest/src/services/navvy/navvy-pag-nav-tasks.ts","../../../projects/bx-rest/src/services/navvy/navvy-pag.ts","../../../projects/bx-rest/src/services/navvy/navvy-support.ts","../../../projects/bx-rest/src/services/navvy.ts","../../../projects/bx-rest/src/request-navvy/user/userfield.ts","../../../projects/bx-rest/src/map/user.ts","../../../projects/bx-rest/src/request-navvy/user.ts","../../../projects/bx-rest/src/map/lists/element.ts","../../../projects/bx-rest/src/request-navvy/lists/element.ts","../../../projects/bx-rest/src/map/lists/field.ts","../../../projects/bx-rest/src/map/lists.ts","../../../projects/bx-rest/src/request-navvy/lists/field.ts","../../../projects/bx-rest/src/request-navvy/lists.ts","../../../projects/bx-rest/src/map/task/elapseditem.ts","../../../projects/bx-rest/src/map/tasks/task/result.ts","../../../projects/bx-rest/src/map/tasks/task.ts","../../../projects/bx-rest/src/request-navvy/tasks/task/result.ts","../../../projects/bx-rest/src/request-navvy/tasks/task.ts","../../../projects/bx-rest/src/request-navvy/tasks.ts","../../../projects/bx-rest/src/request-navvy/task/delegate/elapseditem.ts","../../../projects/bx-rest/src/request-navvy/task/operation/elapseditem.ts","../../../projects/bx-rest/src/request-navvy/task/elapseditem.ts","../../../projects/bx-rest/src/map/task/commentitem.ts","../../../projects/bx-rest/src/request-navvy/task/commentitem.ts","../../../projects/bx-rest/src/map/task/planner.ts","../../../projects/bx-rest/src/request-navvy/task/planner.ts","../../../projects/bx-rest/src/map/task/item/userfield.ts","../../../projects/bx-rest/src/request-navvy/task/item/userfield.ts","../../../projects/bx-rest/src/request-navvy/task/item.ts","../../../projects/bx-rest/src/request-navvy/task.ts","../../../projects/bx-rest/src/map/disk/file.ts","../../../projects/bx-rest/src/request-navvy/disk/file.ts","../../../projects/bx-rest/src/map/disk/base.ts","../../../projects/bx-rest/src/map/disk/folder.ts","../../../projects/bx-rest/src/request-navvy/disk/folder.ts","../../../projects/bx-rest/src/map/disk/storage.ts","../../../projects/bx-rest/src/request/disk/storage.ts","../../../projects/bx-rest/src/request-navvy/disk/operation/storage.ts","../../../projects/bx-rest/src/request-navvy/disk/storage.ts","../../../projects/bx-rest/src/request-navvy/disk/operation.ts","../../../projects/bx-rest/src/map/disk/attachedObject.ts","../../../projects/bx-rest/src/request-navvy/disk/attachedObject.ts","../../../projects/bx-rest/src/request-navvy/disk.ts","../../../projects/bx-rest/src/request-navvy/bizproc/task.ts","../../../projects/bx-rest/src/request-navvy/bizproc/workflow.ts","../../../projects/bx-rest/src/request-navvy/bizproc.ts","../../../projects/bx-rest/src/map/log/blogpost.ts","../../../projects/bx-rest/src/request-navvy/log/blogpost.ts","../../../projects/bx-rest/src/request-navvy/log/blogcomment.ts","../../../projects/bx-rest/src/request-navvy/log.ts","../../../projects/bx-rest/src/map/calendar/event.ts","../../../projects/bx-rest/src/request-navvy/calendar/event.ts","../../../projects/bx-rest/src/map/calendar/section.ts","../../../projects/bx-rest/src/request-navvy/calendar/section.ts","../../../projects/bx-rest/src/map/calendar/user/settings.ts","../../../projects/bx-rest/src/request-navvy/calendar/user/settings.ts","../../../projects/bx-rest/src/request-navvy/calendar/user.ts","../../../projects/bx-rest/src/request-navvy/calendar.ts","../../../projects/bx-rest/src/map/sonet_group.ts","../../../projects/bx-rest/src/request-navvy/sonet_group.ts","../../../projects/bx-rest/src/map/server.ts","../../../projects/bx-rest/src/request-navvy/server.ts","../../../projects/bx-rest/src/map/department.ts","../../../projects/bx-rest/src/request-navvy/department.ts","../../../projects/bx-rest/src/request-navvy/im/chat/user.ts","../../../projects/bx-rest/src/request-navvy/im/chat.ts","../../../projects/bx-rest/src/request-navvy/im/counters.ts","../../../projects/bx-rest/src/map/im/gialog/users.ts","../../../projects/bx-rest/src/request-navvy/im/dialog/users.ts","../../../projects/bx-rest/src/map/im/dialog.ts","../../../projects/bx-rest/src/map/im/gialog/messages.ts","../../../projects/bx-rest/src/request-navvy/im/dialog/messages.ts","../../../projects/bx-rest/src/request-navvy/im/dialog/read.ts","../../../projects/bx-rest/src/request-navvy/im/dialog.ts","../../../projects/bx-rest/src/functions/errorHandler.ts","../../../projects/bx-rest/src/map/im/recent.ts","../../../projects/bx-rest/src/request-navvy/im/recent.ts","../../../projects/bx-rest/src/map/im/user.ts","../../../projects/bx-rest/src/request-navvy/im/user/status/idle.ts","../../../projects/bx-rest/src/request-navvy/im/user/status.ts","../../../projects/bx-rest/src/map/im/user/list.ts","../../../projects/bx-rest/src/request-navvy/im/user/list.ts","../../../projects/bx-rest/src/request-navvy/im/user.ts","../../../projects/bx-rest/src/request-navvy/im.ts","../../../projects/bx-rest/src/map/app.ts","../../../projects/bx-rest/src/request-navvy/app.ts","../../../projects/bx-rest/src/map/timeman.ts","../../../projects/bx-rest/src/functions/toLocalAtom.ts","../../../projects/bx-rest/src/request-navvy/timeman.ts","../../../projects/bx-rest/src/request-navvy/socialnetwork/api/contentview.ts","../../../projects/bx-rest/src/map/socialnetwork/api/livefeed/blogpost/important.ts","../../../projects/bx-rest/src/request-navvy/socialnetwork/api/livefeed/blogpost/important.ts","../../../projects/bx-rest/src/request-navvy/socialnetwork/api/livefeed/blogpost.ts","../../../projects/bx-rest/src/request-navvy/socialnetwork/api/livefeed.ts","../../../projects/bx-rest/src/request-navvy/socialnetwork/api.ts","../../../projects/bx-rest/src/request-navvy/socialnetwork.ts","../../../projects/bx-rest/src/map/pull/application/config.ts","../../../projects/bx-rest/src/map/pull.ts","../../../projects/bx-rest/src/map/channel/public.ts","../../../projects/bx-rest/src/request-navvy/pull/config.ts","../../../projects/bx-rest/src/request-navvy/pull/channel/public.ts","../../../projects/bx-rest/src/request-navvy/pull/application/config.ts","../../../projects/bx-rest/src/request-navvy/pull.ts","../../../projects/bx-rest/src/map/crm/lead.ts","../../../projects/bx-rest/src/map/crm/deal.ts","../../../projects/bx-rest/src/map/crm/contact.ts","../../../projects/bx-rest/src/map/crm/company.ts","../../../projects/bx-rest/src/map/crm/quote.ts","../../../projects/bx-rest/src/request-navvy/crm/lead.ts","../../../projects/bx-rest/src/request-navvy/crm/deal.ts","../../../projects/bx-rest/src/request-navvy/crm/contact.ts","../../../projects/bx-rest/src/request-navvy/crm/company.ts","../../../projects/bx-rest/src/request-navvy/crm/quote/productrows.ts","../../../projects/bx-rest/src/request-navvy/crm/quote/userfield.ts","../../../projects/bx-rest/src/request-navvy/crm/quote/index.ts","../../../projects/bx-rest/src/request-navvy/crm.ts","../../../projects/bx-rest/src/rest/navvy.ts","../../../projects/bx-rest/src/map/calendar/user.ts","../../../projects/bx-rest/src/map/calendar.ts","../../../projects/bx-rest/src/map/log.ts","../../../projects/bx-rest/src/map/task/stages.ts","../../../projects/bx-rest/src/map/task.ts","../../../projects/bx-rest/src/map/tasks.ts","../../../projects/bx-rest/src/rest/map.ts","../../../projects/bx-rest/src/public-api.ts","../../../projects/bx-rest/src/bx-rest.ts"],"sourcesContent":["import { iBXRestSettings } from './typification/settings'\r\n\r\nexport const DEFAULT_BX_REST_SETTINGS: iBXRestSettings = {\r\n auth: {\r\n source: 'cookies',\r\n key: 'auth'\r\n },\r\n urls: {\r\n source: 'localStorage',\r\n key: '',\r\n additional_part: 'rest'\r\n }\r\n}\r\n\r\nexport const BXRestSettings = {\r\n date: {\r\n auth: {\r\n source: 'cookies',\r\n key: 'auth',\r\n },\r\n urls: {\r\n source: 'localStorage',\r\n key: '',\r\n additional_part: 'rest',\r\n },\r\n } as iBXRestSettings,\r\n\r\n update(newSettings: Partial<iBXRestSettings>): void {\r\n this.date = { ...this.date, ...newSettings }\r\n },\r\n}","import { iBXRestAnswer, iBXRestAnswerSuccess } from '../typification/rest/base/answer'\r\n\r\nexport function BXRestMapResult<T>(v: iBXRestAnswer<T>): NonNullable<T>\r\nexport function BXRestMapResult(v: undefined): undefined\r\nexport function BXRestMapResult<T>(v: iBXRestAnswer<T> | undefined): T | undefined\r\nexport function BXRestMapResult<T>(v: iBXRestAnswer<T> | undefined) {\r\n if (v && (instanceOfiBXRestAnswerSuccess(v))) {\r\n return v.result\r\n }\r\n return undefined\r\n}\r\nexport function instanceOfiBXRestAnswerSuccess<T>(object: any): object is iBXRestAnswerSuccess<T> {\r\n return 'result' in object\r\n}","import { DateTime, DateTimeOptions } from 'luxon'\r\n\r\n/**\r\n * Преобразует значение в строку\r\n *\r\n * @param val\r\n * @param throwError\r\n */\r\nexport function toStr(val: any, throwError = false): string {\r\n if (val === null || val === undefined) {\r\n if (throwError) {\r\n throw new Error(`Invalid value: ${val} cannot be converted to string`)\r\n }\r\n return ''\r\n }\r\n return String(val)\r\n}\r\n\r\n/**\r\n * Преобразует значение в число\r\n */\r\nexport function toNum(val: any, throwError = true, defValue = 0): number {\r\n const result = Number(val)\r\n\r\n if (isNaN(result)) {\r\n const error = new ToNumError(val)\r\n\r\n if (throwError) throw error\r\n\r\n // Если ошибка не пробрасывается — просто логируем\r\n console.error(error.toString())\r\n return defValue\r\n }\r\n\r\n return result\r\n}\r\n\r\n/**\r\n * Кастомный тип ошибки для числовых преобразований\r\n */\r\nexport class ToNumError extends Error {\r\n constructor(public readonly value: any) {\r\n const valueType = typeof value\r\n const formattedValue =\r\n valueType === 'object' ? JSON.stringify(value) : String(value)\r\n const message = `Invalid value passed to toNum(): ${formattedValue} (type: ${valueType})`\r\n super(message)\r\n this.name = 'ToNumError'\r\n\r\n // сохраняем стек вызова (отфильтровав сам конструктор)\r\n if (this.stack) {\r\n const stackLines = this.stack.split('\\n')\r\n // Удаляем строку конструктора (чтобы стек начинался с места вызова toNum)\r\n this.stack = [stackLines[0], ...stackLines.slice(2)].join('\\n')\r\n }\r\n }\r\n\r\n override toString(): string {\r\n return [\r\n `❌ [${this.name}] ${this.message}`,\r\n this.stack ? ` Stack trace:\\n${this.stack}` : '',\r\n ].join('\\n')\r\n }\r\n}\r\n\r\n/**\r\n * Преобразует значение в дату\r\n */\r\nexport function toDate(val: number | string | Date, format?: string, opt?: DateTimeOptions, throwError = true): Date {\r\n if (val instanceof Date) {\r\n return val\r\n } else if (typeof val === 'string') {\r\n if (format) {\r\n if (opt) {\r\n return DateTime.fromFormat(val, format, opt).toJSDate()\r\n }\r\n return DateTime.fromFormat(val, format).toJSDate()\r\n } else {\r\n return new Date(val)\r\n }\r\n } else if (typeof val === 'number') {\r\n return new Date(val)\r\n }\r\n\r\n if (throwError) {\r\n console.error('Wrong date format', val, format)\r\n throw new Error('Wrong date format')\r\n }\r\n\r\n return new Date()\r\n}\r\n\r\n/**\r\n * Преобразует дату в строку с учетом временной зоны\r\n *\r\n * @param date\r\n * @param throwError\r\n */\r\nexport function toISOStringWithTimezone(date: Date, throwError = true): string {\r\n if (!(date instanceof Date)) {\r\n if (throwError) throw new Error('Invalid value: not a valid Date object')\r\n return ''\r\n }\r\n\r\n const tzOffset = -date.getTimezoneOffset()\r\n const diff = tzOffset >= 0 ? '+' : '-'\r\n const pad = (n: number) => `${Math.floor(Math.abs(n))}`.padStart(2, '0')\r\n return date.getFullYear() +\r\n '-' + pad(date.getMonth() + 1) +\r\n '-' + pad(date.getDate()) +\r\n 'T' + pad(date.getHours()) +\r\n ':' + pad(date.getMinutes()) +\r\n ':' + pad(date.getSeconds()) +\r\n diff + pad(tzOffset / 60) +\r\n ':' + pad(tzOffset % 60)\r\n}\r\n\r\n/**\r\n * Преобразует значение в булево значение\r\n *\r\n * @param val\r\n * @param throwError\r\n */\r\nexport function toBool(val: any, throwError = true): boolean {\r\n switch (typeof val) {\r\n case 'string':\r\n val = val.toLowerCase()\r\n if (val === 'n' || val === 'y') { // битриксовые понятия о bool\r\n return val === 'y'\r\n } else if (val === 'true' || val === 'false') { // битриксовые понятия о bool\r\n return val === 'true'\r\n } else {\r\n if (throwError) throw new Error('Invalid value: cannot be converted to boolean')\r\n return false\r\n }\r\n default:\r\n return Boolean(val)\r\n }\r\n}\r\n\r\n/**\r\n * Преобразует булево значение в 'Y' или 'N'\r\n *\r\n * @param val\r\n */\r\nexport function toBXYorN(val: boolean): string {\r\n return val ? 'Y' : 'N'\r\n}\r\n\r\nexport function getBaseUrlHttps(url: string, component = false): string {\r\n if (component) {\r\n return encodeURI(cropUrl(url) + '/')\r\n } else {\r\n return encodeURI('https://' + cropUrl(url) + '/')\r\n }\r\n}\r\n\r\n/**\r\n * Обрезает URL (удаляет протокол)\r\n *\r\n * @param url\r\n */\r\nexport function cropUrl(url: string): string {\r\n url = url ? url.replace('https://', '') : ''\r\n url = url ? url.replace('http://', '') : ''\r\n url = url ? url.replace('https:', '') : ''\r\n url = url ? url.replace('http:', '') : ''\r\n return url\r\n}\r\n\r\n/**\r\n * Преобразует файл в base64\r\n *\r\n * @param file\r\n */\r\nexport function getBase64File(file: File): Promise<string> {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader()\r\n reader.readAsDataURL(file)\r\n reader.onload = () => resolve(reader.result as string)\r\n reader.onerror = error => reject(error)\r\n })\r\n}\r\n\r\n/**\r\n * Получить файл в формате base64 с разбивкой на заголовок и данные\r\n *\r\n * @param file\r\n */\r\nexport async function getBase64FileLikeStr(file: File): Promise<{\r\n header: string,\r\n val: string\r\n} | undefined> {\r\n const result = await getBase64File(file)\r\n if (typeof result === 'string') {\r\n const split = result.split(',')\r\n return {\r\n header: split[0],\r\n val: split[1]\r\n }\r\n }\r\n return undefined\r\n}\r\n\r\nexport function prepareBaseAddress(url: string, add: string | undefined = '') {\r\n // if (url.search('https://') !== 0 && url.search('http://')) {\r\n // url = 'https://' + url\r\n // }\r\n\r\n if (add && add.length > 0) {\r\n if (url.lastIndexOf('/') !== (url.length - 1)) {\r\n url = url + '/'\r\n }\r\n\r\n url = url + add\r\n }\r\n\r\n if (url.lastIndexOf('/') !== (url.length - 1)) {\r\n url = url + '/'\r\n }\r\n\r\n return url\r\n}","import { iBXRestProfile, iBXRestProfileHttp } from '../typification/rest/profile'\r\nimport { toNum } from '../services/base'\r\n\r\nexport class BXRestMap {\r\n static profile(user: iBXRestProfileHttp | undefined): iBXRestProfile | undefined {\r\n return (user) ? { ...user, ...{ID: toNum(user.ID)}} as iBXRestProfile : undefined\r\n }\r\n}","export default class CookiesServices {\r\n\r\n static get(name: string): string {\r\n const results = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)')\r\n if (results)\r\n return results[2]\r\n else\r\n return ''\r\n }\r\n\r\n static set(name: string, value: string, age = 0) {\r\n let string = name + '=' + value + ';'\r\n if(age) {\r\n string += ' max-age=' + age\r\n }\r\n string += '; SameSite=None; Secure'\r\n document.cookie = string\r\n }\r\n\r\n static setObj(name: string, value: any, age = 0) {\r\n let string = name + '=' + JSON.stringify(value) + ';'\r\n if(age) {\r\n string += ' max-age=' + age\r\n }\r\n string += '; SameSite=None; Secure'\r\n document.cookie = string\r\n }\r\n\r\n static getObj<T>(name: string): T | false {\r\n const results = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)')\r\n if (results) {\r\n return JSON.parse(results[2]) as T\r\n }\r\n\r\n return false\r\n }\r\n}\r\n","export class LocalStorageServices {\r\n\r\n static get(name: string): any {\r\n return localStorage.getItem(name)\r\n }\r\n\r\n static getObj<T>(name: string): T | null {\r\n const localData = localStorage.getItem(name)\r\n return (localData) ? JSON.parse(localData) as T : null\r\n }\r\n\r\n static set(name: string, value: string): void {\r\n localStorage.setItem(name, value)\r\n }\r\n\r\n static setObj(name: string, value: any): void {\r\n let get = this.get(name)\r\n if(get && typeof get === 'object'){\r\n localStorage.setItem(\r\n name,\r\n JSON.stringify(\r\n Object.assign(\r\n get,\r\n value\r\n )\r\n )\r\n )\r\n } else {\r\n localStorage.setItem(name, JSON.stringify(value))\r\n }\r\n }\r\n\r\n static del(name: string): void {\r\n localStorage.removeItem(name)\r\n }\r\n\r\n}\r\n","export class SessionStorage {\r\n\r\n static setItem(name: string, value: any){\r\n sessionStorage.setItem(name, JSON.stringify(value))\r\n }\r\n\r\n static getItem<T>(name: string){\r\n const res = sessionStorage.getItem(name)\r\n if(res){\r\n return JSON.parse(res) as T\r\n }\r\n return undefined\r\n }\r\n}\r\n","import Cookies from '../../services/vanilla/сookies'\nimport { Observable, of, Subscription } from 'rxjs'\nimport { prepareBaseAddress } from '../base'\nimport { LocalStorageServices as LocalStorage } from '../../services/vanilla/localStorage'\nimport { BXRestSettings, DEFAULT_BX_REST_SETTINGS } from '../../settings'\nimport { iBXRestAuth } from '../../typification/auth/save'\nimport { SessionStorage } from '../vanilla/sessionStorage'\n\ntype IKeyAuth = 'sessid' | 'auth' | string\ntype StorageKind = 'localStorage' | 'sessionStorage'\n\nexport class SessionKeyError extends Error {\n constructor(message: string) {\n super(message)\n this.name = 'SessionKeyError'\n }\n}\n\nexport class SessionKeyServices {\n\n authHave = false\n authData: iBXRestAuth | undefined\n subscribe = {\n authData: new Subscription()\n }\n\n private readonly BX_REST_SETTINGS = BXRestSettings.date\n\n constructor(\n ) {\n const authData = this.getSessionItem<iBXRestAuth>(this.constructor.name)\n if (this.getAuth().length > 0) {\n this.authHave = true\n }\n\n this.authData = authData\n\n }\n\n subscribeAll() {\n this.subscribe.authData.unsubscribe()\n }\n\n getAuth(): string {\n switch (this.BX_REST_SETTINGS.auth.key) {\n case 'auth':\n return this.getCookie('auth')\n default: {\n const bxSessid = this.getBxSessid()\n if (bxSessid) {\n return bxSessid\n } else if (this.getSessid().length > 0) {\n const str = this.getSessid()\n return (str) ? str : ''\n } else {\n return this.getCookie('auth')\n }\n }\n }\n }\n\n getKeyAuth(): IKeyAuth {\n if (this.BX_REST_SETTINGS.auth.key.length) {\n return this.BX_REST_SETTINGS.auth.key\n } else {\n return 'auth'\n }\n }\n\n getSessid() {\n const check = this.getSearchParam('sessid')\n if (check) {\n this.setLocalStorage('sessid', check)\n return check\n } else if (this.getLocalStorage('sessid')) {\n return this.getLocalStorage('sessid') || ''\n }\n return ''\n }\n\n getAuthParams(): string | undefined {\n const source = this.BX_REST_SETTINGS.auth.source\n\n if (typeof source === 'function') {\n try {\n return this.normalizeValue(source())\n } catch {\n return undefined\n }\n }\n\n switch (source) {\n case 'cookies':\n return this.normalizeValue(this.getAuth())\n case 'localStorage':\n return this.normalizeValue(this.getLocalStorage(this.BX_REST_SETTINGS.auth.key))\n case 'off':\n return undefined\n default:\n return this.normalizeValue((this.authData) ? this.authData.access_token : undefined)\n }\n }\n\n getCheckAuthParamsIsOn(){\n return this.BX_REST_SETTINGS.auth.source !== 'off'\n }\n\n getAuthError(operation = 'request'): SessionKeyError {\n const source = this.BX_REST_SETTINGS.auth.source\n const key = this.getKeyAuth()\n\n if (!this.getCheckAuthParamsIsOn()) {\n return new SessionKeyError(\n `Authorization is disabled for ${operation}: BXRestSettings.auth.source is \"off\".`\n )\n }\n\n const sourceName = (typeof source === 'function') ? 'custom function' : source\n const checked = this.getAuthCheckedPlaces()\n\n return new SessionKeyError([\n `Authorization token was not found for ${operation}.`,\n `auth.source: ${sourceName}.`,\n `auth.key: ${key}.`,\n `Checked: ${checked.join(', ')}.`,\n 'Set BXRestSettings.auth.source/key correctly or save a valid token before making the request.'\n ].join(' '))\n }\n\n getBaseUrl(): Observable<string | undefined> {\n const additional_part = (this.BX_REST_SETTINGS.urls.additional_part || this.BX_REST_SETTINGS.urls.additional_part === '')\n ? this.BX_REST_SETTINGS.urls.additional_part\n : DEFAULT_BX_REST_SETTINGS.urls.additional_part\n\n if(this.BX_REST_SETTINGS.urls.source === 'string'){\n return of(prepareBaseAddress(this.BX_REST_SETTINGS.urls.key, additional_part))\n }\n\n const str = this.getLocalStorage(this.BX_REST_SETTINGS.urls.key)\n\n return of(prepareBaseAddress((str) ? str : '', additional_part))\n }\n\n getBaseUrlError(operation = 'request'): SessionKeyError {\n return new SessionKeyError([\n `Base URL was not resolved for ${operation}.`,\n `urls.source: ${this.BX_REST_SETTINGS.urls.source}.`,\n `urls.key: ${this.BX_REST_SETTINGS.urls.key || '(empty)'}.`,\n 'Set BXRestSettings.urls.key to a URL or to a localStorage key containing the portal URL.'\n ].join(' '))\n }\n\n private getAuthCheckedPlaces(): string[] {\n const source = this.BX_REST_SETTINGS.auth.source\n\n if (typeof source === 'function') {\n return ['BXRestSettings.auth.source()']\n }\n\n switch (source) {\n case 'cookies':\n return this.BX_REST_SETTINGS.auth.key === 'auth'\n ? ['cookie \"auth\"']\n : ['window.BX.bitrix_sessid()', 'URL query \"sessid\"', 'localStorage \"sessid\"', 'cookie \"auth\"']\n case 'localStorage':\n return [`localStorage \"${this.BX_REST_SETTINGS.auth.key}\"`]\n case 'off':\n return ['authorization lookup skipped']\n default:\n return [`sessionStorage \"${this.constructor.name}\" access_token`]\n }\n }\n\n private getBxSessid(): string {\n const bx = (typeof window !== 'undefined') ? (window as any).BX : undefined\n\n if (!bx || typeof bx.bitrix_sessid !== 'function') {\n return ''\n }\n\n try {\n return this.normalizeValue(bx.bitrix_sessid()) || ''\n } catch {\n return ''\n }\n }\n\n private getSearchParam(name: string): string | undefined {\n if (typeof document === 'undefined') {\n return undefined\n }\n\n try {\n return new URLSearchParams(document.location.search).get(name) || undefined\n } catch {\n return undefined\n }\n }\n\n private getCookie(name: string): string {\n if (typeof document === 'undefined') {\n return ''\n }\n\n try {\n return Cookies.get(name)\n } catch {\n return ''\n }\n }\n\n private getLocalStorage(name: string): string | null {\n return this.getStorageItem('localStorage', name)\n }\n\n private setLocalStorage(name: string, value: string): void {\n if (typeof localStorage === 'undefined') {\n return\n }\n\n try {\n LocalStorage.set(name, value)\n } catch {\n return\n }\n }\n\n private getSessionItem<T>(name: string): T | undefined {\n if (typeof sessionStorage === 'undefined') {\n return undefined\n }\n\n try {\n return SessionStorage.getItem<T>(name)\n } catch {\n return undefined\n }\n }\n\n private getStorageItem(kind: StorageKind, name: string): string | null {\n const storage = kind === 'localStorage'\n ? (typeof localStorage !== 'undefined' ? localStorage : undefined)\n : (typeof sessionStorage !== 'undefined' ? sessionStorage : undefined)\n\n if (!storage) {\n return null\n }\n\n try {\n return storage.getItem(name)\n } catch {\n return null\n }\n }\n\n private normalizeValue(value: string | null | undefined): string | undefined {\n return (value && value.length > 0) ? value : undefined\n }\n}\n","import { iHttpParamSettings } from '../../typification/rest/settings'\r\n\r\nexport class HttpData {\r\n\r\n defSettings: iHttpParamSettings = {\r\n timeZone: {\r\n calc: true,\r\n levelOut: false\r\n }\r\n }\r\n\r\n getHttpParamsPost(\r\n obj: any,\r\n sendHttpParams: FormData = new FormData(),\r\n nesting: string[] = [],\r\n settings = this.defSettings\r\n ): any {\r\n if (obj instanceof Blob) {\r\n let first = nesting[0]\r\n let setKey = (nesting.length > 1)\r\n ? first + '[' + nesting.slice(1).join('][') + ']'\r\n : first\r\n sendHttpParams.set(setKey, obj)\r\n return sendHttpParams\r\n } else if (obj instanceof Date) {\r\n let first = nesting[0]\r\n let tzoffset = (settings.timeZone.calc) ? obj.getTimezoneOffset() * 60000 : 0 // вычисляем влияние часового пояса\r\n let levelOut = (settings.timeZone.levelOut) ? obj.getTimezoneOffset() * 60000 : 0 // вычисляем влияние часового пояса\r\n let setKey = (nesting.length > 1)\r\n ? first + '[' + nesting.slice(1).join('][') + ']'\r\n : first\r\n sendHttpParams.set(setKey, (new Date(obj.valueOf() + tzoffset - levelOut)).toISOString())\r\n return sendHttpParams\r\n } else {\r\n for (const key in obj) {\r\n let setKey = ''\r\n if (nesting.length) {\r\n let first = nesting[0]\r\n setKey = (nesting.length > 1)\r\n ? first + '[' + nesting.slice(1).join('][') + '][' + key + ']'\r\n : first + '[' + key + ']'\r\n } else {\r\n setKey = key\r\n }\r\n switch (typeof obj[key]) {\r\n case 'string':\r\n sendHttpParams.set(setKey, obj[key])\r\n break\r\n case 'symbol':\r\n case 'number':\r\n case 'bigint':\r\n case 'boolean':\r\n sendHttpParams.set(setKey, String(obj[key]))\r\n break\r\n case 'object':\r\n nesting.push(key)\r\n sendHttpParams = this.getHttpParamsPost(\r\n obj[key],\r\n sendHttpParams,\r\n nesting,\r\n settings\r\n )\r\n nesting.pop()\r\n break\r\n case 'function':\r\n case 'undefined':\r\n default:\r\n console.error('You sent something wrong', obj[key], typeof obj[key], typeof obj)\r\n }\r\n }\r\n }\r\n return sendHttpParams\r\n }\r\n\r\n sliceArrayIntoChunks(arr: any[], chunkSize: number) {\r\n const res = []\r\n for (let i = 0; i < arr.length; i += chunkSize) {\r\n const chunk = arr.slice(i, i + chunkSize)\r\n res.push(chunk)\r\n }\r\n return res\r\n }\r\n\r\n removingMultipleSlashes(str: string) {\r\n return str.replace(/\\/{2,}/g, '/')\r\n }\r\n}\r\n","import { iHttpParamSettings } from '../../../typification/rest/settings'\r\nimport { Observable } from 'rxjs'\r\nimport { HttpData } from '../HttpData'\r\n\r\nexport abstract class BaseHttp extends HttpData {\r\n\r\n abstract httpGet<T>(\r\n url: string,\r\n params: any,\r\n settings: iHttpParamSettings\r\n ): Observable<T | undefined>\r\n\r\n abstract httpPost<T>(url: string,\r\n params: any ,\r\n settings: iHttpParamSettings\r\n ): Observable<T | undefined>\r\n}\r\n","import { Observable, from, throwError } from 'rxjs'\nimport { switchMap } from 'rxjs/operators'\nimport axios, { AxiosInstance } from 'axios'\nimport { SessionKeyServices } from '../../services/http/sessionKey'\nimport clone from 'just-clone'\nimport { iHttpParamSettings } from '../../typification/rest/settings'\nimport { BaseHttp } from './base/base'\nimport { prepareBaseAddress } from '../base'\n\nexport class HttpServices extends BaseHttp {\n\n protected readonly axiosInstance: AxiosInstance\n public readonly session = new SessionKeyServices()\n\n constructor() {\n super()\n this.axiosInstance = axios.create()\n }\n\n override httpPost<T>(\n url: string,\n params: any = {},\n settings: iHttpParamSettings = this.defSettings\n ): Observable<T | undefined> {\n const auth = this.session.getAuthParams()\n const checkIsOn = this.session.getCheckAuthParamsIsOn()\n const paramsClone = clone(params)\n\n if (checkIsOn) {\n if (!auth) {\n return throwError(() => this.session.getAuthError('post'))\n }\n\n paramsClone[this.session.getKeyAuth()] = auth\n }\n\n return this.session.getBaseUrl().pipe(\n switchMap((baseUrl) => {\n if (!baseUrl) {\n return throwError(() => this.session.getBaseUrlError('post'))\n }\n\n const fullUrl = prepareBaseAddress(baseUrl) + url\n if (this.session.getKeyAuth() === 'sessid') {\n const body = this.getHttpParamsPost(paramsClone, new FormData(), [], settings)\n const urlEncodedBody = new URLSearchParams()\n\n Object.keys(body).forEach((key) => {\n const value = paramsClone[key]\n\n if (typeof value === 'object' && value !== null) {\n for (const subKey in value) {\n if (Object.prototype.hasOwnProperty.call(value, subKey)) {\n urlEncodedBody.append(`${key}[${subKey}]`, value[subKey])\n }\n }\n } else {\n urlEncodedBody.append(key, value)\n }\n })\n\n return from(\n this.axiosInstance.post<T>(fullUrl, urlEncodedBody.toString(), {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n }).then((response) => response.data)\n )\n }\n\n const body = this.getHttpParamsPost(paramsClone, new FormData(), [], settings)\n return from(\n this.axiosInstance.post<T>(fullUrl, body).then((response) => response.data)\n )\n })\n )\n }\n\n override httpGet<T>(url: string, params: any = {}): Observable<T | undefined> {\n const auth = this.session.getAuthParams()\n const checkIsOn = this.session.getCheckAuthParamsIsOn()\n const paramsClone = clone(params)\n\n if (checkIsOn) {\n if (!auth) {\n return throwError(() => this.session.getAuthError('get'))\n }\n\n paramsClone[this.session.getKeyAuth()] = auth\n }\n\n return this.session.getBaseUrl().pipe(\n switchMap((baseUrl) => {\n if (!baseUrl) {\n return throwError(() => this.session.getBaseUrlError('get'))\n }\n\n const fullUrl = prepareBaseAddress(baseUrl) + url\n const queryString = new URLSearchParams(paramsClone).toString()\n const finalUrl = `${fullUrl}?${queryString}`\n\n return from(\n this.axiosInstance.get<T>(finalUrl).then((response) => response.data)\n )\n })\n )\n }\n}\n","import { Observable, throwError, forkJoin, from } from 'rxjs'\r\nimport clone from 'just-clone'\r\nimport { HttpServices } from './http'\r\nimport {\r\n iBatchRequestAnswer, iBatchRequestParam, iBatchRequestParamArr, iBatchRequestParamHttp, keyBatch,\r\n} from '../../typification/rest/batch/batchRequestParam'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\nimport flatten from 'just-flatten-it'\r\nimport { instanceOfiBXRestAnswerSuccess } from '../../functions/mapResult'\r\nimport { switchMap } from 'rxjs/operators'\nimport * as qs from 'qs'\nimport { prepareBaseAddress } from '../base'\n\r\nexport class HttpBXServices extends HttpServices {\r\n\r\n /**\r\n * Это пиздец а не метод\r\n * TODO: Удалить данный метод после реализации его в разделе Navvy\r\n * @param param\r\n */\r\n branch<T, A>(param: iBatchRequestParamArr<T> | iBatchRequestParam<T>[])\r\n : Observable<iBatchRequestAnswer<A>[] | undefined> {\r\n let prepareParam = Object.entries<string>(this.prepareBatch<T>(param))\r\n const size = 50 // больше не отдаст\r\n let subarray = [] //массив в который будет выведен результат.\r\n for (let i = 0; i < Math.ceil(prepareParam.length / size); i++) {\r\n subarray[i] = prepareParam.slice((i * size), (i * size) + size)\r\n }\r\n\r\n return forkJoin(\r\n subarray.map(i => {\r\n return this.httpPost('batch.json', {\r\n halt: 0,\r\n cmd: Object.assign({}, ...i.map(x => {\r\n return {[x[0]]: x[1]}\r\n }))\r\n })\r\n })\r\n ) as Observable<iBatchRequestAnswer<A>[]>\r\n }\r\n\r\n prepareBatch<T>(param: iBatchRequestParamArr<T> | iBatchRequestParam<T>[]): iBatchRequestParamHttp {\r\n let res: iBatchRequestParamHttp = Object.keys(param).reduce(\r\n (obj, key) => {\r\n obj[key] = ''\r\n return obj\r\n },\r\n {} as iBatchRequestParamHttp\r\n )\r\n for (let key in param) {\r\n if (typeof key === 'string' || typeof key === 'number' && param[key].param) {\r\n res[key] = param[key].name + '?' + qs.stringify(param[key].param, {arrayFormat: 'brackets'})\r\n }\r\n }\r\n return res\r\n }\r\n\r\n mapBranchResult<T>(res: iBatchRequestAnswer<T>[]) {\r\n return Object.assign([], ...res.map(i =>\r\n (instanceOfiBXRestAnswerSuccess(i) && instanceOfiBXRestAnswerSuccess(i.result)) ? i.result.result : undefined)\r\n ) as Record<keyBatch, T>\r\n }\r\n\r\n mapBranchResultWithoutKey<T>(res: iBatchRequestAnswer<T>[]): T[] {\r\n return flatten<T>(Object.assign([], ...res.map(i =>\r\n (instanceOfiBXRestAnswerSuccess(i) && instanceOfiBXRestAnswerSuccess(i.result))\r\n ? i.result.result\r\n : undefined))\r\n )\r\n }\r\n\r\n /**\r\n * Основной метод для запросов\r\n *\r\n * @param name\r\n * @param params\r\n */\r\n post<T>(name: string[], params: any = {}) {\r\n return this.httpPost<iBXRestAnswer<T>>(this.getNameMethod(name), params)\r\n }\r\n\r\n /**\r\n * Второстепенный метод для запросов. По возможности лучше не использовать\r\n *\r\n * @param name\r\n * @param params\r\n */\r\n get<T>(name: string[], params: any = {}) {\r\n return this.httpGet<iBXRestAnswer<T>>(this.getNameMethod(name), params)\r\n }\r\n\r\n override httpPost<T>(url: string, params: any = {}): Observable<T | undefined> {\n const paramsClone = clone(params)\n const key = this.session.getKeyAuth()\n const auth = this.session.getAuthParams()\n const checkIsOn = this.session.getCheckAuthParamsIsOn()\n\n if (checkIsOn) {\n if (!auth) {\n return throwError(() => this.session.getAuthError('post'))\n }\n\n if (key !== 'OAuth2') {\n paramsClone[key] = auth\n }\n }\n\n return this.session.getBaseUrl().pipe(\n switchMap((baseUrl) => {\n if (!baseUrl) {\n return throwError(() => this.session.getBaseUrlError('post'))\n }\n\r\n const fullUrl = prepareBaseAddress(baseUrl) + url\r\n\r\n if (key === 'sessid') {\r\n // Преобразуем параметры в формат x-www-form-urlencoded\r\n const bodyString = this.serializeBitrixParams(paramsClone)\r\n return from(\r\n this.axiosInstance.post<T>(fullUrl, bodyString, {\r\n headers: {'Content-Type': 'application/x-www-form-urlencoded'},\r\n }).then((response) => response.data)\r\n )\r\n }\r\n\r\n return from(\r\n this.axiosInstance.post<T>(fullUrl, paramsClone,\r\n {\r\n withCredentials: key === 'OAuth2',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n }\r\n }\r\n ).then((response) => response.data)\r\n )\r\n })\r\n )\r\n }\r\n\r\n serializeBitrixParams(obj: any, prefix = ''): string {\r\n const pairs: string[] = []\r\n\r\n for (const key in obj) {\r\n if (!Object.prototype.hasOwnProperty.call(obj, key)) continue\r\n\r\n const value = obj[key]\r\n const prefixedKey = prefix ? `${prefix}[${key}]` : key\r\n\r\n if (value === undefined) {\r\n continue\r\n } else if (value === null) {\r\n pairs.push(`${encodeURIComponent(prefixedKey)}=`)\r\n } else if (value instanceof Date) {\r\n pairs.push(`${encodeURIComponent(prefixedKey)}=${encodeURIComponent(value.toISOString())}`)\r\n } else if (Array.isArray(value)) {\r\n value.forEach((item) => {\r\n if (item === undefined) return\r\n if (item === null) {\r\n pairs.push(`${encodeURIComponent(prefixedKey)}[]=`)\r\n } else if (item instanceof Date) {\r\n pairs.push(`${encodeURIComponent(prefixedKey)}[]=${encodeURIComponent(item.toISOString())}`)\r\n } else if (typeof item === 'object') {\r\n pairs.push(this.serializeBitrixParams(item, `${prefixedKey}[]`))\r\n } else {\r\n pairs.push(`${encodeURIComponent(prefixedKey)}[]=${encodeURIComponent(item)}`)\r\n }\r\n })\r\n } else if (typeof value === 'object') {\r\n pairs.push(this.serializeBitrixParams(value, prefixedKey))\r\n } else {\r\n pairs.push(`${encodeURIComponent(prefixedKey)}=${encodeURIComponent(value)}`)\r\n }\r\n }\r\n\r\n return pairs.join('&')\r\n }\r\n\r\n // Мб не работает\r\n override httpGet<T>(url: string, params: any = {}): Observable<T | undefined> {\n if (params === null) {\n params = {}\n }\n const auth = this.session.getAuthParams()\n const paramsClone = clone(params)\n const checkIsOn = this.session.getCheckAuthParamsIsOn()\n const key = this.session.getKeyAuth()\n\n if (checkIsOn) {\n if (!auth) {\n return throwError(() => this.session.getAuthError('get'))\n }\n\n if (key !== 'OAuth2') {\n paramsClone[key] = auth\n }\n }\n\n let options = {\n params: paramsClone\n // params: JSON.stringify(paramsClone)\r\n }\r\n\r\n return this.session.getBaseUrl().pipe(\n switchMap((baseUrl) => {\n if (!baseUrl) {\n return throwError(() => this.session.getBaseUrlError('get'))\n }\n\n return from(\n this.axiosInstance.post<T>(prepareBaseAddress(baseUrl) + url, options,\n {\n withCredentials: key === 'OAuth2',\n headers: {\n 'Content-Type': 'application/json',\n }\n }\r\n ).then((response) => response.data)\r\n )\r\n })\r\n )\r\n }\r\n\r\n getNameMethod(arr: string[]) {\r\n return arr.join('.')\r\n }\r\n\r\n}\r\n\r\n","import { Observable } from 'rxjs'\r\nimport { iBXRestAnswer } from '../../../typification/rest/base/answer'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport { BXRestMapResult, instanceOfiBXRestAnswerSuccess } from '../../../functions/mapResult'\r\nimport { HttpBXServices } from '../../http/HttpBX'\r\nimport { ReturnTypeNavvy } from '../navvy-support'\r\n\r\n// TODO: посмотреть как будет себя вести, если все в порядке то оставить\r\ninterface Mapper<T, R> {\r\n (param: T): R\r\n (param: undefined): undefined\r\n}\r\n\r\nexport abstract class NavvyPagBase<T, R, P> {\r\n\r\n protected readonly http: HttpBXServices\r\n pageSize = 50 // стандартный размер страницы\r\n\r\n public constructor(\r\n protected url: string[],\r\n protected param: P,\r\n /// protected map: Mapper<T, R> | undefined = undefined\r\n protected map: ((param: T| undefined) => R | undefined) | undefined = undefined\r\n ) {\r\n this.http = new HttpBXServices()\r\n }\r\n\r\n resVanilla() {\r\n return this.http.post<T>(this.url, this.param)\r\n }\r\n\r\n mapForVanilla(): Observable<iBXRestAnswer<ReturnTypeNavvy<T, R>> | undefined> {\r\n return this.resVanilla()\r\n .pipe(\r\n map(v => {\r\n if (v && instanceOfiBXRestAnswerSuccess(v) && this.map) {\r\n // Применяем this.map и явно приводим тип результата\r\n const result = this.map(v.result as T) as ReturnTypeNavvy<T, R>\r\n return { ...v, ...{result: result} } as iBXRestAnswer<ReturnTypeNavvy<T, R>>\r\n }\r\n return v as iBXRestAnswer<ReturnTypeNavvy<T, R>> | undefined\r\n })\r\n )\r\n }\r\n\r\n res() {\r\n return this.mapAndError(this.resVanilla()).pipe(\r\n map(v => (v && this.map)\r\n ? this.map(v)\r\n : v\r\n )\r\n ) as Observable<ReturnTypeNavvy<T, R> | undefined>\r\n }\r\n\r\n mapAndError<T>(\r\n request: Observable<iBXRestAnswer<T> | undefined>\r\n ) {\r\n return request.pipe(\r\n map(v => BXRestMapResult(v)),\r\n catchError((err: any) => {\r\n console.error(err)\r\n throw new Error((err.error) ? err.error : err)\r\n })\r\n )\r\n }\r\n\r\n}\r\n","import { NavvyPagBase } from './extends/navvy-pag-base'\r\n\r\nexport class NavvySimple<T, R, P> extends NavvyPagBase<T, R, P> {\r\n\r\n}\r\n","export const $get = 'get'\r\nexport const $add = 'add'\r\nexport const $set = 'set'\r\nexport const $event = 'event'\r\nexport const $update = 'update'\r\nexport const $user = 'user'\r\nexport const $task = 'task'\r\nexport const $calendar = 'calendar'\r\nexport const $meeting = 'meeting'\r\nexport const $list = 'list'\r\nexport const $search = 'search'\r\nexport const $accessibility = 'accessibility'\r\nexport const $delete = 'delete'\r\nexport const $nearest = 'nearest'\r\nexport const $params = 'params'\r\nexport const $status = 'status'\r\nexport const $resource = 'resource'\r\nexport const $booking = 'booking'\r\nexport const $section = 'section'\r\nexport const $settings = 'settings'\r\nexport const $tasks = 'tasks'\r\nexport const $elapseditem = 'elapseditem'\r\nexport const $getlist = 'getlist'\r\nexport const $approve = 'approve'\r\nexport const $complete = 'complete'\r\nexport const $counters = 'counters'\r\nexport const $defer = 'defer'\r\nexport const $delegate = 'delegate'\r\nexport const $disapprove = 'disapprove'\r\nexport const $favorite = 'favorite'\r\nexport const $files = 'files'\r\nexport const $file = 'file'\r\nexport const $attach = 'attach'\r\nexport const $field = 'field'\r\nexport const $getFields = 'get' + $field + 's'\r\nexport const $getaccess = 'getaccess'\r\nexport const $history = 'history'\r\nexport const $pause = 'pause'\r\nexport const $renew = 'renew'\r\nexport const $start = 'start'\r\nexport const $result = 'result'\r\nexport const $planner = 'planner'\r\nexport const $disk = 'disk'\r\nexport const $rename = 'rename'\r\nexport const $markdeleted = 'markdeleted'\r\nexport const $restore = 'restore'\r\nexport const $folder = 'folder'\r\nexport const $getchildren = 'getchildren'\r\nexport const $copyto = 'copyto'\r\nexport const $moveto = 'moveto'\r\nexport const $uploadfile = 'uploadfile'\r\nexport const $storage = 'storage'\r\nexport const $getTypes = 'getTypes'\r\nexport const $stages = 'stages'\r\nexport const $getmanifest = 'getmanifest'\r\nexport const $isactionallowed = 'isactionallowed'\r\nexport const $commentitem = 'commentitem'\r\nexport const $department = 'department'\r\nexport const $sonet_group = 'sonet_group'\r\nexport const $create = 'create'\r\nexport const $feature = 'feature'\r\nexport const $access = 'access'\r\nexport const $request = 'request'\r\nexport const $socialnetwork = 'socialnetwork'\r\nexport const $api = 'api'\r\nexport const $workgroup = 'workgroup'\r\nexport const $log = 'log'\r\nexport const $blogpost = 'blogpost'\r\nexport const $lists = 'lists'\r\nexport const $iblock = 'iblock'\r\nexport const $type = 'type'\r\nexport const $id = 'id'\r\nexport const $element = 'element'\r\nexport const $url = 'url'\r\nexport const $bizproc = 'bizProc'\r\nexport const $workflow = 'workflow'\nexport const $instances = 'instances'\nexport const $terminate = 'terminate'\nexport const $kill = 'kill'\nexport const $template = 'template'\r\nexport const $activity = 'activity'\r\nexport const $robot = 'robot'\r\nexport const $send = 'send'\r\nexport const $share = 'share'\r\nexport const $blogcomment = 'blogcomment'\r\nexport const $server = 'server'\r\nexport const $time = 'time'\r\nexport const $chat = 'chat'\r\nexport const $message = 'message'\r\nexport const $im = 'im'\r\nexport const $updateTitle = 'updateTitle'\r\nexport const $updateColor = 'updateColor'\r\nexport const $updateAvatar = 'updateAvatar'\r\nexport const $setOwner = 'setOwner'\r\nexport const $mute = 'mute'\r\nexport const $timeMan = 'timeman'\r\nexport const $item = 'item'\r\nexport const $userfield = 'userfield'\r\nexport const $config = 'config'\r\nexport const $pull = 'pull'\r\nexport const $channel = 'channel'\r\nexport const $public = 'public'\r\nexport const $application = 'application'\r\nexport const $dialog = 'dialog'\r\nexport const $users = 'users'\r\nexport const $messages = 'messages'\r\nexport const $read = 'read'\r\nexport const $unread = 'unread'\r\nexport const $writing = 'writing'\r\nexport const $all = 'all'\r\nexport const $leave = 'leave'\r\nexport const $recent = 'recent'\r\nexport const $hide = 'hide'\r\nexport const $pin = 'pin'\r\nexport const $end = 'end'\r\nexport const $idle = 'idle'\r\nexport const $crm = 'crm'\r\nexport const $lead = 'lead'\r\nexport const $deal = 'deal'\r\nexport const $contact = 'contact'\r\nexport const $company = 'company'\nexport const $quote = 'quote'\nexport const $productrows = 'productrows'\n\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\nimport { iBXRestUserUserField } from '../../typification/rest/user/userfield/list'\nimport { $list, $user, $userfield } from '../../consts/part-name-methods'\n\nexport class BXRestUserUserfield {\n protected url = {\n list: [$user, $userfield, $list],\n }\n private readonly http = new HttpBXServices()\n\r\n list() {\r\n return this.http.post<iBXRestUserUserField[]>(this.url.list)\r\n }\r\n}\r\n","import { iBXRestParamUserGet } from '../typification/rest/user'\r\nimport { HttpBXServices } from '../services/http/HttpBX'\r\nimport { iBXRestUserHttp, iBXRestUserHttpField } from '../typification/rest/user'\nimport { iBXRestParamUserSearch } from '../typification/rest/user'\nimport { BXRestUserUserfield } from './user/userfield'\nimport { $get, $search, $update, $user } from '../consts/part-name-methods'\n\r\nexport class BXRestUser {\r\n private readonly http = new HttpBXServices()\r\n public readonly userfield = new BXRestUserUserfield()\r\n\r\n protected url = {\n admin: [$user, 'admin'],\n get: [$user, $get],\n current: [$user, 'current'],\n update: [$user, $update],\n search: [$user, $search],\n access: [$user, 'access'],\n fields: [$user, 'fields'],\n }\n\r\n admin() {\r\n return this.http.post<boolean>(this.url.admin)\r\n }\r\n\r\n get(params: iBXRestParamUserGet = {}) {\r\n return this.http.post<iBXRestUserHttp[]>\r\n (\r\n this.url.get,\r\n params\r\n )\r\n }\r\n\r\n current() {\r\n return this.http.post<iBXRestUserHttp>(this.url.current, {})\r\n }\r\n\r\n update(user: iBXRestParamUserGet) {\r\n return this.http.post<iBXRestUserHttp[]>(\r\n this.url.update,\r\n user\r\n )\r\n }\r\n\r\n search(params: iBXRestParamUserSearch) {\r\n return this.http.post<iBXRestUserHttp[]>(this.url.search, params)\r\n }\r\n\r\n access(access: string[]) {\r\n return this.http.post<boolean>(this.url.access, {ACCESS: access})\r\n }\r\n\r\n fields() {\r\n return this.http.post<iBXRestUserHttpField>(this.url.fields)\r\n }\r\n}\r\n\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\r\nimport {\r\n iBXRestHttpListsElement,\r\n iBXRestParamListsElementGet\r\n} from '../../typification/rest/lists/element/get'\nimport { iBXRestParamListsElementAdd } from '../../typification/rest/lists/element/add'\nimport { $add, $element, $get, $lists } from '../../consts/part-name-methods'\n\nexport class BXRestListsElement {\n protected readonly url = {\n add: [$lists, $element, $add],\n get: [$lists, $element, $get],\n }\n private readonly http = new HttpBXServices()\n\r\n get(pram: iBXRestParamListsElementGet) {\r\n return this.http.post<iBXRestHttpListsElement[]>(\r\n this.url.get,\r\n pram\r\n )\r\n }\r\n\r\n add(param: iBXRestParamListsElementAdd) {\r\n return this.http.post<number>(this.url.add, param)\r\n }\r\n\r\n}\r\n","import {\r\n BXRestHttpListsFieldGet,\r\n iBXRestParamListField\r\n} from '../../typification/rest/lists/field/get'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { $field, $get, $lists } from '../../consts/part-name-methods'\r\n\r\nexport class BXRestListsField {\r\n protected readonly url = {\r\n // /**\r\n // * Метод создает поле списка\r\n // */\r\n // add: [$lists, $field, $add],\r\n // /**\r\n // * Метод удаляет поле списка\r\n // */\r\n // delete: [$lists, $field, $delete],\r\n /**\r\n * Метод возвращает данные поля\r\n */\r\n get: [$lists, $field, $get],\r\n // type: {\r\n // /**\r\n // * Метод возвращает доступные типа полей для указанного списка\r\n // */\r\n // get: [$lists, $field, $type, $get],\r\n // },\r\n // /**\r\n // * Метод обновляет поле списка\r\n // */\r\n // update: [$lists, $field, $update],\r\n }\r\n private readonly http = new HttpBXServices()\r\n\r\n get(param: iBXRestParamListField) {\r\n return this.http.post<BXRestHttpListsFieldGet>(this.url.get, param)\r\n }\r\n\r\n}\r\n","import { BXRestListsElement } from './lists/element'\r\nimport { HttpBXServices } from '../services/http/HttpBX'\r\nimport { iBXRestListItemHttp, iBXRestParamListGet } from '../typification/rest/lists/get'\r\nimport { BXRestListsField } from './lists/field'\r\nimport { $add, $element, $field, $get, $lists } from '../consts/part-name-methods'\r\n\r\nexport class BXRestLists {\r\n protected url = {\r\n // /**\r\n // * Метод создаёт список\r\n // */\r\n // add: [$lists, $add],\r\n // /**\r\n // * Метод удаляет список\r\n // */\r\n // delete: [$lists, $delete],\r\n /**\r\n * Метод возвращает данные по спискам\r\n */\r\n get: [$lists, $get],\r\n // /**\r\n // * Метод обновляет существующий список\r\n // */\r\n // update: [$lists, $update],\r\n // /**\r\n // * Метод возвращает id типа инфоблока\r\n // */\r\n // getIBlockTypeId: [$lists, $get, $iblock, $type, $id],\r\n element: {\r\n /**\r\n * Метод создаёт элемент списка\r\n */\r\n add: [$lists, $element, $add],\r\n // /**\r\n // * Метод удаляет элемент списка TODO: Реализовать\r\n // */\r\n // delete: [$lists, $element, $delete],\r\n /**\r\n * Метод возвращает список элементов или элемент\r\n */\r\n get: [$lists, $element, $get],\r\n // /**\r\n // * Метод обновляет элемент списка TODO: Реализовать\r\n // */\r\n // update: [$lists, $element, $update],\r\n // /**\r\n // * Метод возвращает путь к файлу TODO: Реализовать\r\n // */\r\n // getFileUrl: [$lists, $element, $get, $file, $url]\r\n },\r\n field: {\r\n // /**\r\n // * Метод создает поле списка\r\n // */\r\n // add: [$lists, $field, $add],\r\n // /**\r\n // * Метод удаляет поле списка\r\n // */\r\n // delete: [$lists, $field, $delete],\r\n /**\r\n * Метод возвращает данные поля\r\n */\r\n get: [$lists, $field, $get],\r\n // type: {\r\n // /**\r\n // * Метод возвращает доступные типа полей для указанного списка\r\n // */\r\n // get: [$lists, $field, $type, $get],\r\n // },\r\n // /**\r\n // * Метод обновляет поле списка\r\n // */\r\n // update: [$lists, $field, $update],\r\n }\r\n }\r\n\r\n public readonly element = new BXRestListsElement()\r\n public readonly field = new BXRestListsField()\r\n private readonly http = new HttpBXServices()\r\n\r\n // getField(pram: getListFieldParam): Observable<iHttpAnswerBX<FieldItemLists[]> | undefined> {\r\n // return this.http.post<iHttpAnswerBX<{ [key: string]: FieldItemLists }>>(this.url.field.get, pram)\r\n // }\r\n\r\n get(param: iBXRestParamListGet){\r\n return this.http.post<iBXRestListItemHttp[]>(this.url.get, param)\r\n }\r\n}\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\r\nimport {\r\n iBXRestParamElapseditemGet,\r\n iBXRestTaskElapsedItemHttp,\r\n iBXRestParamAddElapseditem,\r\n iBXRestParamUpdateElapseditem,\r\n iBXRestParamDelElapseditem,\n iIsActionAllowedParam\n} from '../../typification/rest/task'\nimport {\n $add,\n $delete,\n $elapseditem,\n $getlist,\n $isactionallowed,\n $task,\n $update\n} from '../../consts/part-name-methods'\n\r\n\r\nexport class BXRestTaskElapsedItem {\n protected url = {\n getList: [$task, $elapseditem, $getlist],\n add: [$task, $elapseditem, $add],\n delete: [$task, $elapseditem, $delete],\n isActionAllowed: [$task, $elapseditem, $isactionallowed],\n update: [$task, $elapseditem, $update],\n }\n private readonly http = new HttpBXServices()\n\r\n getList(param: iBXRestParamElapseditemGet = {}) {\r\n return this.http.post<iBXRestTaskElapsedItemHttp[]>(this.url.getList, param)\r\n }\r\n\r\n add(param: iBXRestParamAddElapseditem) {\r\n return this.http.post<number>(\r\n this.url.add,\r\n param\r\n )\r\n }\r\n\r\n update(param: iBXRestParamUpdateElapseditem) {\r\n return this.http.post<null>\r\n (\r\n this.url.update,\r\n param\r\n )\r\n }\r\n\r\n del(param: iBXRestParamDelElapseditem) {\r\n return this.http.post<null>(\r\n this.url.delete,\r\n param\r\n )\r\n }\r\n\r\n /**\r\n * idAction:\r\n * 1 - ACTION_ELAPSED_TIME_ADD\r\n * 2 - ACTION_ELAPSED_TIME_MODIFY\r\n * 3 - ACTION_ELAPSED_TIME_REMOVE\r\n * ITEMID - обязателен в конечной отправке но не обязателен для ACTION_ELAPSED_TIME_ADD,\r\n * поэтому этом методе можно ставить \"1\" например, так же метод может выдавать ошибки о не доступности задачи\r\n * поэтому рекомендую воспользоваться аналогичным методом в пространстве имен navvy\r\n * @param param\r\n */\r\n isActionAllowed(param: iIsActionAllowedParam) {\r\n return this.http.post<boolean>(this.url.isActionAllowed, param)\r\n }\r\n\r\n}\r\n","import {\r\n $add,\r\n $commentitem,\r\n $delete,\r\n $get,\r\n $getlist,\r\n $getmanifest, $isactionallowed,\r\n $task,\r\n $update\r\n} from '../../consts/part-name-methods'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestParamTaskCommentItemGet } from '../../typification/rest/task/commentitem/get'\r\nimport { iBXRestTaskCommentHtml } from '../../typification/rest/task/commentitem/commentitem'\r\nimport { iBXRestCommentTaskAdd } from '../../typification/rest/task/commentitem/add'\r\nimport { iBXRestTaskCommentItemUpdate } from '../../typification/rest/task/commentitem/update'\r\nimport { BXRestTaskCommentItemGetList } from '../../typification/rest/task/commentitem/getlist'\r\nimport { BXRestTaskCommentItemDelete } from '../../typification/rest/task/commentitem/delete'\r\n\r\nexport class BXRestTaskCommentItem {\r\n\r\n protected url = {\r\n getManifest: [$task, $commentitem, $getmanifest], // Возвращает список методов и их описание\r\n getList: [$task, $commentitem, $getlist], // Возвращает список комментариев к задаче\r\n get: [$task, $commentitem, $get], // Возвращает комментарий к задаче\r\n add: [$task, $commentitem, $add], // Создает новый комментарий к задаче\r\n update: [$task, $commentitem, $update], // Обновляет данные комментария\r\n delete: [$task, $commentitem, $delete], // Удаляет комментарий\r\n isActionAllowed: [$task, $commentitem, $isactionallowed], // Проверяет, разрешено ли действие\r\n }\r\n\r\n private readonly http = new HttpBXServices()\r\n\r\n add(param: iBXRestCommentTaskAdd) {\r\n return this.http.post<number>(this.url.add, param)\r\n }\r\n\r\n update(param: iBXRestTaskCommentItemUpdate) {\r\n return this.http.post<boolean>(this.url.update, param)\r\n }\r\n\r\n get(param: iBXRestParamTaskCommentItemGet) {\r\n return this.http.post<iBXRestTaskCommentHtml>(this.url.get, param)\r\n }\r\n\r\n getlist(param: BXRestTaskCommentItemGetList) {\r\n return this.http.post<iBXRestTaskCommentHtml[]>(this.url.getList, param)\r\n }\r\n\r\n del(param: BXRestTaskCommentItemDelete) {\r\n return this.http.post<boolean>(this.url.delete, param)\r\n }\r\n}\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\nimport { $getlist, $planner, $task } from '../../consts/part-name-methods'\n\r\nexport class BXRestTaskPlanner {\r\n private readonly http = new HttpBXServices()\n\n getList(){\n return this.http.post<(string | number)[]>([$task, $planner, $getlist])\n }\n}\n","import {\r\n iBXRestParamTaskItemUserFieldGetlist,\r\n iBXRestTaskItemUserFieldGetlistHttp\r\n} from '../../../typification/rest/task/item/userfield/getlist'\nimport { HttpBXServices } from '../../../services/http/HttpBX'\nimport { $item, $task, $userfield } from '../../../consts/part-name-methods'\n\nexport class BXRestTaskItemUserField {\n private readonly url = {\n getList: [$task, $item, $userfield, 'getlist'],\n }\n private readonly http = new HttpBXServices()\n\r\n getList(param: iBXRestParamTaskItemUserFieldGetlist){\r\n return this.http.post<iBXRestTaskItemUserFieldGetlistHttp[]>(this.url.getList, param)\r\n }\r\n\r\n}\n","import { BXRestTaskItemUserField } from './item/userfield'\r\n\r\nexport class BXRestTaskItem {\r\n public readonly userField = new BXRestTaskItemUserField()\r\n}","import { BXRestTaskElapsedItem } from './task/elapseditem'\r\nimport { BXRestTaskCommentItem } from './task/commentitem'\r\nimport { BXRestTaskPlanner } from './task/planner'\r\nimport { BXRestTaskItem } from './task/item'\r\n\r\nexport class BXRestTask {\r\n public readonly elapsedItem = new BXRestTaskElapsedItem()\r\n public readonly commentItem = new BXRestTaskCommentItem()\r\n public readonly planner = new BXRestTaskPlanner()\r\n public readonly item = new BXRestTaskItem()\r\n}\r\n","import { HttpBXServices } from '../../../services/http/HttpBX'\r\nimport {\r\n iBXParamRestTasksTaskResultAdd,\r\n iBXRestTasksTaskResultHttp\r\n} from '../../../typification/rest/tasks/task/result/result'\nimport { iBXRestParamTasksTaskResultList } from '../../../typification/rest/tasks/result/list'\nimport { $list, $result, $task, $tasks } from '../../../consts/part-name-methods'\n\nexport class BXRestTasksTaskResult {\n protected url = {\n list: [$tasks, $task, $result, $list],\n addFromComment: [$tasks, $task, $result, 'addFromComment'],\n deleteFromComment: [$tasks, $task, $result, 'deleteFromComment'],\n }\n private readonly http = new HttpBXServices()\n\r\n deleteFromComment(commentID: number) {\r\n return this.http.post<null>(this.url.deleteFromComment, {commentId: commentID})\r\n }\r\n\r\n addFromComment(param: iBXParamRestTasksTaskResultAdd) {\r\n return this.http.post<iBXRestTasksTaskResultHttp>(this.url.addFromComment, param)\r\n }\r\n\r\n list(param: iBXRestParamTasksTaskResultList) {\r\n return this.http.post<iBXRestTasksTaskResultHttp[]>(this.url.list, param)\r\n }\r\n}\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestParamTaskAdd } from '../../typification/rest/tasks/task/add'\r\nimport {\r\n iBXRestTasksTaskGetHttp,\r\n iBXRestTasksTaskGetHttpDefault\r\n} from '../../typification/rest/tasks/task/get'\r\nimport {\r\n iBXRestParamTasksList, iBXRestTasksTaskListHttp } from '../../typification/rest/tasks/task/list'\r\nimport { iBXRestParamTaskGetAccess, iBXRestTaskGetAccess } from '../../typification/rest/task/access/getaccess'\r\nimport { iBXRestParamTasksTaskApprove, iBXRestTasksTaskApproveHttp } from '../../typification/rest/tasks/task/approve'\r\nimport {\r\n iBXRestParamTasksTaskComplete,\r\n iBXRestTasksTaskCompleteHttp\r\n} from '../../typification/rest/tasks/task/complete'\r\nimport { iBXRestParamTasksTaskDefer, iBXRestTasksTaskDeferHttp } from '../../typification/rest/tasks/task/defer'\r\nimport { BXRestTasksTaskResult } from './task/result'\r\nimport { iBXRestParamTasksTaskGet } from '../../typification/rest/tasks/task/get'\r\nimport { iBXRestTasksTaskGetFields } from '../../typification/rest/tasks/task/getFields'\r\nimport { iBXRestParamTasksTaskUpdate } from '../../typification/rest/tasks/task/update'\nimport { iBXRestTaskFieldsName } from '../../typification/rest/tasks/base/fields-name'\nimport { iBXRestTasksTaskBaseAnswer } from '../../typification/rest/tasks/task/base'\nimport {\n $add,\n $approve,\n $complete,\n $defer,\n $get,\n $getaccess,\n $getFields,\n $list,\n $task,\n $tasks,\n $update\n} from '../../consts/part-name-methods'\n\r\nexport class BXRestTasksTask {\r\n\r\n protected url = {\n add: [$tasks, $task, $add],\n approve: [$tasks, $task, $approve],\n complete: [$tasks, $task, $complete],\n defer: [$tasks, $task, $defer],\n get: [$tasks, $task, $get],\n getFields: [$tasks, $task, $getFields],\n getAccess: [$tasks, $task, $getaccess],\n list: [$tasks, $task, $list],\n update: [$tasks, $task, $update],\n }\n\r\n public readonly result = new BXRestTasksTaskResult()\r\n private readonly http = new HttpBXServices()\r\n\r\n add<CustomFields extends object = object>(param: iBXRestParamTaskAdd<CustomFields>) {\r\n return this.http.post<iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskGetHttpDefault>>(this.url.add, param)\r\n }\r\n\r\n approve(param: iBXRestParamTasksTaskApprove) {\r\n return this.http.post<iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskApproveHttp>>(this.url.approve, param)\r\n }\r\n\r\n complete(param: iBXRestParamTasksTaskComplete) {\r\n return this.http.post<iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskCompleteHttp>>(this.url.complete, param)\r\n }\r\n\r\n defer(param: iBXRestParamTasksTaskDefer) {\r\n return this.http.post<iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskDeferHttp>>(this.url.defer, param)\r\n }\r\n\r\n update(param: iBXRestParamTasksTaskUpdate) {\r\n return this.http.post<iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskDeferHttp>>(this.url.update, param)\r\n }\r\n\r\n get<S extends iBXRestTaskFieldsName[], CustomFields extends object = object>(param: iBXRestParamTasksTaskGet<CustomFields>) {\r\n return this.http.post<iBXRestTasksTaskGetHttp<S, CustomFields>>(this.url.get, param)\r\n }\r\n\r\n list<S extends iBXRestTaskFieldsName[], CustomFields extends object = object>(param: iBXRestParamTasksList<CustomFields>) {\r\n return this.http.post<iBXRestTasksTaskListHttp<S, CustomFields>>(this.url.list, param)\r\n }\r\n\r\n /*\r\n listArray(requestArray: RequestApiTaskListBX = {}) {\r\n return this.list(requestArray).pipe(\r\n map(v => this.http.mapResult(v)),\r\n map(v => (v && v.tasks) ? v.tasks : [])\r\n )\r\n }\r\n\r\n listAll(requestArray: RequestApiTaskListBX = {}, cache = false): Observable<TaskBX[]> {\r\n if (!requestArray.select) {\r\n requestArray.select = this.def.select\r\n if (cache) {\r\n return this.storeTask$.pipe(\r\n take(1),\r\n mergeMap(tasks => {\r\n if (tasks && tasks.data.http.list && requestArray.filter && requestArray.filter.ID) {\r\n const ids = (typeof requestArray.filter.ID === 'number') ? [requestArray.filter.ID] : requestArray.filter.ID\r\n let filter = tasks.data.http.list.filter(i => (i.id) ? ids.includes(i.id) : false)\r\n if (filter.length === ids.length) {\r\n return of(filter)\r\n }\r\n }\r\n return this.getEndListArray(requestArray)\r\n })\r\n )\r\n }\r\n return this.getEndListArray(requestArray)\r\n }\r\n return this.getEndListArray(requestArray)\r\n }\r\n\r\n getEndListArray(requestArray: RequestApiTaskListBX): Observable<TaskBX[]> {\r\n return this.list(requestArray).pipe(\r\n mergeMap((items: AnswerApiTaskBX | undefined): ObservableInput<any> | Observable<AnswerApiTaskBX[]> => {\r\n if (items && items.result && typeof items.result.tasks === 'object') {\r\n const items$ = of(items.result.tasks)\r\n if (items.next) {\r\n this.nowLoad$.next({\r\n total: (items.total) ? items.total : 0,\r\n next: items.next\r\n })\r\n requestArray.start = items.next\r\n return this.getEndListArray(requestArray).pipe(\r\n map(vEnd => {\r\n if (vEnd && items.result.tasks) {\r\n return [...items.result.tasks, ...vEnd]\r\n }\r\n return (items.result.tasks) ? items.result.tasks : []\r\n }))\r\n }\r\n this.nowLoad$.next({\r\n total: 0,\r\n next: 0\r\n })\r\n return items$\r\n } else {\r\n return of([])\r\n }\r\n })\r\n )\r\n }\r\n */\r\n\r\n getFields() {\r\n return this.http.post<iBXRestTasksTaskGetFields>(this.url.getFields)\r\n }\r\n\r\n\r\n getAccess(param: iBXRestParamTaskGetAccess) {\r\n return this.http.post<iBXRestTaskGetAccess>(this.url.getAccess, param)\r\n }\r\n\r\n}\r\n\r\n","import { BXRestTasksTask } from './tasks/task'\r\n\r\nexport class BXRestTasks {\r\n public readonly task = new BXRestTasksTask()\r\n}\r\n\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\r\nimport {\r\n iBXRestDiskFileHttp,\r\n iBXRestParamDiskFileGet,\n iBXRestParamDiskFileMarkDeleted\n} from '../../typification/rest/disk/file'\nimport { $disk, $file, $get, $markdeleted } from '../../consts/part-name-methods'\n\nexport class BXRestDiskFile {\n protected url = {\n get: [$disk, $file, $get],\n markDeleted: [$disk, $file, $markdeleted],\n }\n\r\n private readonly http = new HttpBXServices()\r\n\r\n get(param: iBXRestParamDiskFileGet) {\r\n return this.http.post<iBXRestDiskFileHttp>(this.url.get, param)\r\n }\r\n\r\n markDeleted(param: iBXRestParamDiskFileMarkDeleted) {\r\n return this.http.post<iBXRestDiskFileHttp>(\r\n this.url.markDeleted,\r\n param\r\n )\r\n }\r\n}\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\r\nimport {\r\n iBXRestFolderHttp,\r\n iBXRestParamFolderDeleteTree,\r\n iBXRestParamFolderGet,\r\n iBXRestParamFolderGetChildren,\r\n iBXRestParamFolderGetExternalLink,\r\n iBXRestParamFolderMarkDeleted,\r\n iBXRestParamFolderRestore\r\n} from '../../typification/rest/disk/folder'\r\nimport { iBXRestDiskFileHttp } from '../../typification/rest/disk/file'\r\nimport { iBXRestDiskFolderUploadFileParam } from '../../typification/rest/disk/folder/uploadFile'\r\nimport { iBXRestDiskFolderGetFieldsHttp } from '../../typification/rest/disk/folder/getFields'\r\nimport { iBXRestDiskFolderAddSubFolderParam } from '../../typification/rest/disk/folder/addSubFolder'\nimport { iBXRestDiskFolderCopyToParam } from '../../typification/rest/disk/folder/copyTo'\nimport { iBXRestDiskFolderMoveToParam } from '../../typification/rest/disk/folder/moveTo'\nimport { iBXRestDiskFolderRenameParam } from '../../typification/rest/disk/folder/rename'\nimport {\n $copyto,\n $disk,\n $folder,\n $get,\n $getchildren,\n $getFields,\n $markdeleted,\n $moveto,\n $rename,\n $restore,\n $uploadfile\n} from '../../consts/part-name-methods'\n\nexport class BXRestDiskFolder {\n protected url = {\n getFields: [$disk, $folder, $getFields],\n get: [$disk, $folder, $get],\n getChildren: [$disk, $folder, $getchildren],\n addSubFolder: [$disk, $folder, 'addsubfolder'],\n copyTo: [$disk, $folder, $copyto],\n moveTo: [$disk, $folder, $moveto],\n rename: [$disk, $folder, $rename],\n deleteTree: [$disk, $folder, 'deletetree'],\n markDeleted: [$disk, $folder, $markdeleted],\n restore: [$disk, $folder, $restore],\n uploadFile: [$disk, $folder, $uploadfile],\n getExternalLink: [$disk, $folder, 'getExternalLink'],\n }\n\r\n private readonly http = new HttpBXServices()\r\n\r\n /**\r\n * Возвращает папку по идентификатору\r\n *\r\n * @param param\r\n */\r\n get(param: iBXRestParamFolderGet) {\r\n return this.http.post<iBXRestFolderHttp>(this.url.get, param)\r\n }\r\n\r\n /**\r\n * Создает дочернюю папку\r\n *\r\n * @param param\r\n */\r\n addSubFolder(param: iBXRestDiskFolderAddSubFolderParam){\r\n return this.http.post<iBXRestFolderHttp>(this.url.addSubFolder, param)\r\n }\r\n\r\n /**\r\n * Копирует папку в указанную папку\r\n *\r\n * @param param\r\n */\r\n copyTo(param: iBXRestDiskFolderCopyToParam){\r\n return this.http.post<iBXRestFolderHttp>(this.url.copyTo, param)\r\n }\r\n\r\n /**\r\n * Перемещает папку в указанную папку\r\n *\r\n * @param param\r\n */\r\n moveTo(param: iBXRestDiskFolderMoveToParam){\r\n return this.http.post<iBXRestFolderHttp>(this.url.moveTo, param)\r\n }\r\n\r\n /**\r\n * Переименовывает папку\r\n *\r\n * @param param\r\n */\r\n rename(param: iBXRestDiskFolderRenameParam){\r\n return this.http.post<iBXRestFolderHttp>(this.url.rename, param)\r\n }\r\n\r\n /**\r\n * Уничтожает папку и всё её дочерние элементы навсегда\r\n * В ответе 'result': true - успешное уничтожение папки\r\n *\r\n * @param param\r\n */\r\n deleteTree(param: iBXRestParamFolderDeleteTree){\r\n return this.http.post<boolean>(\r\n this.url.deleteTree,\r\n param\r\n )\r\n }\r\n\r\n /**\r\n * Перемещает папку в корзину\r\n *\r\n * @param param\r\n */\r\n markDeleted(param: iBXRestParamFolderMarkDeleted){\r\n return this.http.post<iBXRestFolderHttp>(\r\n this.url.markDeleted,\r\n param\r\n )\r\n }\r\n\r\n /**\r\n * Восстанавливает папку из корзины\r\n *\r\n * @param param\r\n */\r\n restore(param: iBXRestParamFolderRestore){\r\n return this.http.post<iBXRestFolderHttp>(\r\n this.url.restore,\r\n param\r\n )\r\n }\r\n\r\n /**\r\n * Метод возвращает публичную ссылку\r\n *\r\n * @param param\r\n */\r\n getExternalLink(param: iBXRestParamFolderGetExternalLink){\r\n return this.http.post<string>(\r\n this.url.restore,\r\n param\r\n )\r\n }\r\n\r\n\r\n /**\r\n * Возвращает описание полей папки\r\n */\r\n getFields() {\r\n return this.http.post<iBXRestDiskFolderGetFieldsHttp>(this.url.getFields)\r\n }\r\n\r\n /**\r\n * Загружает новый файл в указанную папку\r\n *\r\n * @param param\r\n */\r\n uploadFile(param: iBXRestDiskFolderUploadFileParam) {\r\n return this.http.post<iBXRestFolderHttp>(\r\n this.url.uploadFile,\r\n param\r\n )\r\n }\r\n\r\n /**\r\n * Возвращает список файлов и папок, которые находятся непосредственно в папке\r\n *\r\n * @param param\r\n */\r\n getChildren(param: iBXRestParamFolderGetChildren) {\r\n return this.http.post<(iBXRestFolderHttp | iBXRestDiskFileHttp)[]>(\r\n this.url.getChildren,\r\n param\r\n )\r\n }\r\n}\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\r\nimport {\n iBXRestDiskAttachedObjectHttp,\n iBXRestParamRestDiskAttachedObject\n} from '../../typification/rest/disk/AttachedObject'\nimport { $disk, $get } from '../../consts/part-name-methods'\n\nexport class BXRestDiskAttachedObject {\n protected url = {\n get: [$disk, 'attachedObject', $get],\n }\n private readonly http = new HttpBXServices()\n\r\n get(param: iBXRestParamRestDiskAttachedObject) {\r\n return this.http.post<iBXRestDiskAttachedObjectHttp>(this.url.get, param)\r\n }\r\n}\r\n","import { BXRestDiskFile } from './disk/file'\r\nimport { BXRestDiskFolder } from './disk/folder'\r\nimport { BXRestDiskAttachedObject } from './disk/attachedObject'\r\n\r\nexport class BXRestDisk {\r\n public readonly file = new BXRestDiskFile()\r\n public readonly folder = new BXRestDiskFolder()\r\n public readonly attachedObject = new BXRestDiskAttachedObject()\r\n}\r\n","export class BXRestBizProcWorkflowInstance {\n}\n","export class BXRestBizProcWorkflowTemplate {\n // constructor(private http: HttpBXServices) {\n // }\n\r\n // list(param: iBXRestParamBizprocWorkflowTemplateList = {select: [], filter: {}}){\r\n // return this.http.post(this.url.list, param)\r\n // }\r\n}\r\n","import { Observable } from 'rxjs'\r\nimport { iBXRestParams } from '../../typification/base/params'\r\nimport { HttpBXServices } from './HttpBX'\r\nimport { iBXRestAnswer } from '../../typification/rest/base'\r\nimport { iBXRestAnswers } from '../../typification/base/answers'\r\n\r\nexport class HttpNavvyServices {\r\n private readonly httpServices = new HttpBXServices()\r\n\r\n post<T extends keyof iBXRestParams>(\r\n url: [T],\r\n params?: iBXRestParams[T],\r\n ): Observable<iBXRestAnswer<iBXRestAnswers[T]> | undefined>\r\n\r\n // Перегрузка для пути из двух элементов\r\n post<T extends keyof iBXRestParams, K1 extends keyof iBXRestParams>(\r\n url: [T, K1],\r\n params?: iBXRestParams[T][K1],\r\n ): Observable<iBXRestAnswer<iBXRestAnswers[T][K1]> | undefined>\r\n\r\n // Перегрузка для пути из трех элементов\r\n post<T extends keyof iBXRestParams, K1 extends keyof iBXRestParams[T], K2 extends keyof iBXRestParams[T][K1]>(\r\n url: [T, K1, K2],\r\n params?: iBXRestParams[T][K1][K2],\r\n ): Observable<iBXRestAnswer<iBXRestAnswers[T][K1][K2]> | undefined>\r\n\r\n // Реализация метода\r\n post(url: string[], params?: any): Observable<any | undefined>\r\n {\r\n if(params === undefined){\r\n params = {}\r\n }\r\n return this.httpServices.post(url, params)\r\n }\r\n}","import { BXRestBizProcWorkflowInstance } from './workflow/instance'\r\nimport { iBXRestParamBizprocWorkflowStart } from '../../typification/rest/bizproc/workflow/start'\r\nimport { BXRestBizProcWorkflowTemplate } from './workflow/template'\r\nimport { HttpNavvyServices } from '../../services/http/httpNavvy'\r\nimport { $bizproc, $start, $workflow } from '../../consts/part-name-methods'\r\n\r\nexport class BXRestBizProcWorkflow {\r\n public readonly instances = new BXRestBizProcWorkflowInstance()\r\n public readonly template = new BXRestBizProcWorkflowTemplate()\r\n\r\n public readonly http = new HttpNavvyServices()\r\n\r\n /**\r\n * Запускает Бизнес-процесс\r\n */\r\n start(param: iBXRestParamBizprocWorkflowStart) {\r\n return this.http.post([$bizproc, $workflow, $start], param)\r\n }\r\n\r\n}\r\n","export class BXRestBizProcActivity {\n}\n","export class BXRestBizProcTask {\n}\n","export class BXRestBizProcRobot {\n}\n","export class BXRestBizProcEvent {\n}\n","import { BXRestBizProcWorkflow } from './bizproc/workflow'\r\nimport { BXRestBizProcActivity } from './bizproc/activity'\r\nimport { BXRestBizProcTask } from './bizproc/task'\r\nimport { BXRestBizProcRobot } from './bizproc/robot'\r\nimport { BXRestBizProcEvent } from './bizproc/event'\r\n\r\nexport class BXRestBizProc {\r\n public readonly workflow = new BXRestBizProcWorkflow()\r\n public readonly activity = new BXRestBizProcActivity()\r\n public readonly task = new BXRestBizProcTask()\r\n public readonly robot = new BXRestBizProcRobot()\r\n public readonly event = new BXRestBizProcEvent()\r\n}\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\nimport { iBXRestParamLogBlogPostAdd } from '../../typification/rest/log/blogpost/add'\nimport { iBXRestBlogPostHttp, iBXRestParamBlogPostGet } from '../../typification/rest/log/blogpost/get'\nimport { $add, $blogpost, $get, $log } from '../../consts/part-name-methods'\n\r\nexport class BXRestLogBlogPost {\r\n\r\n protected url = {\n add: [$log, $blogpost, $add],\n get: [$log, $blogpost, $get],\n }\n\r\n private readonly http = new HttpBXServices()\r\n\r\n add(param: iBXRestParamLogBlogPostAdd) {\r\n return this.http.post<boolean>(this.url.add, param)\r\n }\r\n\r\n get(param: iBXRestParamBlogPostGet = {}) {\r\n return this.http.post<iBXRestBlogPostHttp[]>(this.url.get, param)\r\n }\r\n\r\n}\r\n","export class BXRestLogBlogComment {\n}\n","import { BXRestLogBlogPost } from './log/blogpost'\r\nimport { BXRestLogBlogComment } from './log/blogcomment'\r\n\r\nexport class BXRestLog {\r\n public readonly blogPost = new BXRestLogBlogPost()\r\n public readonly blogComment = new BXRestLogBlogComment()\r\n}\r\n","import { HttpBXServices } from '../services/http/HttpBX'\r\nimport {\n iBXRestParamSonetGroupGet, iBXRestSonetGroupGetHttp\n} from '../typification/rest/sonet_group/get'\nimport { $get, $sonet_group } from '../consts/part-name-methods'\n\nexport class BXRestSonetGroup {\n protected url = {\n get: [$sonet_group, $get],\n }\n private http = new HttpBXServices()\n\r\n // // TODO: filter и select позже нормально описать\r\n // getList(filter: any = {}, select: iWorkgroupFields[] = ['ID', 'NAME']){\r\n // return this.httpPost<iHttpAnswerBX<{workgroups: iListWorkgroup[]}>>(\r\n // this.url.get,\r\n // {\r\n // order: select,\r\n // filter: filter\r\n // }\r\n // )\r\n // }\r\n\r\n get(param: iBXRestParamSonetGroupGet = {}) {\r\n return this.http.post<iBXRestSonetGroupGetHttp[]>(this.url.get, param)\r\n }\r\n}\r\n","import { HttpBXServices } from '../services/http/HttpBX'\nimport { $server, $time } from '../consts/part-name-methods'\n\r\nexport class BXRestServer {\r\n private readonly http = new HttpBXServices()\r\n\r\n protected url = {\n time: [$server, $time],\n }\n\r\n time(){\r\n return this.http.post<string>(this.url.time)\r\n }\r\n}\r\n","import { HttpBXServices } from '../services/http/HttpBX'\r\nimport { iBXRestParamDepartmentGet } from '../typification/rest/department/get'\r\nimport { iBXRestDepartmentHttp } from '../typification/rest/department/department'\r\nimport { iBXRestParamDepartmentAdd } from '../typification/rest/department/add'\nimport { iBXRestParamDepartmentDel } from '../typification/rest/department/del'\nimport { iBXRestDepartmentUpdate } from '../typification/rest/department/update'\nimport { $add, $delete, $department, $get, $update } from '../consts/part-name-methods'\n\nexport class BXRestDepartment {\n protected url = {\n get: [$department, $get],\n del: [$department, $delete],\n add: [$department, $add],\n update: [$department, $update],\n }\n\r\n private readonly http = new HttpBXServices()\r\n\r\n get(param: iBXRestParamDepartmentGet = {}) {\r\n return this.http.post<iBXRestDepartmentHttp[]>(this.url.get, param)\r\n }\r\n\r\n add(param: iBXRestParamDepartmentAdd) {\r\n return this.http.post<number>(this.url.add, param)\r\n }\r\n\r\n del(param: iBXRestParamDepartmentDel) {\r\n return this.http.post<boolean>(this.url.del, param)\r\n }\r\n\r\n update(param: iBXRestDepartmentUpdate) {\r\n return this.http.post<boolean>(this.url.update, param)\r\n }\r\n}\r\n","import { HttpBXServices } from '../services/http/HttpBX'\nimport { iBXRestAppInfoHttp } from '../typification/rest/app/info'\n\r\nexport class BXRestApp {\r\n private readonly http = new HttpBXServices()\r\n\r\n /**\r\n * Показ информации о приложении. Метод поддерживает безопасный вызов\r\n */\r\n info() {\n return this.http.post<iBXRestAppInfoHttp>(['app', 'info'])\n }\n}\n","import {\n iBXRestParamSocialNetWorkApiContentViewSet, iBXRestSocialNetWorkApiContentViewSet\n} from '../../../typification/rest/socialnetwork/api/contentview/set'\nimport { HttpBXServices } from '../../../services/http/HttpBX'\nimport { $api, $set, $socialnetwork } from '../../../consts/part-name-methods'\n\nexport class BXRestSocialNetWorkApiContentView {\n private url = {\n set: [$socialnetwork, $api, 'contentView', $set],\n }\n\r\n private http = new HttpBXServices()\r\n\r\n set(param: iBXRestParamSocialNetWorkApiContentViewSet){\r\n return this.http.post<iBXRestSocialNetWorkApiContentViewSet>(this.url.set, param)\r\n }\r\n\r\n}\n","import { HttpBXServices } from '../../../../../services/http/HttpBX'\nimport {\n iBXRestParamSocialNetWorkApiBlogpostImportantVote, iBXRestSocialNetWorkApiBlogpostImportantVoteHttp\n} from '../../../../../typification/rest/socialnetwork/api/livefeed/blogpost/important/vote'\nimport { $api, $socialnetwork } from '../../../../../consts/part-name-methods'\n\nexport class BXRestSocialNetWorkApiLiveFeedBlogPostImportant {\n private url = {\n vote: [$socialnetwork, $api, 'liveFeed', 'blogPost', 'important', 'vote'],\n }\n private http = new HttpBXServices()\n\r\n vote(param: iBXRestParamSocialNetWorkApiBlogpostImportantVote) {\r\n return this.http.post<iBXRestSocialNetWorkApiBlogpostImportantVoteHttp>(this.url.vote, param)\r\n }\r\n}\n","import {\r\n BXRestSocialNetWorkApiLiveFeedBlogPostImportant,\r\n} from './blogpost/important'\r\n\r\nexport class BXRestSocialNetWorkApiLiveFeedBlogPost {\r\n public readonly important = new BXRestSocialNetWorkApiLiveFeedBlogPostImportant()\r\n}","import { BXRestSocialNetWorkApiLiveFeedBlogPost } from './livefeed/blogpost'\r\n\r\nexport class BXRestSocialNetWorkApiLiveFeed {\r\n public readonly blogPost = new BXRestSocialNetWorkApiLiveFeedBlogPost()\r\n}","import { BXRestSocialNetWorkApiContentView } from './api/contentview'\r\nimport { BXRestSocialNetWorkApiLiveFeed } from './api/livefeed'\r\n\r\nexport class BXRestSocialNetWorkApi {\r\n public readonly contentView = new BXRestSocialNetWorkApiContentView()\r\n public readonly liveFeed = new BXRestSocialNetWorkApiLiveFeed()\r\n}","import { BXRestSocialNetWorkApi } from './socialnetwork/api'\r\n\r\nexport class BXRestSocialNetWork {\n // private http = new HttpBXServices)\n public api = new BXRestSocialNetWorkApi()\n\r\n\r\n\r\n}\n","import { $application, $config, $get, $pull } from '../../../consts/part-name-methods'\r\nimport { HttpBXServices } from '../../../services/http/HttpBX'\r\nimport { iBXRestPullApplicationConfigGetHttp } from '../../../typification/rest/pull/application/config/get'\r\n\r\nexport class BXRestPullApplicationConfig {\r\n private readonly http = new HttpBXServices()\r\n\r\n get() {\r\n return this.http.post<iBXRestPullApplicationConfigGetHttp>([$pull, $application, $config, $get])\r\n }\r\n}","import { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { $config, $get, $pull } from '../../consts/part-name-methods'\r\nimport { iBXRestPullConfigGetHttp } from '../../typification/rest/pull/config/get'\r\nimport { BXRestPullApplicationConfig } from './application/config'\r\n\r\nexport class BXRestPullConfig {\r\n private readonly http = new HttpBXServices()\r\n public readonly config = new BXRestPullApplicationConfig()\r\n\r\n get() {\r\n return this.http.post<iBXRestPullConfigGetHttp>([$pull, $config, $get])\r\n }\r\n}","import { HttpBXServices } from '../../../services/http/HttpBX'\r\nimport {\r\n iBXRestPullChannelPublicGetHttp\r\n} from '../../../typification/rest/pull/channel/get'\r\nimport { $channel, $get, /*$list,*/ $public, $pull } from '../../../consts/part-name-methods'\r\n\r\nexport class BXRestPullChannelPublic {\r\n private readonly http = new HttpBXServices()\r\n\r\n get() {\r\n return this.http.post<iBXRestPullChannelPublicGetHttp>([$pull, $channel, $public, $get])\r\n }\r\n\r\n /**\r\n * Пес его знает что за метод такой, судя по коду нужно всю инфу json объектом о пользователе передать,\r\n * но это не точно\r\n */\r\n // list() {\r\n // return this.http.post<iBXRestPullChannelPublicGetHttp>([$pull, $channel, $public, $list])\r\n // }\r\n}","import { BXRestPullConfig } from './pull/config'\r\nimport { BXRestPullChannelPublic } from './pull/channel/public'\r\n\r\nexport class BXRestPull {\r\n public readonly config = new BXRestPullConfig()\r\n public readonly channel = {\r\n public: new BXRestPullChannelPublic()\r\n }\r\n} ","import { BXRestUser } from '../request/user'\r\nimport { BXRestLists } from '../request/lists'\r\nimport { BXRestTask } from '../request/task'\r\nimport { BXRestTasks } from '../request/tasks'\r\nimport { BXRestDisk } from '../request/disk'\r\nimport { BXRestBizProc } from '../request/bizproc'\r\nimport { BXRestLog } from '../request/log'\r\nimport { BXRestSonetGroup } from '../request/sonet_group'\r\nimport { BXRestServer } from '../request/server'\r\nimport { BXRestDepartment } from '../request/department'\r\nimport { BXRestApp } from '../request/app'\r\nimport { HttpBXServices } from '../services/http/HttpBX'\r\nimport { iBXRestProfileHttp } from '../typification/rest/profile'\r\nimport { iBXRestBatch, iBXRestParamBatch } from '../typification/rest/batch'\r\nimport { BXRestSocialNetWork } from '../request/socialnetwork'\r\nimport { BXRestPull } from '../request/pull'\r\n\r\nexport class BXRest {\r\n private readonly http = new HttpBXServices()\r\n public readonly user = new BXRestUser()\r\n public readonly lists = new BXRestLists()\r\n public readonly task = new BXRestTask()\r\n public readonly tasks = new BXRestTasks()\r\n public readonly disk = new BXRestDisk()\r\n public readonly bizProc = new BXRestBizProc()\r\n public readonly log = new BXRestLog()\r\n public readonly sonet_group = new BXRestSonetGroup()\r\n public readonly server = new BXRestServer()\r\n public readonly department = new BXRestDepartment()\r\n public readonly app = new BXRestApp()\r\n public readonly socialNetWork = new BXRestSocialNetWork()\r\n public readonly pull = new BXRestPull()\r\n\r\n public profile() {\r\n return this.http.post<iBXRestProfileHttp>(['profile'])\r\n }\r\n\r\n public batch<T>(param: iBXRestParamBatch) {\r\n return this.http.post<iBXRestBatch<T>>(['batch'], param)\r\n }\r\n}","import { concatMap, from, last, mergeMap, shareReplay, throwError, toArray } from 'rxjs'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\nimport clone from 'just-clone'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport { ReturnTypeNavvy } from './navvy-support'\r\nimport { iBXRestAlternativePagination } from '../../typification/rest/base/api-pagination-bx'\r\nimport { instanceOfiBXRestAnswerSuccess } from '../../functions/mapResult'\r\nimport { NavvyPagBase } from './extends/navvy-pag-base'\r\nimport * as qs from 'qs'\r\nimport { BXRest } from '../../rest/base'\r\n\r\n/**\r\n * Класс-прослойка-обработчик для методов работающих на альтернативной постраничной навигации тика как методы по\r\n * затраченному времени на задачи https://dev.1c-bitrix.ru/rest_help/tasks/task/elapseditem/index.php\r\n *\r\n * не завершенный класс, работаем от частного к общему\r\n */\r\nexport class NavvyAlterPagNav<T, R, P extends iBXRestAlternativePagination> extends NavvyPagBase<T[], R[], P> {\r\n\r\n resAll() {\r\n let save: ReturnTypeNavvy<T, R>[] = []\r\n return this.resultAllEnd()\r\n .pipe(\r\n map(v => {\r\n if (v) {\r\n save.push(...v as ReturnTypeNavvy<T, R>[])\r\n }\r\n return save\r\n }\r\n ),\r\n last(),\r\n shareReplay(1)\r\n )\r\n }\r\n\r\n private resultAllEnd() {\r\n let BXRestClass = new BXRest()\r\n // return this.mapForVanillaEnd(this.func, this.param)\r\n return this.resVanilla().pipe(\r\n mergeMap(\r\n items => {\r\n if (items && instanceOfiBXRestAnswerSuccess(items)) {\r\n if (items.total && items.next) {\r\n const count = [...Array(Math.floor(items.total / this.pageSize)).keys()]\r\n\r\n // Разделяем массив на блоки\r\n const chunks = []\r\n\r\n for (let i = 0; i < count.length; i += this.pageSize) {\r\n chunks.push(count.slice(i, i + this.pageSize))\r\n }\r\n\r\n const batchRequests = chunks.map(chunk => {\r\n return BXRestClass.batch<T[][]>({\r\n halt: 1,\r\n cmd: chunk.map(i => {\r\n const param = clone(this.param)\r\n\r\n if (!param.PARAMS) {\r\n param.PARAMS = {\r\n NAV_PARAMS: {\r\n iNumPage: 0,\r\n nPageSize: 50\r\n }\r\n }\r\n }\r\n\r\n // Устанавливаем start в зависимости от индекса\r\n param.PARAMS!.NAV_PARAMS.iNumPage = i + 2 // первая страница уже есть, старт со второй\r\n\r\n // Формируем строку запроса\r\n return this.http.getNameMethod(this.url)\r\n + '?' + qs.stringify(param, {arrayFormat: 'brackets'})\r\n })\r\n })\r\n })\r\n\r\n return from(batchRequests).pipe(\r\n concatMap(request => request), // Выполняет запросы по очереди\r\n toArray(), // Собирает все результаты в массив\r\n map(results => {\r\n const res = items.result as T[]\r\n for (let result of results) {\r\n if (result && instanceOfiBXRestAnswerSuccess(result) && result.result && result.result.result) {\r\n res.push(...result.result.result.map(i => i).flat())\r\n }\r\n }\r\n\r\n return (this.map) ?\r\n this.map(res)\r\n : res\r\n })\r\n )\r\n }\r\n }\r\n\r\n return this.mapResultForGetAll(items)\r\n }\r\n ),\r\n catchError(err => {\r\n // this.snackBar.error(\"Проблемы с поточным получение затреканого времени\")\r\n console.error(err)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n\r\n private mapResultForGetAll(items: iBXRestAnswer<T[]> | undefined) {\r\n return (instanceOfiBXRestAnswerSuccess(items)) ? from([items.result]).pipe(\r\n map(v => (v && this.map) ? this.map(v) : v)\r\n ) : from([] as ReturnTypeNavvy<T, R>[])\r\n }\r\n}\r\n","import { iBXRestPagination } from '../../typification/rest/base/api-pagination-bx'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport { concatMap, from, mergeMap, of, throwError, toArray } from 'rxjs'\r\nimport clone from 'just-clone'\r\nimport { instanceOfiBXRestAnswerSuccess } from '../../functions/mapResult'\r\nimport { NavvyPagBase } from './extends/navvy-pag-base'\r\nimport { ReturnTypeNavvy } from './navvy-support'\r\nimport * as qs from 'qs'\r\nimport { BXRest } from '../../rest/base'\r\n\r\nexport class NavvyPagNavWithUselessKey<T, R, P extends iBXRestPagination> extends NavvyPagBase<Record<string, T>, R[], P> {\r\n\r\n save: ReturnTypeNavvy<Record<string, T>, R[]> = []\r\n\r\n resAll() {\r\n let BXRestClass = new BXRest()\r\n return this.resVanilla().pipe(\r\n mergeMap(\r\n items => {\r\n if (items && instanceOfiBXRestAnswerSuccess(items)) {\r\n if (items.total && items.next) {\r\n const count = [...Array(Math.floor(items.total / this.pageSize)).keys()]\r\n\r\n // Разделяем массив на блоки\r\n const chunks = []\r\n\r\n for (let i = 0; i < count.length; i += this.pageSize) {\r\n chunks.push(count.slice(i, i + this.pageSize))\r\n }\r\n\r\n const batchRequests = chunks.map(chunk => {\r\n return BXRestClass.batch<Record<string, T>[]>({\r\n halt: 1,\r\n cmd: chunk.map(i => {\r\n const param = clone(this.param)\r\n // Устанавливаем start в зависимости от индекса\r\n param.start = (i + 1) * this.pageSize\r\n\r\n // Формируем строку запроса\r\n return this.http.getNameMethod(this.url)\r\n + '?' + qs.stringify(param, { arrayFormat: 'brackets' })\r\n })\r\n }).pipe(\r\n map(v => {\r\n if (v && instanceOfiBXRestAnswerSuccess(v) && v.result && v.result.result && items.result) {\r\n return Object.assign({}, items.result, v.result.result) as Record<string, T>\r\n }\r\n\r\n throw new Error('wrong batch')\r\n })\r\n )\r\n })\r\n\r\n return from(batchRequests).pipe(\r\n concatMap(request => request), // Выполняет запросы по очереди\r\n toArray()) // Собирает все результаты в массив\r\n /*\r\n return this.getAllTaskElapsedItem(func, param).pipe(\r\n map(vEnd => {\r\n if (vEnd && vEnd.result && items.result) {\r\n return merge(clone(vEnd), {result: [...items.result, ...vEnd.result]})\r\n }\r\n return items\r\n })\r\n )\r\n */\r\n } else {\r\n return of([items.result as Record<string, T>])\r\n }\r\n }\r\n return of(undefined)\r\n // return from([BXRestMapResult(items)])\r\n // as ReturnType<Observable<T | undefined>, Observable<R | undefined>>\r\n }\r\n ),\r\n map(v => {\r\n if (v) {\r\n const mergedObject: Record<string, T> = v.reduce((acc, obj) => {\r\n return { ...acc, ...obj }\r\n }, {})\r\n\r\n if(this.map){\r\n return this.map(mergedObject)\r\n }\r\n this.save.push(...v as ReturnTypeNavvy<Record<string, T>, R[]>)\r\n return this.save\r\n }\r\n return v\r\n }),\r\n catchError(err => {\r\n // this.snackBar.error(\"Проблемы с поточным получение затреканого времени\")\r\n console.error(err)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n}\r\n","import { concatMap, from, last, mergeMap, shareReplay, throwError, toArray } from 'rxjs'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport clone from 'just-clone'\r\nimport { iBXRestPagination } from '../../typification/rest/base/api-pagination-bx'\r\nimport { ReturnTypeNavvy } from './navvy-support'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\nimport { instanceOfiBXRestAnswerSuccess } from '../../functions/mapResult'\r\nimport { NavvyPagBase } from './extends/navvy-pag-base'\r\nimport * as qs from 'qs'\r\nimport { BXRest } from '../../rest/base'\r\n\r\nexport class NavvyPagNavTasks<T, R, P extends iBXRestPagination> extends NavvyPagBase<{tasks: T[] | undefined}, R[], P> {\r\n\r\n save: ReturnTypeNavvy<T, R>[] = []\r\n resAll() {\r\n let save: ReturnTypeNavvy<T, R>[] = []\r\n return this.resultAllEnd()\r\n .pipe(\r\n map(v => {\r\n if (v) {\r\n save.push(...v as ReturnTypeNavvy<T, R>[])\r\n }\r\n return save\r\n }\r\n ),\r\n last(),\r\n shareReplay(1)\r\n )\r\n }\r\n\r\n private resultAllEnd() {\r\n let BXRestClass = new BXRest()\r\n return this.resVanilla().pipe(\r\n mergeMap(\r\n items => {\r\n if (items && instanceOfiBXRestAnswerSuccess(items)) {\r\n this.save = []\r\n // TODO: проверить будет ли быстрее работать метод в случаях когда total < 100 (то есть можно обойтись двумя прямыми запросами)\r\n if (items.total && items.total > 50) {\r\n const count = [...Array(Math.floor(items.total / this.pageSize)).keys()]\r\n\r\n // Разделяем массив на блоки\r\n const chunks = []\r\n\r\n for (let i = 0; i < count.length; i += this.pageSize) {\r\n chunks.push(count.slice(i, i + this.pageSize))\r\n }\r\n\r\n const batchRequests = chunks.map(chunk => {\r\n return BXRestClass.batch<{tasks: T[] | undefined}[]>({\r\n halt: 1,\r\n cmd: chunk.map(i => {\r\n const param = clone(this.param)\r\n // Устанавливаем start в зависимости от индекса\r\n param.start = (i + 1) * this.pageSize\r\n\r\n // Формируем строку запроса\r\n return this.http.getNameMethod(this.url)\r\n + '?' + qs.stringify(param, { arrayFormat: 'brackets' })\r\n })\r\n })\r\n })\r\n\r\n return from(batchRequests).pipe(\r\n concatMap(request => request), // Выполняет запросы по очереди\r\n toArray(), // Собирает все результаты в массив\r\n map(results => {\r\n if(items.result && items.result.tasks) {\r\n const res = items.result.tasks as T[]\r\n\r\n for (let result of results) {\r\n if (result && instanceOfiBXRestAnswerSuccess(result) && result.result && result.result.result) {\r\n res.push(...result.result.result.filter(i => i).map(i => i.tasks).flat() as T[])\r\n }\r\n }\r\n\r\n return (this.map) ?\r\n this.map({tasks: res})\r\n : res\r\n }\r\n\r\n throw new Error('wrong batch')\r\n })\r\n )\r\n }\r\n\r\n return this.mapResForGetAll(items)\r\n }\r\n return this.mapResForGetAll(items)\r\n }\r\n ),\r\n catchError(err => {\r\n console.error(err)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n\r\n private mapResForGetAll(items: iBXRestAnswer<{tasks: T[] | undefined}> | undefined){\r\n return (instanceOfiBXRestAnswerSuccess(items)) ? from([items.result]).pipe(\r\n map(v => (v && this.map) ? this.map(v) : v)\r\n ) : from([])\r\n }\r\n}\r\n","import { concatMap, from, mergeMap, toArray} from 'rxjs'\r\nimport { map } from 'rxjs/operators'\r\nimport clone from 'just-clone'\r\nimport { iBXRestPagination } from '../../typification/rest/base/api-pagination-bx'\r\nimport { ReturnTypeNavvy } from './navvy-support'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\nimport { instanceOfiBXRestAnswerSuccess } from '../../functions/mapResult'\r\nimport { BXRest } from '../../rest/base'\r\nimport { NavvyPagBase } from './extends/navvy-pag-base'\r\nimport * as qs from 'qs'\r\n\r\n\r\nexport class NavvyPag<T, R, P extends iBXRestPagination> extends NavvyPagBase<T[], R[], P> {\r\n\r\n save: ReturnTypeNavvy<T, R>[] = []\r\n\r\n resAll() {\r\n let BXRestClass = new BXRest()\r\n return this.resVanilla().pipe(\r\n mergeMap(\r\n items => {\r\n if (items && instanceOfiBXRestAnswerSuccess(items)) {\r\n this.save = []\r\n // TODO: проверить будет ли быстрее работать метод в случаях когда total < 100 (то есть можно обойтись двумя прямыми запросами)\r\n if (items.total && items.total > 50) {\r\n const mathFloor = Math.floor(items.total / this.pageSize)\r\n const count = (mathFloor === items.total / this.pageSize) // если mathFloor равен обычному делению, значит один запрос будет лишним, так как результат первой страницы уже есть, а последняя в данном случаи будет пустая (или с мусорными аднными)\r\n ? [...Array(mathFloor - 1).keys()]\r\n : [...Array(mathFloor).keys()]\r\n\r\n // Разделяем массив на блоки\r\n const chunks = []\r\n\r\n for (let i = 0; i < count.length; i += this.pageSize) {\r\n chunks.push(count.slice(i, i + this.pageSize))\r\n }\r\n\r\n const batchRequests = chunks.map(chunk => {\r\n return BXRestClass.batch<T[][]>({\r\n halt: 1,\r\n cmd: chunk.map(i => {\r\n const param = clone(this.param)\r\n // Устанавливаем start в зависимости от индекса\r\n param.start = (i + 1) * this.pageSize\r\n\r\n // Формируем строку запроса\r\n return this.http.getNameMethod(this.url)\r\n + '?' + qs.stringify(param, { arrayFormat: 'brackets' })\r\n })\r\n }).pipe(\r\n )\r\n })\r\n\r\n return from(batchRequests).pipe(\r\n concatMap(request => request), // Выполняет запросы по очереди\r\n toArray(), // Собирает все результаты в массив\r\n map(results => {\r\n const res = items.result as T[]\r\n for(let result of results){\r\n if (result && instanceOfiBXRestAnswerSuccess(result) && result.result && result.result.result) {\r\n res.push(...result.result.result.map(i => i).flat())\r\n }\r\n }\r\n\r\n return (this.map) ?\r\n this.map(res)\r\n : res\r\n }),\r\n )\r\n }\r\n\r\n return this.mapResForGetAll(items)\r\n }\r\n return this.mapResForGetAll(items)\r\n }\r\n ),\r\n map(v => {\r\n if (v) {\r\n this.save.push(... v as ReturnTypeNavvy<T, R>[])\r\n }\r\n\r\n return this.save\r\n })\r\n )\r\n }\r\n\r\n private mapResForGetAll(items: iBXRestAnswer<T[]> | undefined) {\r\n return (instanceOfiBXRestAnswerSuccess(items)) ? from([items.result]).pipe(\r\n map(v => (v && this.map) ? this.map(v) : v)\r\n ) : from([])\r\n }\r\n}\r\n","import { Observable } from 'rxjs'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport { BXRestMapResult } from '../../functions/mapResult'\r\n\r\nexport type ReturnTypeNavvy<T, R> = T extends R ? T : R\r\n\r\nexport abstract class NavvySupport<C, T, R> {\r\n\r\n pageSize = 50 // стандартный размер страницы\r\n\r\n protected constructor(\r\n public requestClass: C,\r\n ) {\r\n }\r\n\r\n mapAndError<T>(\r\n request: Observable<iBXRestAnswer<T> | undefined>\r\n ) {\r\n return request.pipe(\r\n map(v => BXRestMapResult(v)),\r\n catchError((err: any) => {\r\n console.error(err)\r\n throw new Error((err.error) ? err.error : err)\r\n })\r\n )\r\n }\r\n\r\n abstract resVanilla(): Observable<iBXRestAnswer<T> | undefined>\r\n\r\n abstract res(): ReturnTypeNavvy<Observable<T | undefined>, Observable<R | undefined>>\r\n}\r\n","import { NavvySimple } from './navvy/navvy-simple'\r\nimport { NavvyAlterPagNav } from './navvy/navvy-alternative-pagination-navigation'\r\nimport { iBXRestAlternativePagination, iBXRestPagination } from '../typification/rest/base/api-pagination-bx'\r\nimport { NavvyPagNavWithUselessKey } from './navvy/navvy-pag-nav-with-useless-key'\r\nimport { NavvyPagNavTasks } from './navvy/navvy-pag-nav-tasks'\r\nimport { NavvyPag } from './navvy/navvy-pag'\r\n\r\nexport * from './navvy/navvy-simple'\r\nexport * from './navvy/navvy-alternative-pagination-navigation'\r\nexport * from './navvy/navvy-pag-nav-with-useless-key'\r\nexport * from './navvy/navvy-pag-nav-tasks'\r\nexport * from './navvy/navvy-pag'\r\nexport * from './navvy/navvy-support'\r\n\r\nexport class Navvy {\r\n\r\n simple<T, R = T, A = undefined>(\r\n url: string[],\r\n arg?: A,\r\n map?: (param: T | undefined) => R | undefined\r\n ) {\r\n return new NavvySimple(\r\n url,\r\n arg !== undefined ? arg : undefined,\r\n map\r\n )\r\n }\r\n\r\n /**\r\n * Новый, пока тестируемый метод для api методов с пагинацией\r\n *\r\n * @param url\r\n * @param arg\r\n * @param map\r\n * @constructor\r\n */\r\n pagNav<T, R, A extends iBXRestPagination>(\r\n url: string[],\r\n arg: A,\r\n map?: (param: T[] | undefined) => R[] | undefined\r\n ) {\r\n return new NavvyPag(url, arg, map)\r\n }\r\n\r\n // old PagNav\r\n // PagNav<T, R, A extends iBXRestPagination>(\r\n // func: (param: A) => Observable<iBXRestAnswer<T[]> | undefined>,\r\n // arg: A,\r\n // map: ((param: T[] | undefined) => R[] | undefined) | undefined) {\r\n // return new NavvyPagNav(this.requestClass, this.mapClass, func, arg, map)\r\n // }\r\n\r\n // Batch<T, R, A extends iBXRestPagination>(\r\n // func: (param: A) => Observable<iBXRestAnswer<T[]> | undefined>,\r\n // arg: A,\r\n // map: ((param: T[] | undefined) => R[] | undefined) | undefined) {\r\n // return new NavvyBatch(this.requestClass, this.mapClass, func, arg, map)\r\n // }\r\n\r\n pagNavTasks<T, R, A extends iBXRestPagination>(\r\n url: string[],\r\n // func: (param: A) => Observable<iBXRestAnswer<{tasks: T[] | undefined}> | undefined>,\r\n arg: A,\r\n map?: (param: { tasks: T[] | undefined } | undefined) => R[] | undefined\r\n ) {\r\n return new NavvyPagNavTasks(url, arg, map)\r\n }\r\n\r\n pagNavWithUselessKey<T, R, A extends iBXRestPagination>(\r\n url: string[],\r\n // func: (param: A) => Observable<iBXRestAnswer<{ [key: string]: T }> | undefined>,\r\n arg: A,\r\n map?: (param: Record<string, T> | undefined) => R[] | undefined\r\n ) {\r\n return new NavvyPagNavWithUselessKey(url, arg, map)\r\n }\r\n\r\n alterPagNav<T, R, A extends iBXRestAlternativePagination>(\r\n url: string[],\r\n // func: (param: A) => Observable<iBXRestAnswer<T[]> | undefined>,\r\n arg: A,\r\n map?: (param: T[] | undefined) => R[] | undefined\r\n ) {\r\n return new NavvyAlterPagNav(url, arg, map)\r\n }\r\n}\r\n","import { Navvy } from '../../services/navvy'\r\nimport { $add, $delete, $file, $get, $list, $update, $user, $userfield } from '../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyUserUserfield {\r\n private url = {\r\n /**\r\n * Добавляет пользовательское поле\r\n */\r\n add: [$user, $userfield, $add],\r\n /**\r\n * Обновляет пользовательское поле\r\n */\r\n update: [$user, $userfield, $update],\r\n /**\r\n * Удаляет пользовательское поле\r\n */\r\n delete: [$user, $userfield, $delete],\r\n /**\r\n * Получает список пользовательских полей\r\n */\r\n list: [$user, $userfield, $list],\r\n file: {\r\n /**\r\n * Получает файл из пользовательского поля\r\n */\r\n get: [$user, $userfield, $file, $get]\r\n }\r\n }\r\n\r\n private readonly Navvy = new Navvy()\r\n\r\n list() {\r\n return this.Navvy.simple(this.url.list)\r\n }\r\n}\r\n","import clone from 'just-clone'\r\nimport { iBXRestUser, iBXRestUserHttp } from '../typification/rest/user'\r\nimport { toBool, toBXYorN, toDate, toISOStringWithTimezone, toNum, toStr } from '../services/base'\r\n\r\nexport class BXRestMapUser {\r\n\r\n static get(v: iBXRestUserHttp[] | undefined): iBXRestUser[] | undefined {\r\n return (v) ? v.map(i => BXRestMapUser.userHttpToTrace(i)) : undefined\r\n }\r\n\r\n static current(v: iBXRestUserHttp | undefined): iBXRestUser | undefined {\r\n return (v) ? BXRestMapUser.userHttpToTrace(v) : undefined\r\n }\r\n\r\n static userHttpToTrace(user: iBXRestUserHttp): iBXRestUser {\r\n let res: iBXRestUser = Object.assign(\r\n clone(user), {\r\n ID: toNum(user.ID),\r\n IS_ONLINE: toBool(user.IS_ONLINE),\r\n DATE_REGISTER: toDate(user.DATE_REGISTER),\r\n PERSONAL_BIRTHDAY: toDate(user.PERSONAL_BIRTHDAY),\r\n })\r\n if (user.LAST_LOGIN) {\r\n res.LAST_LOGIN = toDate(user.LAST_LOGIN)\r\n }\r\n\r\n return res\r\n }\r\n\r\n static BXtoHttp(user: iBXRestUser): iBXRestUserHttp {\r\n return Object.assign(clone(user), {\r\n ID: toStr(user.ID),\r\n IS_ONLINE: toBXYorN(user.IS_ONLINE),\r\n DATE_REGISTER: toISOStringWithTimezone(user.DATE_REGISTER),\r\n PERSONAL_BIRTHDAY: toStr(user.PERSONAL_BIRTHDAY),\r\n LAST_LOGIN: toStr(user.LAST_LOGIN)\r\n })\r\n }\r\n\r\n static getFIO(user: iBXRestUser): string {\r\n let res = ''\r\n if (!user.LAST_NAME) {\r\n const SECOND_NAME = (user.SECOND_NAME) ? user.SECOND_NAME : ''\r\n const NAME = (user.NAME) ? user.NAME : ''\r\n res = NAME + ' ' + SECOND_NAME\r\n } else if (!user.NAME) {\r\n res = user.LAST_NAME\r\n } else if (!user.SECOND_NAME) {\r\n res = user.LAST_NAME + ' ' + user.NAME\r\n } else {\r\n res = user.LAST_NAME + ' ' + user.NAME + ' ' + user.SECOND_NAME\r\n }\r\n return res.trim()\r\n }\r\n\r\n static getFI(user: iBXRestUser): string {\r\n let res = ''\r\n if (!user.LAST_NAME) {\r\n const NAME = (user.NAME) ? user.NAME : ''\r\n res = NAME\r\n } else if (!user.NAME) {\r\n res = user.LAST_NAME\r\n } else {\r\n res = user.LAST_NAME + ' ' + user.NAME\r\n }\r\n return res.trim()\r\n }\r\n\r\n static getFIOShort(user: iBXRestUser): string {\r\n let res = ''\r\n if (!user.LAST_NAME) {\r\n const SECOND_NAME = (user.SECOND_NAME) ? user.SECOND_NAME : ''\r\n const NAME = (user.NAME) ? user.NAME : ''\r\n res = NAME + ' ' + SECOND_NAME\r\n } else if (!user.NAME) {\r\n res = user.LAST_NAME\r\n } else if (!user.SECOND_NAME) {\r\n res = user.LAST_NAME + ' ' + user.NAME.charAt(0).toUpperCase() + '.'\r\n } else {\r\n res =\r\n user.LAST_NAME + ' ' +\r\n user.NAME.charAt(0).toUpperCase() + '.' +\r\n user.SECOND_NAME.charAt(0).toUpperCase() + '.'\r\n }\r\n return res.trim()\r\n }\r\n}\r\n","import { Navvy } from '../services/navvy'\r\nimport { iBXRestParamUserGet, iBXRestParamUserSearch, iBXRestUser, iBXRestUserHttp } from '../typification/rest/user'\r\nimport clone from 'just-clone'\r\nimport { BXRestNavvyUserUserfield } from './user/userfield'\r\nimport { BXRestMapUser } from '../map/user'\r\nimport { $get, $search, $update, $user } from '../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyUser {\r\n def: { params: { ACTIVE: boolean, start: 0 } } = {\r\n params: {ACTIVE: true, start: 0}\r\n }\r\n url = {\r\n admin: [$user, 'admin'],\r\n get: [$user, $get],\r\n current: [$user, 'current'],\r\n update: [$user, $update],\r\n search: [$user, $search],\r\n access: [$user, 'access'], // U1 - пользователь с id =1\r\n // AU - все авторизованные пользователи\r\n // D1 - подразделение с id=1\r\n // G1 - группа с id=1\r\n fields: [$user, 'fields'],\r\n }\r\n\r\n public readonly userField = new BXRestNavvyUserUserfield()\r\n private readonly Navvy = new Navvy()\r\n\r\n admin() {\r\n return this.Navvy.simple<boolean>(\r\n this.url.admin\r\n )\r\n }\r\n\r\n get(params: iBXRestParamUserGet = {}) {\r\n let copyParams = clone(params)\r\n this.setDefParam(copyParams)\r\n\r\n return this.Navvy.pagNav(\r\n this.url.get,\r\n copyParams,\r\n BXRestMapUser.get)\r\n }\r\n\r\n current() {\r\n return this.Navvy.simple<iBXRestUserHttp, iBXRestUser>(\r\n this.url.current,\r\n undefined,\r\n BXRestMapUser.current\r\n )\r\n }\r\n\r\n /*\r\n update(user: iBXRestUser, fieldUpdate: string[]) {\r\n\r\n if (fieldUpdate && fieldUpdate.length) {\r\n let sendData: any = {\r\n ID: user.ID,\r\n }\r\n const userBX = this.BXRestUserMap.BXtoHttp(user)\r\n for (const field of fieldUpdate) {\r\n if (userBX[field]) {\r\n sendData[field] = userBX[field]\r\n } else {\r\n return throwError(() => 'One sent field is empty')\r\n }\r\n }\r\n return this.http.post<iBXRestUserHttp[]>(\r\n this.url.update,\r\n sendData\r\n )\r\n } else {\r\n return throwError(() => 'All sent field for edit is empty')\r\n }\r\n return this.Navvy.simple(\r\n this.BXRestUser.update(user, fieldUpdate),\r\n 'Не удалось обновить пользователя с ID' + user.ID\r\n )\r\n }\r\n */\r\n search(params: iBXRestParamUserSearch) {\r\n return this.Navvy.pagNav(\r\n this.url.search,\r\n params,\r\n BXRestMapUser.get\r\n )\r\n }\r\n\r\n access(params: string[]) {\r\n return this.Navvy.simple(\r\n this.url.access,\r\n params,\r\n )\r\n }\r\n\r\n fields() {\r\n return this.Navvy.simple(this.url.fields)\r\n }\r\n\r\n // getAll(params: iBXGetParam = {}): Observable<iBXRestUser [] | undefined> {\r\n // if (!Object.keys(params).length) {\r\n // params = clone(this.def.params)\r\n // }\r\n //\r\n // const saveAllUser = compare(params, this.def.params)\r\n // return this.user$.pipe(\r\n // take(1),\r\n // mergeMap(v => {\r\n // if (v.load.all) {\r\n // if (compare(this.def.params, params)) {\r\n // return of(clone(v.data))\r\n // }\r\n // }\r\n //\r\n // return this.getEndArray(params).pipe(\r\n // take(1),\r\n // map(v => {\r\n // if (v && v.result) {\r\n // let cl = clone(v.result)\r\n // return this.saveArrUser(cl)\r\n // }\r\n // return undefined\r\n // }),\r\n // )\r\n // }),\r\n // tap(v => {\r\n // if (v && v.length && saveAllUser) {\r\n // this.store.dispatch(loadAll({load: true}))\r\n // }\r\n // params.start = this.def.params.start\r\n // })\r\n // )\r\n // }\r\n\r\n // private saveArrUser(users: iBXRestUserHttp[]) {\r\n // let result: iBXRestUser [] = []\r\n // for (const user of users) {\r\n // result.push(this.userMap.HttpToBX(user))\r\n // }\r\n // this.store.dispatch(saveArr({arr: result}))\r\n //\r\n // return result\r\n // }\r\n\r\n // getEndArray(params: UserFilter = {}): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined> {\r\n // return this.get(params).pipe(\r\n // mergeMap(items => {\r\n // if (items && items.result && typeof items.result === 'object') {\r\n // if (items.next) {\r\n // params.start = items.next\r\n // return this.getEndArray(params).pipe(map(vEnd => {\r\n // if (vEnd && items.result && vEnd.result) {\r\n // return {result: [...items.result, ...vEnd.result]}\r\n // }\r\n // return (items) ? items : undefined\r\n // }))\r\n // }\r\n // return of(items)\r\n // } else {\r\n // return of(undefined)\r\n // }\r\n // }),\r\n // )\r\n // }\r\n\r\n private setDefParam(params: iBXRestParamUserGet) {\r\n if (!params.FILTER) {\r\n params.FILTER = {}\r\n }\r\n\r\n if (!Object.prototype.hasOwnProperty.call(params.FILTER, 'ACTIVE')) {\r\n params.FILTER.ACTIVE = this.def.params.ACTIVE\r\n } else if (typeof params.FILTER.ACTIVE !== 'boolean') {\r\n delete params.FILTER.ACTIVE\r\n }\r\n\r\n if (!Object.prototype.hasOwnProperty.call(params, 'start')) {\r\n params.start = this.def.params.start\r\n }\r\n\r\n if (params.FILTER.UF_DEPARTMENT && !params.FILTER.UF_DEPARTMENT.length) {\r\n delete params.FILTER.UF_DEPARTMENT\r\n }\r\n }\r\n\r\n}\r\n\r\n","import {\r\n iBXRestHttpListsElement,\r\n iBXRestListsElement\r\n} from '../../typification/rest/lists/element/get'\r\nimport { toNum } from '../../services/base'\r\n\r\nexport default class BXRestMapListsElement {\r\n\r\n static get(items: iBXRestHttpListsElement[] | undefined): iBXRestListsElement[] | undefined {\r\n return (items)\r\n ? items.map(item => Object.assign(item, {\r\n BP_PUBLISHED: item.BP_PUBLISHED === 'Y',\r\n CREATED_BY: toNum(item.CREATED_BY),\r\n IBLOCK_ID: toNum(item.IBLOCK_ID),\r\n ID: toNum(item.ID)\r\n }))\r\n : undefined\r\n }\r\n\r\n}\r\n","import { iBXRestParamListsElementGet, iBXRestParamListsElementAdd } from '../../typification/rest/lists'\r\nimport BXRestListsElementMap from '../../map/lists/element'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { $add, $element, $get, $lists } from '../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyListsElement {\r\n\r\n url = {\r\n /**\r\n * Метод создаёт элемент списка\r\n */\r\n add: [$lists, $element, $add],\r\n // /**\r\n // * Метод удаляет элемент списка TODO: Реализовать\r\n // */\r\n // delete: [$lists, $element, $delete],\r\n /**\r\n * Метод возвращает список элементов или элемент\r\n */\r\n get: [$lists, $element, $get],\r\n // /**\r\n // * Метод обновляет элемент списка TODO: Реализовать\r\n // */\r\n // update: [$lists, $element, $update],\r\n // /**\r\n // * Метод возвращает путь к файлу TODO: Реализовать\r\n // */\r\n // getFileUrl: [$lists, $element, $get, $file, $url]\r\n }\r\n\r\n private Navvy = new Navvy()\r\n\r\n get(param: iBXRestParamListsElementGet) {\r\n return this.Navvy.pagNav(\r\n this.url.get,\r\n param,\r\n BXRestListsElementMap.get\r\n )\r\n }\r\n\r\n add(param: iBXRestParamListsElementAdd) {\r\n return this.Navvy.simple(this.url.add, param)\r\n }\r\n}\r\n","import { iBXRestFieldItem } from '../../typification/rest/lists/field/get'\r\n\r\nexport class BXRestMapListsField {\r\n static get(v: Record<string, iBXRestFieldItem> | undefined):iBXRestFieldItem[] | undefined {\r\n return (v) ? Object.values(v) : undefined\r\n }\r\n}\r\n","import { iBXRestListItem, iBXRestListItemHttp } from '../typification/rest/lists/get'\r\nimport BXRestMapListsElement from './lists/element'\r\nimport { BXRestMapListsField } from './lists/field'\r\nimport { toNum, toStr } from '../services/base'\r\n\r\nexport class BXRestMapLists {\r\n\r\n public readonly element = new BXRestMapListsElement()\r\n public readonly field = new BXRestMapListsField()\r\n\r\n static get(value: iBXRestListItemHttp[] | undefined): iBXRestListItem[] | undefined {\r\n return (value) ? value.map(i => BXRestMapLists.iBXRestListItemHttpToiBXRestListItem(i)) : undefined\r\n }\r\n\r\n static iBXRestListItemHttpToiBXRestListItem(itemLists: iBXRestListItemHttp): iBXRestListItem\r\n {\r\n return {\r\n ACTIVE: itemLists.ACTIVE === 'Y',\r\n API_CODE: toStr(itemLists.API_CODE),\r\n BIZPROC: itemLists.BIZPROC === 'Y',\r\n CANONICAL_PAGE_URL: toStr(itemLists.CANONICAL_PAGE_URL),\r\n CODE: itemLists.CODE,\r\n DESCRIPTION: toStr(itemLists.DESCRIPTION),\r\n DESCRIPTION_TYPE: itemLists.DESCRIPTION_TYPE,\r\n DETAIL_PAGE_URL: toStr(itemLists.DETAIL_PAGE_URL),\r\n EDIT_FILE_AFTER: toStr(itemLists.EDIT_FILE_AFTER),\r\n EDIT_FILE_BEFORE: toStr(itemLists.EDIT_FILE_BEFORE),\r\n ELEMENTS_NAME: toStr(itemLists.ELEMENTS_NAME),\r\n ELEMENT_NAME: toStr(itemLists.ELEMENT_NAME),\r\n EXTERNAL_ID: toStr(itemLists.EXTERNAL_ID),\r\n IBLOCK_TYPE_ID: toStr(itemLists.IBLOCK_TYPE_ID),\r\n ID: toNum(itemLists.ID),\r\n INDEX_ELEMENT: itemLists.INDEX_ELEMENT === 'Y',\r\n INDEX_SECTION: itemLists.INDEX_SECTION === 'Y',\r\n LANG_DIR: toStr(itemLists.LANG_DIR),\r\n LAST_CONV_ELEMENT: toNum(itemLists.LAST_CONV_ELEMENT),\r\n LID: toStr(itemLists.LID),\r\n LIST_MODE: toStr(itemLists.LIST_MODE),\r\n LIST_PAGE_URL: toStr(itemLists.LIST_PAGE_URL),\r\n NAME: toStr(itemLists.NAME),\r\n PICTURE: toStr(itemLists.PICTURE),\r\n PROPERTY_INDEX: toStr(itemLists.PROPERTY_INDEX),\r\n REST_ON: itemLists.REST_ON === 'Y',\r\n RIGHTS_MODE: toStr(itemLists.RIGHTS_MODE),\r\n RSS_ACTIVE: itemLists.RSS_ACTIVE === 'Y',\r\n RSS_FILE_ACTIVE: itemLists.RSS_FILE_ACTIVE === 'Y',\r\n RSS_FILE_DAYS: toStr(itemLists.RSS_FILE_DAYS),\r\n RSS_FILE_LIMIT: toStr(itemLists.RSS_FILE_LIMIT),\r\n RSS_TTL: toNum(itemLists.RSS_TTL),\r\n RSS_YANDEX_ACTIVE: itemLists.RSS_YANDEX_ACTIVE === 'Y',\r\n SECTIONS_NAME: toStr(itemLists.SECTIONS_NAME),\r\n SECTION_CHOOSER: toStr(itemLists.SECTION_CHOOSER),\r\n SECTION_NAME: toStr(itemLists.SECTION_NAME),\r\n SECTION_PAGE_URL: toStr(itemLists.SECTION_PAGE_URL),\r\n SECTION_PROPERTY: toStr(itemLists.SECTION_PROPERTY),\r\n SERVER_NAME: toStr(itemLists.SERVER_NAME),\r\n SOCNET_GROUP_ID: toStr(itemLists.SOCNET_GROUP_ID),\r\n SORT: toNum(itemLists.SORT),\r\n TIMESTAMP_X: new Date(itemLists.TIMESTAMP_X),\r\n TMP_ID: toStr(itemLists.TMP_ID),\r\n VERSION: toNum(itemLists.VERSION),\r\n WORKFLOW: itemLists.WORKFLOW === 'Y',\r\n XML_ID: toStr(itemLists.XML_ID),\r\n }\r\n }\r\n}\r\n","import { iBXRestFieldItem, iBXRestParamListField } from '../../typification/rest/lists'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestMapListsField } from '../../map/lists/field'\r\nimport { $field, $get, $lists } from '../../consts/part-name-methods'\r\n\r\nexport default class BXRestNavvyListsField {\r\n url = {\r\n // /**\r\n // * Метод создает поле списка\r\n // */\r\n // add: [$lists, $field, $add],\r\n // /**\r\n // * Метод удаляет поле списка\r\n // */\r\n // delete: [$lists, $field, $delete],\r\n /**\r\n * Метод возвращает данные поля\r\n */\r\n get: [$lists, $field, $get],\r\n // type: {\r\n // /**\r\n // * Метод возвращает доступные типа полей для указанного списка\r\n // */\r\n // get: [$lists, $field, $type, $get],\r\n // },\r\n // /**\r\n // * Метод обновляет поле списка\r\n // */\r\n // update: [$lists, $field, $update],\r\n }\r\n\r\n private Navvy = new Navvy()\r\n\r\n get(param: iBXRestParamListField) {\r\n return this.Navvy.pagNavWithUselessKey<iBXRestFieldItem,iBXRestFieldItem,iBXRestParamListField>(\r\n this.url.get,\r\n param,\r\n BXRestMapListsField.get\r\n )\r\n }\r\n}\r\n","import { BXRestNavvyListsElement } from './lists/element'\r\nimport { iBXRestParamListGet } from '../typification/rest/lists'\r\nimport { Navvy } from '../services/navvy'\r\nimport { BXRestMapLists } from '../map/lists'\r\nimport BXRestNavvyListsField from './lists/field'\r\nimport { $add, $element, $field, $get, $lists } from '../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyLists {\r\n\r\n url = {\r\n // /**\r\n // * Метод создаёт список\r\n // */\r\n // add: [$lists, $add],\r\n // /**\r\n // * Метод удаляет список\r\n // */\r\n // delete: [$lists, $delete],\r\n /**\r\n * Метод возвращает данные по спискам\r\n */\r\n get: [$lists, $get],\r\n // /**\r\n // * Метод обновляет существующий список\r\n // */\r\n // update: [$lists, $update],\r\n // /**\r\n // * Метод возвращает id типа инфоблока\r\n // */\r\n // getIBlockTypeId: [$lists, $get, $iblock, $type, $id],\r\n element: {\r\n /**\r\n * Метод создаёт элемент списка\r\n */\r\n add: [$lists, $element, $add],\r\n // /**\r\n // * Метод удаляет элемент списка TODO: Реализовать\r\n // */\r\n // delete: [$lists, $element, $delete],\r\n /**\r\n * Метод возвращает список элементов или элемент\r\n */\r\n get: [$lists, $element, $get],\r\n // /**\r\n // * Метод обновляет элемент списка TODO: Реализовать\r\n // */\r\n // update: [$lists, $element, $update],\r\n // /**\r\n // * Метод возвращает путь к файлу TODO: Реализовать\r\n // */\r\n // getFileUrl: [$lists, $element, $get, $file, $url]\r\n },\r\n field: {\r\n // /**\r\n // * Метод создает поле списка\r\n // */\r\n // add: [$lists, $field, $add],\r\n // /**\r\n // * Метод удаляет поле списка\r\n // */\r\n // delete: [$lists, $field, $delete],\r\n /**\r\n * Метод возвращает данные поля\r\n */\r\n get: [$lists, $field, $get],\r\n // type: {\r\n // /**\r\n // * Метод возвращает доступные типа полей для указанного списка\r\n // */\r\n // get: [$lists, $field, $type, $get],\r\n // },\r\n // /**\r\n // * Метод обновляет поле списка\r\n // */\r\n // update: [$lists, $field, $update],\r\n }\r\n }\r\n public readonly element = new BXRestNavvyListsElement()\r\n public readonly field = new BXRestNavvyListsField()\r\n\r\n protected Navvy = new Navvy()\r\n\r\n get(param: iBXRestParamListGet) {\r\n return this.Navvy.pagNav(this.url.get, param, BXRestMapLists.get)\r\n }\r\n\r\n // getAllWithMap(pram: getListParam): Observable<ItemLists[] | undefined> {\r\n // return this.getAll(pram)\r\n // .pipe(\r\n // map(v => (v && v.length) ? v.map(i => this.listsMap.mapItemLists(i)) : [])\r\n // )\r\n // }\r\n\r\n // getField(pram: getListFieldParam): Observable<iHttpAnswerBX<FieldItemLists[]> | undefined> {\r\n // return this.http.post<iHttpAnswerBX<{ [key: string]: FieldItemLists }>>(this.url.field.get, pram)\r\n // }\r\n}\r\n","import { iBXRestTaskElapsedItem, iBXRestTaskElapsedItemHttp } from '../../typification/rest/task'\r\nimport { toDate, toNum } from '../../services/base'\r\n\r\nexport class BXRestMapTaskElapsedItem {\r\n static update(p: null | undefined) {\r\n return (p == null)\r\n }\r\n\r\n static getList(v: iBXRestTaskElapsedItemHttp[] | undefined) {\r\n return (v) ? v.map(i => BXRestMapTaskElapsedItem.ElapsedItemHttpToElapsedItem(i)) : undefined\r\n }\r\n\r\n static ElapsedItemHttpToElapsedItem(item: iBXRestTaskElapsedItemHttp): iBXRestTaskElapsedItem {\r\n return Object.assign(item, {\r\n ID: toNum(item.ID),\r\n MINUTES: toNum(item.MINUTES),\r\n SECONDS: toNum(item.SECONDS),\r\n TASK_ID: toNum(item.TASK_ID),\r\n USER_ID: toNum(item.USER_ID),\r\n SOURCE: toNum(item.SOURCE),\r\n CREATED_DATE: toDate(item.CREATED_DATE),\r\n DATE_START: toDate(item.DATE_START),\r\n DATE_STOP: toDate(item.DATE_STOP),\r\n })\r\n }\r\n}\r\n","import { iBXRestTasksTaskResult, iBXRestTasksTaskResultHttp } from '../../../typification/rest/tasks/task/result/result'\r\nimport { toDate } from '../../../services/base'\r\n\r\nexport class BXRestMapTasksTaskResult {\r\n\r\n static list(item: iBXRestTasksTaskResultHttp[] | undefined){\r\n return (item) ? item.map(i => BXRestMapTasksTaskResult.iTaskResultHttpToiTaskResult(i)) : undefined\r\n }\r\n\r\n static addFromComment(item: iBXRestTasksTaskResultHttp | undefined){\r\n return (item) ? BXRestMapTasksTaskResult.iTaskResultHttpToiTaskResult(item) : undefined\r\n }\r\n\r\n static iTaskResultHttpToiTaskResult(item: iBXRestTasksTaskResultHttp): iBXRestTasksTaskResult {\r\n return Object.assign(item, {\r\n createdAt: toDate(item.createdAt),\r\n updatedAt: toDate(item.updatedAt)\r\n })\r\n }\r\n}\r\n","import { iBXRestTaskGetAccess } from '../../typification/rest/task/access/getaccess'\r\nimport {\r\n iBXRestTasksTaskList,\r\n iBXRestTasksTaskListHttp,\r\n} from '../../typification/rest/tasks/task/list'\r\nimport {\r\n iBXRestTasksTaskGetHttp, iBXRestTasksTaskGetHttpDefault\r\n} from '../../typification/rest/tasks/task/get'\r\nimport { BXRestMapTasksTaskResult } from './task/result'\r\nimport { iBXRestHttpTask, iBXRestTask, iBXRestTaskHttpTag } from '../../typification/rest/tasks/task'\r\nimport { iBXRestTaskFieldsName } from '../../typification/rest/tasks/base/fields-name'\r\nimport values from 'just-values'\r\nimport { toDate, toNum } from '../../services/base'\r\n\r\nexport class BXRestMapTasksTask {\r\n public readonly result = BXRestMapTasksTaskResult\r\n\r\n static getAccess(v: iBXRestTaskGetAccess | undefined) {\r\n return (v && v.allowedActions) ? v.allowedActions : undefined\r\n }\r\n\r\n static add(item: { task: iBXRestTasksTaskGetHttpDefault } | undefined): iBXRestTask | undefined {\r\n return (item) ? BXRestMapTasksTask.TaskBXHttpToTaskBX(item.task) : undefined\r\n }\r\n\r\n static get<S extends iBXRestTaskFieldsName[], CustomFields>(item: iBXRestTasksTaskGetHttp<S, CustomFields> | undefined) {\r\n return (item && item.task) ?\r\n BXRestMapTasksTask.TaskBXHttpToTaskBX(item.task)\r\n : undefined\r\n }\r\n\r\n static list<S extends iBXRestTaskFieldsName[], CustomFields>(item: iBXRestTasksTaskListHttp<S, CustomFields> | undefined) {\r\n return (item && item.tasks)\r\n ? item.tasks.map(i => BXRestMapTasksTask.TaskBXHttpToTaskBX<\r\n CustomFields,\r\n Partial<iBXRestHttpTask> & Partial<CustomFields>,\r\n iBXRestTasksTaskList<S, CustomFields>\r\n >(i))\r\n : undefined\r\n }\r\n\r\n static TaskBXHttpToTaskBX<CustomFields, T extends Partial<iBXRestHttpTask> & Partial<CustomFields>, R>(item: T): R {\r\n let result: any = {}\r\n if (item.id) {\r\n result.id = toNum(item.id)\r\n }\r\n if (item.parentId) {\r\n result.parentId = toNum(item.parentId)\r\n }\r\n if (item.priority) {\r\n result.priority = toNum(item.priority)\r\n }\r\n if (item.status) {\r\n result.status = toNum(item.status)\r\n }\r\n if (item.multitask) {\r\n result.multitask = item.multitask === 'Y'\r\n }\r\n if (item.groupId) {\r\n result.groupId = toNum(item.groupId)\r\n }\r\n if (item.stageId) {\r\n result.stageId = toNum(item.stageId)\r\n }\r\n if (item.createdBy) {\r\n result.createdBy = toNum(item.createdBy)\r\n }\r\n if (item.createdDate) {\r\n result.createdDate = toDate(item.createdDate)\r\n }\r\n if (item.responsibleId) {\r\n result.responsibleId = toNum(item.responsibleId)\r\n }\r\n if (item.changedBy) {\r\n result.changedBy = toNum(item.changedBy)\r\n }\r\n if (item.changedDate) {\r\n result.changedDate = toDate(item.changedDate)\r\n }\r\n if (item.statusChangedBy) {\r\n result.statusChangedBy = toNum(item.statusChangedBy)\r\n }\r\n if (item.statusChangedDate) {\r\n result.statusChangedDate = toDate(item.statusChangedDate)\r\n }\r\n if (item.closedBy) {\r\n result.closedBy = toNum(item.closedBy)\r\n }\r\n if (item.closedDate) {\r\n result.closedDate = toDate(item.closedDate)\r\n }\r\n if (item.dateStart) {\r\n result.dateStart = toDate(item.dateStart)\r\n }\r\n if (item.deadline) {\r\n result.deadline = toDate(item.deadline)\r\n }\r\n if (item.startDatePlan) {\r\n result.startDatePlan = toDate(item.startDatePlan)\r\n }\r\n if (item.endDatePlan) {\r\n result.endDatePlan = toDate(item.endDatePlan)\r\n }\r\n if (item.forumTopicId) {\r\n result.forumTopicId = toNum(item.forumTopicId)\r\n }\r\n if (item.forumId) {\r\n result.forumId = toNum(item.forumId)\r\n }\r\n if (item.viewedDate) {\r\n result.viewedDate = toDate(item.viewedDate)\r\n }\r\n if (item.sorting) {\r\n result.sorting = toNum(item.sorting)\r\n }\r\n if (item.durationPlan) {\r\n result.durationPlan = toNum(item.durationPlan)\r\n }\r\n if (item.descriptionInBbcode) {\r\n result.descriptionInBbcode = item.descriptionInBbcode === 'Y'\r\n }\r\n if (item.accomplices) {\r\n result.accomplices = item.accomplices.map(i => toNum(i))\r\n }\r\n if (item.subStatus) {\r\n result.subStatus = toNum(item.subStatus)\r\n }\r\n if (item.creator) {\r\n result.creator = Object.assign(item.creator, {id: toNum(item.creator.id)})\r\n }\r\n if (item.responsible) {\r\n result.responsible = Object.assign(item.responsible, {id: toNum(item.responsible.id)})\r\n }\r\n if (item.accomplicesData) {\r\n result.accomplicesData =\r\n Object.values(item.accomplicesData).map(i => Object.assign(i, {id: toNum(i.id)}))\r\n }\r\n if (item.allowTimeTracking) {\r\n result.allowTimeTracking = item.allowTimeTracking === 'Y'\r\n }\r\n\r\n if (item.tags) {\r\n result.tags = values<iBXRestTaskHttpTag>(item.tags).map(i => {\r\n return {\r\n id: toNum(i.id),\r\n title: i.title\r\n }\r\n })\r\n }\r\n\r\n return Object.assign(item, result)\r\n }\r\n}\r\n","import { Navvy } from '../../../services/navvy'\r\nimport { BXRestMapTasksTaskResult } from '../../../map/tasks/task/result'\r\nimport {\r\n iBXRestParamTasksTaskResultList, iBXParamRestTasksTaskResultAdd, iBXRestTasksTaskResult,\r\n iBXRestTasksTaskResultHttp\r\n} from '../../../typification/rest/tasks'\r\nimport { $list, $result, $task, $tasks } from '../../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyTasksTaskResult {\r\n\r\n url = {\r\n /**\r\n * Просмотр списка результатов к задаче\r\n */\r\n list: [$tasks, $task, $result, $list],\r\n /**\r\n * Создание результата задачи из комментария\r\n */\r\n addFromComment: [$tasks, $task, $result, 'addFromComment'],\r\n /**\r\n * Удаление результата задачи по комментарию из которого он был создан\r\n */\r\n deleteFromComment: [$tasks, $task, $result, 'deleteFromComment'],\r\n }\r\n\r\n private Navvy = new Navvy()\r\n\r\n deleteFromComment(commentID: { commentId: number }) {\r\n return this.Navvy.simple<null, null, { commentId: number }>(\r\n this.url.deleteFromComment,\r\n commentID,\r\n )\r\n }\r\n\r\n addFromComment(param: iBXParamRestTasksTaskResultAdd) {\r\n return this.Navvy.simple<iBXRestTasksTaskResultHttp, iBXRestTasksTaskResult, iBXParamRestTasksTaskResultAdd>(\r\n this.url.addFromComment,\r\n param,\r\n BXRestMapTasksTaskResult.addFromComment\r\n )\r\n }\r\n\r\n list(param: iBXRestParamTasksTaskResultList) {\r\n return this.Navvy.pagNav<iBXRestTasksTaskResultHttp, iBXRestTasksTaskResult, iBXRestParamTasksTaskResultList>(\r\n this.url.list,\r\n param,\r\n BXRestMapTasksTaskResult.list\r\n )\r\n }\r\n}\r\n","import {\r\n iBXRestParamTaskAdd,\r\n iBXRestParamTasksList,\r\n iBXRestTaskFieldsName,\r\n iBXRestTasksTaskBaseAnswer,\r\n iBXRestTask, iBXRestTasksTaskGetFields, iBXRestTasksTaskDeferHttp,\r\n iBXRestParamTasksTaskGet, iBXRestTasksTaskGet, iBXRestTasksTaskGetHttpDefault,\r\n iBXRestParamTasksTaskUpdateFields,\n iBXRestTasksTaskFieldsCanUpdate,\n iBXRestParamTasksTaskApprove,\n iBXRestTasksTaskApproveHttp,\n iBXRestParamTasksTaskComplete,\n iBXRestTasksTaskCompleteHttp,\n iBXRestParamTasksTaskDefer\n} from '../../typification/rest/tasks'\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestMapTasksTask } from '../../map/tasks/task'\r\nimport { BXRestNavvyTasksTaskResult } from './task/result'\r\nimport camelCase from 'just-camel-case'\r\nimport {\r\n iBXRestParamTaskGetAccess,\r\n iBXRestTaskGetAccess,\r\n iBXRestTaskGetAccessItem\r\n} from '../../typification/rest/task'\r\nimport { ToUpperCaseKeys } from '../../typification/base/upper-case-keys'\r\nimport { ObjectToSnake } from 'ts-case-convert/lib/caseConvert'\r\nimport { AllKeyFree } from '../../typification/base/all-key-free'\r\nimport {\r\n $add,\r\n $approve,\r\n $complete,\r\n $defer,\r\n $delegate,\r\n $get, $getaccess,\r\n $getFields, $list, $result,\r\n $task,\r\n $tasks, $update\r\n} from '../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyTasksTask {\r\n\r\n url = {\r\n /**\r\n * Создает задачу\r\n */\r\n add: [$tasks, $task, $add],\r\n /**\r\n * Позволяет принять задачу\r\n */\r\n approve: [$tasks, $task, $approve],\r\n /**\r\n * Переводит задачу в статус «завершена»\r\n */\r\n complete: [$tasks, $task, $complete],\r\n // counters: {\r\n // /**\r\n // * Получает счетчики пользователя\r\n // */\r\n // get: [$tasks, $task, $counters, $get],\r\n // },\r\n /**\r\n * Переводит задачу в статус «отложена»\r\n */\r\n defer: [$tasks, $task, $defer],\r\n /**\r\n * Метод для делегирования задачи\r\n */\r\n delegate: [$tasks, $task, $delegate],\r\n /**\r\n * Возвращает информацию о конкретной задаче\r\n */\r\n get: [$tasks, $task, $get],\r\n // /**\r\n // * Удаляет задачу\r\n // */\r\n // delete: [$tasks, $task, $delete],\r\n // /**\r\n // * Позволяет отклонить задачу\r\n // */\r\n // disapprove: [$tasks, $task, $disapprove],\r\n // favorite: {\r\n // /**\r\n // * Добавляет задачи в \"Избранное\"\r\n // */\r\n // add: [$tasks, $task, $favorite, $add],\r\n // /**\r\n // * Удаляет задачи из \"Избранного\"\r\n // */\r\n // delete: [$tasks, $task, $favorite, $delete],\r\n // },\r\n // files: {\r\n // /**\r\n // * Прикрепляет загруженный на диск файл к задаче\r\n // */\r\n // attach: [$tasks, $task, $files, $attach],\r\n // },\r\n /**\r\n * Возвращает все доступные поля\r\n */\r\n getFields: [$tasks, $task, $getFields],\r\n /**\r\n * Метод для проверки доступа к задаче\r\n */\r\n getAccess: [$tasks, $task, $getaccess],\r\n // history: {\r\n // /**\r\n // * Получает историю задачи\r\n // */\r\n // list: [$tasks, $task, $history, $list],\r\n // },\r\n /**\r\n * Возвращает массив задач, каждая из которых содержит массив полей\r\n */\r\n list: [$tasks, $task, $list],\r\n // /**\r\n // * Останавливает выполнение задачи, переводя ее в статус \"ждет выполнения\"\r\n // */\r\n // pause: [$tasks, $task, $pause],\r\n // /**\r\n // * Возобновляет задачу после ее завершения\r\n // */\r\n // renew: [$tasks, $task, $renew],\r\n // /**\r\n // * Переводит задачу в статус «выполняется»\r\n // */\r\n // start: [$tasks, $task, $start],\r\n // /**\r\n // * Позволяет наблюдать за задачей\r\n // */\r\n // startWatch: [$tasks, $task, 'startwatch'],\r\n // /**\r\n // * Останавливает наблюдение за задачей\r\n // */\r\n // stopwatch: [$tasks, $task, 'stopwatch'],\r\n /**\r\n * Обновляет задачу\r\n */\r\n update: [$tasks, $task, $update],\r\n result: {\r\n /**\r\n * Просмотр списка результатов к задаче\r\n */\r\n list: [$tasks, $task, $result, $list],\r\n /**\r\n * Создание результата задачи из комментария\r\n */\r\n addFromComment: [$tasks, $task, $result, 'addFromComment'],\r\n /**\r\n * Удаление результата задачи по комментарию из которого он был создан\r\n */\r\n deleteFromComment: [$tasks, $task, $result, 'deleteFromComment'],\r\n }\r\n }\r\n\r\n public readonly result = new BXRestNavvyTasksTaskResult()\r\n\r\n private readonly Navvy = new Navvy()\r\n\r\n add<CustomFields extends object = object>(param: iBXRestParamTaskAdd<CustomFields>) {\r\n return this.Navvy.simple<\r\n iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskGetHttpDefault>,\r\n iBXRestTask,\r\n iBXRestParamTaskAdd<CustomFields>\r\n >(\r\n this.url.add,\r\n param,\r\n BXRestMapTasksTask.add\r\n )\r\n }\r\n\r\n // TODO: переписать нормально\r\n approve(param: iBXRestParamTasksTaskApprove) {\n return this.Navvy.simple<\n iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskApproveHttp>,\n iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskApproveHttp>,\n iBXRestParamTasksTaskApprove\n >(this.url.approve, param)\n }\n\n complete(param: iBXRestParamTasksTaskComplete) {\n return this.Navvy.simple<\n iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskCompleteHttp>,\n iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskCompleteHttp>,\n iBXRestParamTasksTaskComplete\n >(this.url.complete, param)\n }\n\n defer(param: iBXRestParamTasksTaskDefer) {\n return this.Navvy.simple<\n iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskDeferHttp>,\n iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskDeferHttp>,\n iBXRestParamTasksTaskDefer\n >(this.url.defer, param)\n }\n\n update<CustomFields extends object>(\n task: AllKeyFree<iBXRestTasksTaskGet<iBXRestTaskFieldsName[], CustomFields>>,\r\n updateFields: (iBXRestTasksTaskFieldsCanUpdate | keyof ToUpperCaseKeys<ObjectToSnake<CustomFields>>)[]\r\n ) {\r\n\r\n let sendTask: iBXRestParamTasksTaskUpdateFields & AllKeyFree<CustomFields> = {}\r\n let taskTS: Record<string, any> = task\r\n if (updateFields.length) {\r\n for (let updateField of updateFields) {\r\n const key = String(updateField)\r\n if (taskTS[camelCase(key)]) {\r\n // @ts-ignore\r\n sendTask[key] = taskTS[camelCase(key)]\r\n }\r\n }\r\n // @ts-ignore\r\n if (Object.values(sendTask).length && task && task.id) {\r\n return this.Navvy.simple<\r\n iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskDeferHttp>,\r\n iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskDeferHttp>,\r\n any\r\n >(this.url.update, {taskId: task.id, fields: sendTask})\r\n }\r\n }\r\n\r\n throw new Error('updateFields empty')\r\n }\r\n\r\n get<S extends iBXRestTaskFieldsName[], CustomFields extends object = object>(param: iBXRestParamTasksTaskGet<CustomFields>) {\r\n return this.Navvy.simple(\r\n this.url.get,\r\n param,\r\n BXRestMapTasksTask.get<S, CustomFields>\r\n )\r\n }\r\n\r\n // Возможно можно обойтись без \"S extends iBXRestTaskFieldsName[]\",\r\n // надо что бы понять то как генерировать интейфейс на лету исходя их входящих данных\r\n list<S extends iBXRestTaskFieldsName[], CustomFields extends object = object>(\r\n param: iBXRestParamTasksList<CustomFields> = {}\r\n ) {\r\n return this.Navvy.pagNavTasks(\r\n this.url.list,\r\n param,\r\n BXRestMapTasksTask.list<S, CustomFields>\r\n )\r\n }\r\n\r\n /*\r\n listArray(requestArray: RequestApiTaskListBX = {}) {\r\n return this.list(requestArray).pipe(\r\n map(v => this.http.mapResult(v)),\r\n map(v => (v && v.tasks) ? v.tasks : [])\r\n )\r\n }\r\n\r\n listAll(requestArray: RequestApiTaskListBX = {}, cache = false): Observable<TaskBX[]> {\r\n if (!requestArray.select) {\r\n requestArray.select = this.def.select\r\n if (cache) {\r\n return this.storeTask$.pipe(\r\n take(1),\r\n mergeMap(tasks => {\r\n if (tasks && tasks.data.http.list && requestArray.filter && requestArray.filter.ID) {\r\n const ids = (typeof requestArray.filter.ID === 'number') ? [requestArray.filter.ID] : requestArray.filter.ID\r\n let filter = tasks.data.http.list.filter(i => (i.id) ? ids.includes(i.id) : false)\r\n if (filter.length === ids.length) {\r\n return of(filter)\r\n }\r\n }\r\n return this.getEndListArray(requestArray)\r\n })\r\n )\r\n }\r\n return this.getEndListArray(requestArray)\r\n }\r\n return this.getEndListArray(requestArray)\r\n }\r\n\r\n getEndListArray(requestArray: RequestApiTaskListBX): Observable<TaskBX[]> {\r\n return this.list(requestArray).pipe(\r\n mergeMap((items: AnswerApiTaskBX | undefined): ObservableInput<any> | Observable<AnswerApiTaskBX[]> => {\r\n if (items && items.result && typeof items.result.tasks === 'object') {\r\n const items$ = of(items.result.tasks)\r\n if (items.next) {\r\n this.nowLoad$.next({\r\n total: (items.total) ? items.total : 0,\r\n next: items.next\r\n })\r\n requestArray.start = items.next\r\n return this.getEndListArray(requestArray).pipe(\r\n map(vEnd => {\r\n if (vEnd && items.result.tasks) {\r\n return [...items.result.tasks, ...vEnd]\r\n }\r\n return (items.result.tasks) ? items.result.tasks : []\r\n }))\r\n }\r\n this.nowLoad$.next({\r\n total: 0,\r\n next: 0\r\n })\r\n return items$\r\n } else {\r\n return of([])\r\n }\r\n })\r\n )\r\n }\r\n */\r\n\r\n getFields() {\r\n return this.Navvy.simple<iBXRestTasksTaskGetFields>(\r\n this.url.getFields\r\n )\r\n }\r\n\r\n getAccess(param: iBXRestParamTaskGetAccess) {\r\n return this.Navvy.simple<iBXRestTaskGetAccess, {\r\n [key: number]: iBXRestTaskGetAccessItem\r\n }, iBXRestParamTaskGetAccess>(\r\n this.url.getAccess,\r\n param,\r\n BXRestMapTasksTask.getAccess\r\n )\r\n }\r\n\r\n}\r\n","import { BXRestNavvyTasksTask } from './tasks/task'\r\n\r\nexport class BXRestNavvyTasks {\r\n public readonly task = new BXRestNavvyTasksTask()\r\n}\r\n","import { iBXRestParamElapseditemGet } from '../../../typification/rest/task'\r\nimport { Navvy } from '../../../services/navvy'\r\nimport { BXRestMapTaskElapsedItem } from '../../../map/task/elapseditem'\r\nimport { $elapseditem, $getlist, $task } from '../../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyDelegateElapsedItem {\r\n\r\n private Navvy = new Navvy()\r\n\r\n getList(\r\n param: iBXRestParamElapseditemGet = {}\r\n ) {\r\n if (param) {\r\n if (!param.TASKID && !param.SELECT) {\r\n param.SELECT = ['*']\r\n }\r\n if (!param.TASKID && !param.PARAMS) {\r\n param.PARAMS = {\r\n NAV_PARAMS: {\r\n nPageSize: 50,\r\n iNumPage: 1\r\n }\r\n }\r\n }\r\n }\r\n return this.Navvy.alterPagNav(\r\n [$task, $elapseditem, $getlist],\r\n param,\r\n BXRestMapTaskElapsedItem.getList\r\n )\r\n }\r\n\r\n}\r\n","import {\r\n iBXRestParamElapseditemGet,\r\n iBXRestTaskElapsedItemHttp,\r\n iBXRestParamTaskGetAccess,\r\n iBXRestTaskGetAccess,\r\n iIsActionAllowedParam,\r\n iBXRestParamAddElapseditem,\r\n iBXRestParamUpdateElapseditem,\r\n iBXRestParamDelElapseditem\r\n} from '../../../typification/rest/task'\r\nimport { HttpBXServices } from '../../../services/http/HttpBX'\r\nimport { $elapseditem, $getaccess, $getlist, $isactionallowed, $task, $tasks } from '../../../consts/part-name-methods'\r\nimport { map, take } from 'rxjs/operators'\r\nimport { BXRestMapTaskElapsedItem } from '../../../map/task/elapseditem'\r\nimport { mergeMap, of, throwError } from 'rxjs'\r\nimport { BXRestNavvyUser } from '../../user'\r\nimport { BXRestNavvyTasks } from '../../tasks'\r\nimport { BXRestNavvyDelegateElapsedItem } from '../delegate/elapseditem'\r\nimport { iBXRestUser } from '../../../typification/rest/user'\r\nimport { BXRestNavvyElapsedItem } from '../elapseditem'\r\n\r\nexport class BXRestNavvyOperationElapsedItem {\r\n\r\n private readonly http = new HttpBXServices()\r\n private readonly delegate = new BXRestNavvyDelegateElapsedItem()\r\n private readonly BXRestNavvyUser = new BXRestNavvyUser()\r\n private readonly BXRestNavvyTasks = new BXRestNavvyTasks()\r\n\r\n constructor(private BXRestNavvyElapsedItem: BXRestNavvyElapsedItem) {\r\n }\r\n\r\n getByInterval(idsUsers: number[], dateStart: Date, dateEnd: Date) {\r\n const param: iBXRestParamElapseditemGet = {\r\n ORDER: {\r\n ID: 'DESC'\r\n },\r\n FILTER: {\r\n USER_ID: idsUsers,\r\n '>=CREATED_DATE': dateStart.toLocaleString('ru-Ru', {\r\n timeZoneName: 'short'\r\n }),\r\n '<=CREATED_DATE': dateEnd.toLocaleString('ru-Ru', {\r\n timeZoneName: 'short'\r\n }),\r\n }\r\n }\r\n return this.delegate.getList(param)\r\n }\r\n\r\n // TODO: Сделать нормально\r\n getListByIDTask(ids: number[]) {\r\n // Работает только потому что \"nPageSize: 99999\"\r\n return this.http.branch<iBXRestParamElapseditemGet, iBXRestTaskElapsedItemHttp>\r\n (\r\n ids.map(i => {\r\n return {\r\n name: this.http.getNameMethod([$task, $elapseditem, $getlist]),\r\n param: {\r\n TASKID: i,\r\n PARAMS: {\r\n NAV_PARAMS: {\r\n nPageSize: 99999,\r\n iNumPage: 1\r\n }\r\n }\r\n }\r\n }\r\n })\r\n ).pipe(\r\n map(v => {\r\n if (v && v.length) {\r\n const res = this.http.mapBranchResultWithoutKey(v)\r\n return BXRestMapTaskElapsedItem.getList(res)\r\n }\r\n return undefined\r\n })\r\n )\r\n }\r\n\r\n checkPermissionAddElapsedTimeToTaskArr(tasks: number[], userCurrent: iBXRestUser | undefined = undefined) {\r\n // Убираем дубли, чтобы не проверять права по одной задаче несколько раз.\r\n const ids = [...new Set(tasks.filter(i => !!i))]\r\n // Если текущий пользователь не передан снаружи, запрашиваем его один раз на весь набор задач.\r\n const user$ = userCurrent ? of(userCurrent) : this.BXRestNavvyUser.current().res()\r\n\r\n // Старый batch через task.elapseditem.isactionallowed.\r\n // Вызываем его ниже только для задач, по которым getaccess не вернул ELAPSEDTIME.ADD.\r\n const loadMissingByActionAllowed = (missingIds: number[], resolved: { id: number, value: boolean }[]) => {\r\n return this.http.branch<iIsActionAllowedParam, boolean>(\r\n Object.assign({}, ...missingIds.map(i => {\r\n return {\r\n [i]: {\r\n name: this.http.getNameMethod([$task, $elapseditem, $isactionallowed]),\r\n param: {\r\n TASKID: i,\r\n ITEMID: 1,\r\n ACTIONID: 1\r\n }\r\n }\r\n }\r\n }))\r\n ).pipe(\r\n map(v => {\r\n if (v && v.length) {\r\n const res: Record<number, boolean> = this.http.mapBranchResult(v)\r\n const loaded = Object.entries(res).map(([key, value]) => {\r\n return {id: Number(key), value}\r\n })\r\n\r\n return [...resolved, ...loaded]\r\n }\r\n\r\n return undefined\r\n })\r\n )\r\n }\r\n\r\n if (!ids.length) {\r\n return of([])\r\n }\r\n\r\n return user$.pipe(\r\n take(1),\r\n mergeMap(self => {\r\n if (!self) {\r\n // Страховочная ветка: если user.current не вернулся, getaccess вызвать нельзя.\r\n return loadMissingByActionAllowed(ids, [])\r\n }\r\n\r\n // Основной путь: одним batch-запросом получаем права ELAPSEDTIME.ADD по всем задачам.\r\n return this.http.branch<iBXRestParamTaskGetAccess, iBXRestTaskGetAccess>(\r\n Object.assign({}, ...ids.map(id => {\r\n return {\r\n [id]: {\r\n name: this.http.getNameMethod([$tasks, $task, $getaccess]),\r\n param: {\r\n id,\r\n users: [self.ID]\r\n }\r\n }\r\n }\r\n }))\r\n ).pipe(\r\n mergeMap(v => {\r\n if (v && v.length) {\r\n const res = this.http.mapBranchResult<iBXRestTaskGetAccess>(v)\r\n const permissions = ids.map(id => ({\r\n id,\r\n value: res[id]?.allowedActions?.[self.ID]?.['ELAPSEDTIME.ADD']\r\n }))\r\n\r\n // getaccess может вернуть true или false - оба значения считаем готовым ответом.\r\n // В старый isactionallowed отправляем только задачи без явного ELAPSEDTIME.ADD.\r\n const resolved = permissions.filter(i => i.value !== undefined) as { id: number, value: boolean }[]\r\n const missingIds = permissions.filter(i => i.value === undefined).map(i => i.id)\r\n\r\n if (missingIds.length) {\r\n return loadMissingByActionAllowed(missingIds, resolved)\r\n }\r\n\r\n return of(permissions)\r\n }\r\n\r\n // Если batch getaccess не вернулся, сохраняем поведение старого fallback.\r\n return loadMissingByActionAllowed(ids, [])\r\n })\r\n )\r\n })\r\n )\r\n }\r\n /**\r\n * Проверка на возможность добавление записи трека в таску\r\n *\r\n * @param idTask\r\n * @param userCurrent\r\n */\r\n checkPermissionAddElapsedTimeToTask(idTask: number, userCurrent: iBXRestUser | undefined = undefined) {\r\n // let permission = Permission.get()\r\n // if (permission?.tasks?.length) {\r\n // let findTask = permission.tasks.find(i => i.id === idTask)\r\n // if (findTask?.permission) {\r\n // return of(findTask.permission['ELAPSEDTIME.ADD'])\r\n // }\r\n return ((userCurrent) ? of(userCurrent) : this.BXRestNavvyUser.current().res()).pipe(\r\n mergeMap(self => {\r\n if (self) {\r\n return this.BXRestNavvyTasks.task.getAccess(\r\n {\r\n id: idTask,\r\n users: [self.ID]\r\n }).res().pipe(\r\n // tap(v => {\r\n // if (v && v[self.ID]) {\r\n // Permission.set({\r\n // tasks: [{id: idTask, permission: v[self.ID], elapsedItem: []}]\r\n // })\r\n // }\r\n // }),\r\n map(v => {\r\n return (v && v[self.ID]) ? v[self.ID]['ELAPSEDTIME.ADD'] : false\r\n }),\r\n )\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n // }\r\n\r\n // return of(undefined)\r\n }\r\n\r\n /**\r\n * Проверка на возможность прочтения такски\r\n *\r\n * @param idTask\r\n * @param userCurrent\r\n */\r\n checkPermissionReadTask(idTask: number, userCurrent: iBXRestUser | undefined = undefined) {\r\n // let permission = Permission.get()\r\n // if (permission?.tasks?.length) {\r\n // let findTask = permission.tasks.find(i => i.id === idTask)\r\n // if (findTask?.permission) {\r\n // return of(findTask.permission.ACCEPT)\r\n // }\r\n // console.log('idTask', idTask)\r\n return ((userCurrent) ? of(userCurrent) : this.BXRestNavvyUser.current().res()).pipe(\r\n mergeMap(self => {\r\n if (self) {\r\n return this.BXRestNavvyTasks.task.getAccess(\r\n {\r\n id: idTask,\r\n users: [self.ID]\r\n }).res().pipe(\r\n // tap(v => {\r\n // if (v && v[self.ID]) {\r\n // Permission.set({\r\n // tasks: [{id: idTask, permission: v[self.ID], elapsedItem: []}]\r\n // })\r\n // }\r\n // }),\r\n map(v => {\r\n return (v && v[self.ID]) ? !!v[self.ID] : false // отдельного флага на чтение нет, выходит что если права отдались то и права есть\r\n }),\r\n )\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n // }\r\n //\r\n // return of(undefined)\r\n }\r\n\r\n /**\r\n * Законченный метод добавления записи с предварительной проверкой прав\r\n *\r\n * TODO: добавить сохранение предварительно проверенных записей\r\n * @param param\r\n */\r\n add(param: iBXRestParamAddElapseditem) {\r\n return this.checkPermissionReadTask(param.TASKID).pipe(\r\n mergeMap(allowedReadTask => {\r\n if (allowedReadTask) {\r\n return this.checkPermissionAddElapsedTimeToTask(param.TASKID).pipe(\r\n mergeMap(allowed => {\r\n if (allowed) {\r\n return this.BXRestNavvyElapsedItem.add(param).res()\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права добавление записи затраченного времени'))\r\n }\r\n }))\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права на чтение задачи'))\r\n }\r\n }))\r\n }\r\n\r\n /**\r\n * Законченный метод обновления записи с предварительной проверкой прав\r\n *\r\n * TODO: добавить сохранение предварительно проверенных записей\r\n * @param param\r\n */\r\n update(param: iBXRestParamUpdateElapseditem) {\r\n return this.checkPermissionReadTask(param.TASKID).pipe(\r\n mergeMap((allowedReadTask) => {\r\n if (allowedReadTask) {\r\n return this.isAllowedModify(param.TASKID, param.ITEMID).pipe(\r\n mergeMap(allowed => {\r\n if (allowed) {\r\n return this.BXRestNavvyElapsedItem.update(param).res()\r\n }\r\n return throwError(() => new Error('Отсутствуют права на изменение записи затраченного времени'))\r\n }))\r\n }\r\n return throwError(() => new Error('Отсутствуют права на чтение задачи'))\r\n }))\r\n }\r\n\r\n // TODO: разобраться что это за ебатня в комментах и вписать нормальной комент если она нужна\r\n isAllowedModify(idTask: number, idItem: number) {\r\n // let permission = Permission.get()\r\n // if (permission?.tasks?.length) {\r\n // let findTask = permission.tasks.find(i => i.id === idTask)\r\n // if (findTask) {\r\n // let find = findTask.elapsedItem.find(i => i.id === idItem)\r\n // if (find && find.verified.edit) {\r\n // return of(find.edit)\r\n // }\r\n // }\r\n // }\r\n\r\n return this.BXRestNavvyElapsedItem.isActionAllowed({\r\n TASKID: idTask,\r\n ITEMID: idItem,\r\n ACTIONID: 2\r\n }).res()\r\n // .pipe(\r\n // tap(v => {\r\n // if (v !== undefined) {\r\n // Permission.setTaskElapsedItem(idTask,\r\n // {\r\n // id: idItem,\r\n // edit: v,\r\n // del: false,\r\n // verified: {\r\n // edit: true,\r\n // del: false,\r\n // }\r\n // })\r\n // }\r\n // })\r\n // )\r\n }\r\n\r\n /**\r\n * isActionAllowed с фиксом на проверку возможности чтения задачи записи\r\n * (без проверки даёт ошибку)\r\n *\r\n * idAction:\r\n * 1 - ACTION_ELAPSED_TIME_ADD\r\n * 2 - ACTION_ELAPSED_TIME_MODIFY\r\n * 3 - ACTION_ELAPSED_TIME_REMOVE\r\n * @param param\r\n */\r\n isActionAllowed(param: iIsActionAllowedParam) {\r\n return this.checkPermissionReadTask(param.TASKID).pipe(\r\n mergeMap(canRead => {\r\n if (canRead) {\r\n return this.BXRestNavvyElapsedItem.isActionAllowed(param).res()\r\n }\r\n return throwError(() => new Error('Отсутствуют права на чтение задачи'))\r\n })\r\n )\r\n }\r\n\r\n\r\n /**\r\n * Полноценный метод удаления\r\n *\r\n * @param param\r\n */\r\n del(param: iBXRestParamDelElapseditem) {\r\n return this.checkPermissionReadTask(param.TASKID).pipe(\r\n mergeMap(allowedReadTask => {\r\n if (allowedReadTask) {\r\n return this.isAllowedRemove(param.TASKID, param.ITEMID).pipe(\r\n mergeMap(allowed => {\r\n if (allowed) {\r\n return this.BXRestNavvyElapsedItem.delete(param).res()\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права на удаление записи затраченного времени'))\r\n }\r\n }))\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права на чтение задачи'))\r\n }\r\n })\r\n )\r\n }\r\n\r\n private isAllowedRemove(idTask: number, idItem: number) {\r\n return this.isActionAllowed(\r\n {\r\n TASKID: idTask,\r\n ITEMID: idItem,\r\n ACTIONID: 3\r\n })\r\n }\r\n}\r\n","import {\r\n iBXRestParamElapseditemGet,\r\n iBXRestParamAddElapseditem,\r\n iBXRestParamUpdateElapseditem,\r\n iBXRestParamDelElapseditem,\r\n iIsActionAllowedParam\r\n} from '../../typification/rest/task'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestNavvyOperationElapsedItem } from './operation/elapseditem'\r\nimport { BXRestNavvyDelegateElapsedItem } from './delegate/elapseditem'\r\nimport { $add, $delete, $elapseditem, $getlist, $isactionallowed, $task, $update } from '../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyElapsedItem {\r\n protected url = {\r\n // /**\r\n // * Возвращает список методов и их описание\r\n // */\r\n // getManifest: [$task, $elapseditem, $getmanifest],\r\n /**\r\n * Возвращает список записей о затраченном времени по задаче\r\n */\r\n getList: [$task, $elapseditem, $getlist],\r\n // /**\r\n // * Возвращает запись о затраченном времени по ее идентификатору\r\n // */\r\n // get: [$task, $elapseditem, $get],\r\n /**\r\n * Добавляет затраченное время к задаче\r\n */\r\n add: [$task, $elapseditem, $add],\r\n /**\r\n * Удаляет запись о затраченном времени\r\n */\r\n delete: [$task, $elapseditem, $delete],\r\n /**\r\n * Проверяет разрешено ли действие\r\n */\r\n isActionAllowed: [$task, $elapseditem, $isactionallowed],\r\n /**\r\n * Изменяет параметры записи о затраченном времени\r\n */\r\n update: [$task, $elapseditem, $update],\r\n }\r\n private readonly delegate = new BXRestNavvyDelegateElapsedItem()\r\n public readonly operation = new BXRestNavvyOperationElapsedItem(this)\r\n\r\n private readonly Navvy = new Navvy()\r\n\r\n getList(\r\n param: iBXRestParamElapseditemGet = {}\r\n ) {\r\n return this.delegate.getList(param)\r\n }\r\n\r\n add(param: iBXRestParamAddElapseditem) {\r\n return this.Navvy.simple<number, number, iBXRestParamAddElapseditem>(this.url.add, param)\r\n }\r\n\r\n /**\r\n * Обновление записи рабочего времени\r\n *\r\n * @param param\r\n */\r\n update(param: iBXRestParamUpdateElapseditem) {\r\n return this.Navvy.simple<null, null, iBXRestParamUpdateElapseditem>(this.url.update, param)\r\n }\r\n\r\n /**\r\n * idAction:\r\n * 1 - ACTION_ELAPSED_TIME_ADD\r\n * 2 - ACTION_ELAPSED_TIME_MODIFY\r\n * 3 - ACTION_ELAPSED_TIME_REMOVE\r\n * @param param\r\n */\r\n isActionAllowed(param: iIsActionAllowedParam) {\r\n return this.Navvy.simple<boolean, boolean, iIsActionAllowedParam>(this.url.isActionAllowed, param)\r\n }\r\n\r\n delete(param: iBXRestParamDelElapseditem) {\r\n return this.Navvy.simple<null, null, iBXRestParamDelElapseditem>(this.url.delete, param)\r\n }\r\n\r\n}\r\n","import { iBXRestTaskComment, iBXRestTaskCommentHtml } from '../../typification/rest/task/commentitem/commentitem'\r\nimport { toDate, toNum } from '../../services/base'\r\n\r\nexport class BXRestMapTaskCommentItem {\r\n\r\n static getlist(value: iBXRestTaskCommentHtml[] | undefined): iBXRestTaskComment[] | undefined {\r\n return value ? value.map(i => BXRestMapTaskCommentItem.iCommentTaskHtmlToiCommentTask(i)) : undefined\r\n }\r\n\r\n static get(value: iBXRestTaskCommentHtml | undefined): iBXRestTaskComment | undefined {\r\n return value ? BXRestMapTaskCommentItem.iCommentTaskHtmlToiCommentTask(value) : undefined\r\n }\r\n\r\n static iCommentTaskHtmlToiCommentTask(item: iBXRestTaskCommentHtml): iBXRestTaskComment {\r\n if (item.ATTACHED_OBJECTS) {\r\n return {\r\n ATTACHED_OBJECTS: Object.values(item.ATTACHED_OBJECTS).map(i => {\r\n return {\r\n ATTACHMENT_ID: toNum(i.ATTACHMENT_ID),\r\n FILE_ID: toNum(i.FILE_ID),\r\n SIZE: toNum(i.SIZE),\r\n DOWNLOAD_URL: i.DOWNLOAD_URL,\r\n NAME: i.NAME,\r\n VIEW_URL: i.VIEW_URL\r\n }\r\n }),\r\n AUTHOR_ID: toNum(item.AUTHOR_ID),\r\n ID: toNum(item.ID),\r\n POST_DATE: toDate(item.POST_DATE),\r\n AUTHOR_EMAIL: item.AUTHOR_EMAIL,\r\n AUTHOR_NAME: item.AUTHOR_NAME,\r\n POST_MESSAGE: item.POST_MESSAGE,\r\n POST_MESSAGE_HTML: item.POST_MESSAGE_HTML\r\n }\r\n } else {\r\n return {\r\n AUTHOR_ID: toNum(item.AUTHOR_ID),\r\n ID: toNum(item.ID),\r\n POST_DATE: toDate(item.POST_DATE),\r\n AUTHOR_EMAIL: item.AUTHOR_EMAIL,\r\n AUTHOR_NAME: item.AUTHOR_NAME,\r\n POST_MESSAGE: item.POST_MESSAGE,\r\n POST_MESSAGE_HTML: item.POST_MESSAGE_HTML\r\n }\r\n }\r\n }\r\n}\r\n","import { Navvy } from '../../services/navvy'\r\nimport { BXRestMapTaskCommentItem } from '../../map/task/commentitem'\r\nimport {\r\n iBXRestParamTaskCommentItemGet,\r\n iBXRestTaskCommentItemUpdate,\r\n iBXRestCommentTaskAdd,\r\n BXRestTaskCommentItemGetList,\r\n BXRestTaskCommentItemDelete,\r\n iBXRestTaskComment,\r\n iBXRestTaskCommentHtml\r\n} from '../../typification/rest/task'\nimport { mergeMap, of } from 'rxjs'\nimport {\n $add,\n $commentitem,\n $delete,\n $get,\n $getlist,\n $task,\n $update\n} from '../../consts/part-name-methods'\n\nexport class BXRestNavvyTaskCommentItem {\n protected url = {\n getList: [$task, $commentitem, $getlist],\n get: [$task, $commentitem, $get],\n add: [$task, $commentitem, $add],\n update: [$task, $commentitem, $update],\n delete: [$task, $commentitem, $delete],\n }\n\r\n private readonly Navvy = new Navvy()\r\n\r\n add(param: iBXRestCommentTaskAdd) {\r\n return this.Navvy.simple<number, number, iBXRestCommentTaskAdd>(\r\n this.url.add, param\r\n )\r\n }\r\n\r\n update(param: iBXRestTaskCommentItemUpdate) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestTaskCommentItemUpdate>(\r\n this.url.update, param\r\n )\r\n }\r\n\r\n get(param: iBXRestParamTaskCommentItemGet) {\r\n return this.Navvy.simple<iBXRestTaskCommentHtml, iBXRestTaskComment, iBXRestParamTaskCommentItemGet>(\r\n this.url.get, param,\r\n BXRestMapTaskCommentItem.get\r\n )\r\n }\r\n\r\n getlist(param: BXRestTaskCommentItemGetList = {\r\n FILTER: {},\r\n ORDER: {\r\n POST_DATE: 'asc'\r\n }\r\n }) {\r\n return this.Navvy.simple(\r\n this.url.getList, param,\r\n BXRestMapTaskCommentItem.getlist\r\n )\r\n }\r\n\r\n del(param: BXRestTaskCommentItemDelete) {\r\n if (param.ITEMID > 0) {\r\n return this.get(param).res().pipe(\r\n mergeMap(v => {\r\n if (v) {\r\n return this.Navvy.simple<boolean, boolean, BXRestTaskCommentItemDelete>(\r\n this.url.delete, param\r\n ).res()\r\n }\r\n return of(false)\r\n })\r\n )\r\n } else {\r\n return of(false)\r\n }\r\n }\r\n}\r\n","import { toNum } from '../../services/base'\r\n\r\nexport class BXRestMapTaskPlaner {\r\n\r\n static getList(v: (string | number)[] | undefined) {\r\n return (v) ? v.map(i => toNum(i)) : undefined\r\n }\r\n\r\n}\r\n","import { BXRestMapTaskPlaner } from '../../map/task/planner'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { $getlist, $planner, $task } from '../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyTaskPlanner {\r\n\r\n url = {\r\n getList: [$task, $planner, $getlist]\r\n }\r\n\r\n private readonly Navvy = new Navvy()\r\n \r\n getList() {\r\n return this.Navvy.simple<(string | number)[], (string | number)[], undefined>(\r\n this.url.getList,\r\n undefined,\r\n BXRestMapTaskPlaner.getList\r\n )\r\n }\r\n}\r\n","import {\r\n iBXRestTaskItemUserFieldGetlist, iBXRestTaskItemUserFieldGetlistHttp,\r\n} from '../../../typification/rest/task/item/userfield/getlist'\r\nimport { toNum } from '../../../services/base'\r\n\r\nexport class BXRestMapTaskUserField {\r\n\r\n static getList(value: iBXRestTaskItemUserFieldGetlistHttp[] | undefined): iBXRestTaskItemUserFieldGetlist[] | undefined{\r\n if(value && value.length){\r\n return value.map( i => { return {\r\n ID: toNum(i.ID),\r\n ENTITY_ID: 'TASKS_TASK',\r\n FIELD_NAME: i.FIELD_NAME,\r\n USER_TYPE_ID: i.USER_TYPE_ID,\r\n XML_ID: i.XML_ID,\r\n SORT: i.SORT,\r\n MULTIPLE: i.MULTIPLE === 'Y',\r\n MANDATORY: i.MULTIPLE === 'Y',\r\n SHOW_FILTER: i.SHOW_FILTER,\r\n SHOW_IN_LIST: i.MULTIPLE === 'Y',\r\n EDIT_IN_LIST: i.MULTIPLE === 'Y',\r\n IS_SEARCHABLE: i.MULTIPLE === 'Y',\r\n SETTINGS: i.SETTINGS,\r\n LIST: i.LIST,\r\n }})\r\n }\r\n return undefined\r\n }\r\n\r\n}","import { Navvy } from '../../../services/navvy'\r\nimport { BXRestMapTaskUserField } from '../../../map/task/item/userfield'\r\nimport {\r\n iBXRestParamTaskItemUserFieldGetlist, iBXRestTaskItemUserFieldGetlist, iBXRestTaskItemUserFieldGetlistHttp\r\n} from '../../../typification/rest/task'\r\nimport { $item, $task, $userfield } from '../../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyTaskItemUserField {\r\n\r\n protected url = {\r\n /**\r\n * Получение всех доступных полей свойства\r\n */\r\n getFields: [$task, $item, $userfield, 'getfields'],\r\n // /**\r\n // * Получение всех доступных типов данных\r\n // */\r\n // getTypes: [$task, $item, $userfield, 'gettypes'],\r\n // /**\r\n // * Создание нового свойства\r\n // */\r\n // add: [$task, $item, $userfield, $add],\r\n // /**\r\n // * Получение свойства по идентификатору\r\n // */\r\n // get: [$task, $item, $userfield, $get],\r\n /**\r\n * Получение списка свойств\r\n */\r\n getList: [$task, $item, $userfield, 'getlist'],\r\n // /**\r\n // * Редактирование параметров свойства\r\n // */\r\n // update: [$task, $item, $userfield, $update],\r\n // /**\r\n // * Удаление свойства\r\n // */\r\n // delete: [$task, $item, $userfield, $delete]\r\n }\r\n\r\n private readonly Navvy = new Navvy()\r\n\r\n getList(param: iBXRestParamTaskItemUserFieldGetlist = {}){\r\n return this.Navvy.pagNav<iBXRestTaskItemUserFieldGetlistHttp, iBXRestTaskItemUserFieldGetlist, iBXRestParamTaskItemUserFieldGetlist>(\r\n this.url.getList,\r\n param,\r\n BXRestMapTaskUserField.getList\r\n )\r\n }\r\n}","import { BXRestNavvyTaskItemUserField } from './item/userfield'\r\n\r\nexport class BXRestNavvyTaskItem {\r\n public readonly userField = new BXRestNavvyTaskItemUserField()\r\n}","import { BXRestNavvyElapsedItem } from './task/elapseditem'\r\nimport { BXRestNavvyTaskCommentItem } from './task/commentitem'\r\nimport { BXRestNavvyTaskPlanner } from './task/planner'\r\nimport { BXRestNavvyTaskItem } from './task/item'\r\n\r\nexport class BXRestNavvyTask {\r\n public readonly elapsedItem = new BXRestNavvyElapsedItem()\r\n public readonly commentItem = new BXRestNavvyTaskCommentItem()\r\n public readonly planner = new BXRestNavvyTaskPlanner()\r\n public readonly item = new BXRestNavvyTaskItem()\r\n}\r\n","import { iBXRestDiskFile, iBXRestDiskFileHttp } from '../../typification/rest/disk/file'\r\nimport { toDate, toNum } from '../../services/base'\r\n\r\nexport class BXRestMapDiskFile {\r\n\r\n static get(v: iBXRestDiskFileHttp | undefined): iBXRestDiskFile | undefined {\r\n return (v) ? {\r\n ...v,\r\n ...{\r\n ID: toNum(v.ID),\r\n FILE_ID: toNum(v.ID),\r\n SIZE: toNum(v.SIZE),\r\n CREATED_BY: toNum(v.CREATED_BY),\r\n CREATE_TIME: toDate(v.CREATE_TIME),\r\n DELETED_BY: toNum(v.DELETED_BY),\r\n DELETED_TYPE: toNum(v.DELETED_BY),\r\n DELETE_TIME: v.DELETE_TIME ? toDate(v.CREATE_TIME) : null,\r\n PARENT_ID: toNum(v.PARENT_ID),\r\n STORAGE_ID: toNum(v.STORAGE_ID),\r\n UPDATED_BY: toNum(v.UPDATED_BY),\r\n UPDATE_TIME: toDate(v.UPDATE_TIME)\r\n }\r\n } : undefined\r\n }\r\n}\r\n","import { Navvy } from '../../services/navvy'\r\nimport { BXRestMapDiskFile } from '../../map/disk/file'\r\nimport { iBXRestParamDiskFileGet, iBXRestParamDiskFileMarkDeleted } from '../../typification/rest/disk'\r\nimport { $disk, $file, $get, $markdeleted } from '../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyDiskFile {\r\n url = {\r\n // /**\r\n // * Возвращает описание полей файла\r\n // */\r\n // getFields: [$disk, $file, $getFields],\r\n /**\r\n * Возвращает файл по идентификатору\r\n */\r\n get: [$disk, $file, $get], //\r\n // /**\r\n // * Переименовывает файл\r\n // */\r\n // rename: [$disk, $file, $rename],\r\n // /**\r\n // * Копирует файл в указанную папку\r\n // */\r\n // copyTo: [$disk, $file, $copyto],\r\n // /**\r\n // * Перемещает файл в указанную папку\r\n // */\r\n // moveto: [$disk, $file, $moveto],\r\n // /**\r\n // * Уничтожает файл навсегда\r\n // */\r\n // delete: [$disk, $file, $delete],\r\n /**\r\n * Перемещает файл в корзину\r\n */\r\n markDeleted: [$disk, $file, $markdeleted],\r\n // /**\r\n // * Восстанавливает файл из корзины\r\n // */\r\n // restore: [$disk, $file, $restore],\r\n // /**\r\n // * Загружает новую версию файла\r\n // */\r\n // uploadVersion: [$disk, $file, 'uploadversion'],\r\n // /**\r\n // * Возвращает список версий файла\r\n // */\r\n // getVersions: [$disk, $file, 'getVersions'],\r\n // /**\r\n // * Восстанавливает файл из конкретной версии\r\n // */\r\n // restoreFromVersion: [$disk, $file, 'restoreFromVersion'],\r\n // /**\r\n // * Возвращает публичную ссылку на файл\r\n // */\r\n // getExternalLink: [$disk, $file, 'getexternallink']\r\n }\r\n\r\n private Navvy = new Navvy()\r\n\r\n get(param: iBXRestParamDiskFileGet) {\r\n return this.Navvy.simple(\r\n this.url.get,\r\n param,\r\n BXRestMapDiskFile.get\r\n )\r\n }\r\n\r\n markDeleted(param: iBXRestParamDiskFileMarkDeleted) {\r\n return this.Navvy.simple(\r\n this.url.markDeleted,\r\n param,\r\n BXRestMapDiskFile.get\r\n )\r\n }\r\n}\r\n","import { iBXRestDiskFile, iBXRestDiskFileHttp } from '../../typification/rest/disk/file'\r\nimport { iBXRestFolder, iBXRestFolderHttp } from '../../typification/rest/disk/folder'\r\nimport { iBXRestDiskFileAndFolderMap } from '../../typification/rest/disk/map'\r\nimport { toDate, toNum } from '../../services/base'\r\n\r\nexport class BXRestMapDiskBase {\r\n\r\n static separationFoldersAndFiles(arr: (iBXRestFolderHttp | iBXRestDiskFileHttp)[]) {\r\n const result: iBXRestDiskFileAndFolderMap = {file: [], folder: []}\r\n for (const i of arr) {\r\n if (BXRestMapDiskBase.instanceOfiFile(i)) {\r\n result.file.push(\r\n Object.assign(\r\n i,\r\n {\r\n CREATED_BY: toNum(i.CREATED_BY),\r\n CREATE_TIME: toDate(i.CREATE_TIME),\r\n DELETED_BY: toNum(i.DELETED_BY),\r\n DELETED_TYPE: toNum(i.DELETED_TYPE),\r\n DELETE_TIME: (i.DELETE_TIME) ? toDate(i.DELETE_TIME) : null,\r\n ID: toNum(i.ID),\r\n PARENT_ID: toNum(i.PARENT_ID),\r\n REAL_OBJECT_ID: toNum(i.REAL_OBJECT_ID),\r\n STORAGE_ID: toNum(i.STORAGE_ID),\r\n UPDATED_BY: toNum(i.UPDATED_BY),\r\n UPDATE_TIME: toDate(i.UPDATE_TIME),\r\n SIZE: toNum(i.SIZE),\r\n }\r\n )\r\n )\r\n } else if (BXRestMapDiskBase.instanceOfiFolder(i)) {\r\n result.folder.push(\r\n Object.assign(\r\n i,\r\n {\r\n CREATED_BY: toNum(i.CREATED_BY),\r\n CREATE_TIME: toDate(i.CREATE_TIME),\r\n DELETED_BY: toNum(i.DELETED_BY),\r\n DELETED_TYPE: toNum(i.DELETED_TYPE),\r\n DELETE_TIME: (i.DELETE_TIME) ? toDate(i.DELETE_TIME) : null,\r\n ID: toNum(i.ID),\r\n PARENT_ID: toNum(i.PARENT_ID),\r\n REAL_OBJECT_ID: toNum(i.REAL_OBJECT_ID),\r\n STORAGE_ID: toNum(i.STORAGE_ID),\r\n UPDATED_BY: toNum(i.UPDATED_BY),\r\n UPDATE_TIME: toDate(i.UPDATE_TIME),\r\n }\r\n )\r\n )\r\n }\r\n }\r\n return result\r\n }\r\n\r\n static instanceOfiFile(object: any): object is iBXRestDiskFile {\r\n return object && object.TYPE && object.TYPE === 'file'\r\n }\r\n\r\n static instanceOfiFolder(object: any): object is iBXRestFolder {\r\n return object && object.TYPE && object.TYPE === 'folder'\r\n }\r\n\r\n\r\n static FolderHttpToFolder(value: iBXRestFolderHttp | undefined): iBXRestFolder | undefined {\r\n return (value)\r\n ? {\r\n ...value,\r\n ...{\r\n CREATED_BY: toNum(value.CREATED_BY),\r\n CREATE_TIME: toDate(value.CREATE_TIME),\r\n DELETED_BY: toNum(value.DELETED_BY),\r\n DELETED_TYPE: toNum(value.DELETED_TYPE),\r\n DELETE_TIME: toDate(value.CREATE_TIME),\r\n ID: toNum(value.ID),\r\n PARENT_ID: toNum(value.PARENT_ID),\r\n REAL_OBJECT_ID: toNum(value.REAL_OBJECT_ID),\r\n STORAGE_ID: toNum(value.STORAGE_ID),\r\n UPDATED_BY: toNum(value.UPDATED_BY),\r\n UPDATE_TIME: toDate(value.CREATE_TIME)\r\n }\r\n }\r\n : undefined\r\n }\r\n}\r\n","import { iBXRestFolderHttp } from '../../typification/rest/disk/folder'\r\nimport { iBXRestDiskFileHttp } from '../../typification/rest/disk/file'\r\nimport { BXRestMapDiskBase } from './base'\r\n\r\nexport class BXRestMapDiskFolder extends BXRestMapDiskBase {\r\n\r\n static getChildren(arr: (iBXRestFolderHttp | iBXRestDiskFileHttp)[] | undefined){\r\n return (arr) ? BXRestMapDiskBase.separationFoldersAndFiles(arr) : {file: [], folder: []}\r\n }\r\n}\r\n","import { BXRestMapDiskFolder } from '../../map/disk/folder'\r\nimport { Navvy } from '../../services/navvy'\r\nimport {\r\n iBXRestDiskFolderAddSubFolderParam,\r\n iBXRestDiskFolderCopyToParam,\r\n iBXRestDiskFolderMoveToParam,\r\n iBXRestDiskFolderRenameParam,\r\n iBXRestDiskFolderUploadFileParam,\r\n iBXRestParamDiskFileGet,\r\n iBXRestParamDiskFileMarkDeleted,\r\n iBXRestParamFolderDeleteTree,\r\n iBXRestParamFolderGetChildren,\r\n iBXRestParamFolderGetExternalLink,\r\n iBXRestParamFolderRestore\r\n} from '../../typification/rest/disk'\r\n\r\nimport {\r\n $copyto,\r\n $disk,\r\n $folder,\r\n $get,\r\n $getchildren,\r\n $getFields, $markdeleted,\r\n $moveto,\r\n $rename, $restore, $uploadfile\r\n} from '../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyDiskFolder {\r\n protected url = {\r\n getFields: [$disk, $folder, $getFields],\r\n get: [$disk, $folder, $get],\r\n getChildren: [$disk, $folder, $getchildren],\r\n addSubFolder: [$disk, $folder, 'addsubfolder'],\r\n copyTo: [$disk, $folder, $copyto],\r\n moveTo: [$disk, $folder, $moveto],\r\n rename: [$disk, $folder, $rename],\r\n deleteTree: [$disk, $folder, 'deletetree'],\r\n markDeleted: [$disk, $folder, $markdeleted],\r\n restore: [$disk, $folder, $restore],\r\n uploadFile: [$disk, $folder, $uploadfile],\r\n getExternalLink: [$disk, $folder, 'getExternalLink']\r\n }\r\n private Navvy = new Navvy()\r\n\r\n /**\r\n * Возвращает папку по идентификатору\r\n *\r\n * @param param\r\n */\r\n get(param: iBXRestParamDiskFileGet) {\r\n return this.Navvy.simple(\r\n this.url.get,\r\n param,\r\n BXRestMapDiskFolder.FolderHttpToFolder\r\n )\r\n }\r\n\r\n /**\r\n * Создает дочернюю папку\r\n *\r\n * @param param\r\n */\r\n addSubFolder(param: iBXRestDiskFolderAddSubFolderParam) {\r\n return this.Navvy.simple(\r\n this.url.addSubFolder,\r\n param,\r\n BXRestMapDiskFolder.FolderHttpToFolder\r\n )\r\n }\r\n\r\n /**\r\n * Копирует папку в указанную папку\r\n *\r\n * @param param\r\n */\r\n copyTo(param: iBXRestDiskFolderCopyToParam) {\r\n return this.Navvy.simple(\r\n this.url.copyTo,\r\n param,\r\n BXRestMapDiskFolder.FolderHttpToFolder\r\n )\r\n }\r\n\r\n /**\r\n * Перемещает папку в указанную папку\r\n *\r\n * @param param\r\n */\r\n moveTo(param: iBXRestDiskFolderMoveToParam) {\r\n return this.Navvy.simple(\r\n this.url.moveTo,\r\n param,\r\n BXRestMapDiskFolder.FolderHttpToFolder\r\n )\r\n }\r\n\r\n /**\r\n * Переименовывает папку\r\n *\r\n * @param param\r\n */\r\n rename(param: iBXRestDiskFolderRenameParam) {\r\n return this.Navvy.simple(\r\n this.url.rename,\r\n param,\r\n BXRestMapDiskFolder.FolderHttpToFolder\r\n )\r\n }\r\n\r\n /**\r\n * Уничтожает папку и всё её дочерние элементы навсегда\r\n * В ответе 'result': true - успешное уничтожение папки\r\n *\r\n * @param param\r\n */\r\n deleteTree(param: iBXRestParamFolderDeleteTree) {\r\n return this.Navvy.simple(\r\n this.url.deleteTree,\r\n param\r\n )\r\n }\r\n\r\n /**\r\n * Перемещает папку в корзину\r\n *\r\n * @param param\r\n */\r\n markDeleted(param: iBXRestParamDiskFileMarkDeleted) {\r\n return this.Navvy.simple(\r\n this.url.markDeleted,\r\n param,\r\n BXRestMapDiskFolder.FolderHttpToFolder\r\n )\r\n }\r\n\r\n /**\r\n * Восстанавливает папку из корзины\r\n *\r\n * @param param\r\n */\r\n restore(param: iBXRestParamFolderRestore) {\r\n return this.Navvy.simple(\r\n this.url.restore,\r\n param,\r\n BXRestMapDiskFolder.FolderHttpToFolder\r\n )\r\n }\r\n\r\n /**\r\n * Метод возвращает публичную ссылку\r\n *\r\n * @param param\r\n */\r\n getExternalLink(param: iBXRestParamFolderGetExternalLink) {\r\n return this.Navvy.simple(\r\n this.url.getExternalLink,\r\n param\r\n )\r\n }\r\n\r\n /**\r\n * Возвращает описание полей папки\r\n */\r\n getFields() {\r\n return this.Navvy.simple(\r\n this.url.getFields\r\n )\r\n }\r\n\r\n /**\r\n * Загружает новый файл в указанную папку\r\n *\r\n * @param param\r\n */\r\n uploadFile(param: iBXRestDiskFolderUploadFileParam) {\r\n return this.Navvy.simple(\r\n this.url.uploadFile,\r\n param,\r\n BXRestMapDiskFolder.FolderHttpToFolder\r\n )\r\n }\r\n\r\n /**\r\n * Возвращает список файлов и папок, которые находятся непосредственно в папке\r\n *\r\n * @param param\r\n */\r\n getChildren(param: iBXRestParamFolderGetChildren) {\r\n return this.Navvy.simple(\r\n this.url.getChildren,\r\n param,\r\n BXRestMapDiskFolder.getChildren\r\n )\r\n }\r\n\r\n}\r\n","import { BXRestMapDiskBase } from './base'\r\nimport { iBXRestFolder, iBXRestFolderHttp } from '../../typification/rest/disk/folder'\r\nimport { iBXRestDiskFileHttp } from '../../typification/rest/disk/file'\r\n\r\nexport class BXRestMapDiskStorage extends BXRestMapDiskBase {\r\n\r\n static getChildren(arr: (iBXRestFolderHttp | iBXRestDiskFileHttp)[] | undefined) {\r\n return (arr) ? BXRestMapDiskBase.separationFoldersAndFiles(arr) : {file: [], folder: []}\r\n }\r\n\r\n static addFolder(value: iBXRestFolderHttp | undefined): iBXRestFolder | undefined {\r\n return (value) ? BXRestMapDiskBase.FolderHttpToFolder(value) : undefined\r\n }\r\n}\r\n","import {\r\n $disk, $get, $getchildren, $getFields, $getlist, $getTypes, $rename, $storage, $uploadfile\r\n} from '../../consts/part-name-methods'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestDiskFile, iBXRestDiskFileHttp } from '../../typification/rest/disk/file'\r\nimport { iBXRestFolderHttp, iBXRestFolderInfo } from '../../typification/rest/disk/folder'\r\nimport { iBXRestParamUploadFile } from '../../typification/rest/disk/storage/uploadfile'\r\nimport { iBXRestParamGetchildren } from '../../typification/rest/disk/storage/getchildren'\r\n\r\nexport class BXRestDiskStorage {\r\n protected url = {\r\n getFields: [$disk, $storage, $getFields], // Возвращает описание полей хранилища\r\n get: [$disk, $storage, $get], //\tВозвращает хранилище по идентификатору\r\n rename: [$disk, $storage, $rename], // Переименовывает хранилище.\r\n // Допустимо переименование только хранилища приложения (см. disk.storage.getforapp)\r\n getList: [$disk, $storage, $getlist], //\tВозвращает список доступных хранилищ\r\n getTypes: [$disk, $storage, $getTypes], // Возвращает список типов хранилищ\r\n addFolder: [$disk, $storage, 'addfolder'], // Создает папку в корне хранилища\r\n getChildren: [$disk, $storage, $getchildren], //\tВозвращает список файлов и папок,\r\n // которые находятся непосредственно в корне хранилища\r\n uploadFile: [$disk, $storage, $uploadfile], //\tЗагружает новый файл в корне хранилища\r\n getForApp: [$disk, $storage, 'getforapp'] //\tВозвращает описание хранилища,\r\n // с которым может работать приложение для хранения своих данных (файлов и папок)\r\n }\r\n\r\n private readonly http = new HttpBXServices()\r\n\r\n getForApp() {\r\n return this.http.post<iBXRestFolderInfo>(\r\n this.url.getForApp, {}\r\n )\r\n }\r\n\r\n getChildren(param: iBXRestParamGetchildren) {\r\n return this.http.post<(iBXRestFolderHttp | iBXRestDiskFileHttp)[]>(\r\n this.url.getChildren,\r\n param\r\n )\r\n }\r\n\r\n // TODO: Сделать нормальное описание параметров\r\n addFolder(param: {id: number, data: {NAME: string}}) {\r\n return this.http.post<iBXRestFolderHttp>(this.url.addFolder, param)\r\n }\r\n\r\n uploadFile(param: iBXRestParamUploadFile) {\r\n return this.http.post<iBXRestDiskFile>(this.url.uploadFile, param)\r\n }\r\n\r\n}\r\n","import { BXRestDiskStorage } from '../../../request/disk/storage'\r\nimport { iBXRestParamUploadFile, iBXRestParamGetchildren, iBXRestFolderInfo } from '../../../typification/rest/disk'\r\nimport { of, shareReplay, tap } from 'rxjs'\r\nimport { SessionStorage } from '../../../services/vanilla/sessionStorage'\r\nimport { iBXRestAnswer } from '../../../typification/rest/base'\r\n\r\n/**\r\n * В будущем будет реализовано сохранение на уровне класса navvy, пока оставим так, чтобы не дропать фичу\r\n *\r\n * @deprecated\r\n */\r\nexport class BXRestNavvyOperationDiskStorage {\r\n\r\n private readonly BXRestDiskStorage = new BXRestDiskStorage()\r\n\r\n getForApp() {\r\n let res = SessionStorage.getItem<iBXRestAnswer<iBXRestFolderInfo>>(this.constructor.name + this.getForApp.name)\r\n if (res) {\r\n return of(res)\r\n } else {\r\n return this.BXRestDiskStorage.getForApp().pipe(\r\n tap(v => {\r\n if (v) {\r\n SessionStorage.setItem(this.constructor.name + this.getForApp.name, v)\r\n }\r\n }),\r\n shareReplay(1)\r\n )\r\n }\r\n }\r\n\r\n /*\r\n private getforappEnd(){\r\n console.log('this.BXRestDiskStorage.getforapp()', this.BXRestDiskStorage.getforapp())\r\n let res = SessionStorage.getItem<iBXRestFolderInfo>(this.constructor.name + this.getforapp.name)\r\n if(res){\r\n return of({result: res})\r\n } else {\r\n console.log('this.BXRestDiskStorage.getforapp()', this.BXRestDiskStorage, this.BXRestDiskStorage.getforapp())\r\n return this.BXRestDiskStorage.getforapp().pipe(\r\n tap(v => {\r\n if(v){\r\n SessionStorage.setItem(this.constructor.name + this.getforapp.name, v)\r\n }\r\n })\r\n )\r\n }\r\n }\r\n */\r\n\r\n getChildren(param: iBXRestParamGetchildren) {\r\n return this.BXRestDiskStorage.getChildren(param)\r\n }\r\n\r\n // TODO: разобраться что возвращает и что вставлять\r\n addFolder(param: { id: number, data: { NAME: string } }) {\r\n return this.BXRestDiskStorage.addFolder(param)\r\n }\r\n\r\n uploadFile(param: iBXRestParamUploadFile) {\r\n return this.BXRestDiskStorage.uploadFile(param)\r\n }\r\n}\r\n","import { BXRestMapDiskStorage } from '../../map/disk/storage'\r\nimport {\r\n iBXRestParamUploadFile, iBXRestParamGetchildren,\r\n iBXRestFolderInfo, iBXRestFolder,\r\n iBXRestFolderHttp,\r\n iBXRestDiskFile,\r\n iBXRestDiskFileHttp,\r\n iBXRestDiskFileAndFolderMap\r\n} from '../../typification/rest/disk'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestNavvyOperationDiskStorage } from './operation/storage'\r\nimport {\r\n $disk,\r\n $get,\r\n $getchildren,\r\n $getFields,\r\n $getlist,\r\n $getTypes,\r\n $rename,\r\n $storage, $uploadfile\r\n} from '../../consts/part-name-methods'\r\nimport { BXRestMapDiskFile } from '../../map/disk/file'\r\n\r\nexport class BXRestNavvyDiskStorage {\r\n\r\n protected url = {\r\n getFields: [$disk, $storage, $getFields], // Возвращает описание полей хранилища\r\n get: [$disk, $storage, $get], //\tВозвращает хранилище по идентификатору\r\n rename: [$disk, $storage, $rename], // Переименовывает хранилище.\r\n // Допустимо переименование только хранилища приложения (см. disk.storage.getforapp)\r\n getList: [$disk, $storage, $getlist], //\tВозвращает список доступных хранилищ\r\n getTypes: [$disk, $storage, $getTypes], // Возвращает список типов хранилищ\r\n addFolder: [$disk, $storage, 'addfolder'], // Создает папку в корне хранилища\r\n getChildren: [$disk, $storage, $getchildren], //\tВозвращает список файлов и папок,\r\n // которые находятся непосредственно в корне хранилища\r\n uploadFile: [$disk, $storage, $uploadfile], //\tЗагружает новый файл в корне хранилища\r\n getForApp: [$disk, $storage, 'getforapp'] //\tВозвращает описание хранилища,\r\n // с которым может работать приложение для хранения своих данных (файлов и папок)\r\n }\r\n\r\n public operation = new BXRestNavvyOperationDiskStorage()\r\n private Navvy = new Navvy()\r\n\r\n getForApp() {\r\n return this.Navvy.simple<iBXRestFolderInfo>(this.url.getForApp)\r\n }\r\n\r\n /*\r\n private getforappEnd(){\r\n console.log('this.BXRestDiskStorage.getforapp()', this.BXRestDiskStorage.getforapp())\r\n let res = SessionStorage.getItem<iBXRestFolderInfo>(this.constructor.name + this.getforapp.name)\r\n if(res){\r\n return of({result: res})\r\n } else {\r\n console.log('this.BXRestDiskStorage.getforapp()', this.BXRestDiskStorage, this.BXRestDiskStorage.getforapp())\r\n return this.BXRestDiskStorage.getforapp().pipe(\r\n tap(v => {\r\n if(v){\r\n SessionStorage.setItem(this.constructor.name + this.getforapp.name, v)\r\n }\r\n })\r\n )\r\n }\r\n }\r\n */\r\n\r\n getChildren(param: iBXRestParamGetchildren) {\r\n return this.Navvy.simple<(iBXRestFolderHttp | iBXRestDiskFileHttp)[], iBXRestDiskFileAndFolderMap, iBXRestParamGetchildren>(\r\n this.url.getChildren,\r\n param,\r\n BXRestMapDiskStorage.getChildren\r\n )\r\n }\r\n\r\n addFolder(param: { id: number, data: { NAME: string } }) {\r\n return this.Navvy.simple<iBXRestFolderHttp, iBXRestFolder, { id: number, data: { NAME: string } }>(\r\n this.url.addFolder,\r\n param,\r\n BXRestMapDiskStorage.addFolder\r\n )\r\n }\r\n\r\n uploadFile(param: iBXRestParamUploadFile) {\r\n return this.Navvy.simple<iBXRestDiskFileHttp, iBXRestDiskFile, iBXRestParamUploadFile>(\r\n this.url.uploadFile,\r\n param,\r\n BXRestMapDiskFile.get\r\n )\r\n }\r\n}\r\n","import { BXRestNavvyDiskFolder } from './folder'\r\nimport { mergeMap } from 'rxjs/operators'\r\nimport { BXRestNavvyDiskFile } from './file'\r\nimport { BXRestNavvyDiskStorage } from './storage'\r\nimport { of, throwError } from 'rxjs'\r\n\r\nexport class BXRestNavvyDiskOperation {\r\n\r\n public readonly folder = new BXRestNavvyDiskFolder()\r\n public readonly disk = new BXRestNavvyDiskFile()\r\n private readonly storage = new BXRestNavvyDiskStorage()\r\n\r\n // данные файла в base64\r\n loadFileInAppFolder(file: {\r\n name: string,\r\n val: string\r\n }) {\r\n return this.storage.getForApp().res().pipe(\r\n mergeMap(infoFolder => {\r\n if (infoFolder) {\r\n return this.storage.uploadFile(\r\n {\r\n id: infoFolder.ID,\r\n fileContent: [file.name, file.val],\r\n data: {\r\n NAME: file.name\r\n },\r\n generateUniqueName: true\r\n }).res()\r\n }\r\n return throwError(() => new Error('Отсутствует общее хранилище для приложения'))\r\n })\r\n )\r\n }\r\n\r\n getOfCreateRootContentFolderApp(folderName: string) {\r\n return this.getOfCreateRootFolderApp(folderName).pipe(\r\n mergeMap(v => {\r\n if (v) {\r\n return this.folder.getChildren({id: v.ID}).res()\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n\r\n }\r\n\r\n getRootFoldersApp() {\r\n // return this.BXDiskFolder$.pipe(\r\n // take(1),\r\n // mergeMap(\r\n // saveData => {\r\n // if (saveData.content.root.app) {\r\n // return of(saveData.content.root.app)\r\n // }\r\n\r\n\r\n return this.storage.getForApp().res().pipe(\r\n mergeMap(v => {\r\n if (v && v.ID) {\r\n return this.storage.getChildren({id: v.ID}).res()\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n }\r\n\r\n /**\r\n * Получать или создать папку, если её нет, с определенным именем для приложения\r\n * @param folderName\r\n */\r\n getOfCreateRootFolderApp(folderName: string) {\r\n return this.getRootFoldersApp().pipe(\r\n mergeMap(v => {\r\n if (v) {\r\n if (v.folder.length) {\r\n let find = v.folder.find(i => i.NAME === folderName)\r\n if (find) {\r\n return of(find)\r\n }\r\n }\r\n }\r\n return this.storage.getForApp().res().pipe(\r\n mergeMap(v => {\r\n if (v && v.ID) {\r\n return this.storage.addFolder({id: v.ID, data: {NAME: folderName}}).res()\r\n }\r\n return throwError(() => new Error('Отсутствуют права добавление записи затраченного времени'))\r\n })\r\n )\r\n }\r\n ))\r\n }\r\n\r\n}\r\n","import { BXRestMapDiskBase } from './base'\r\nimport {iBXRestDiskAttachedObject, iBXRestDiskAttachedObjectHttp} from '../../typification/rest/disk/AttachedObject'\r\nimport { toDate, toNum } from '../../services/base'\r\n\r\nexport class BXRestMapDiskAttachedObject extends BXRestMapDiskBase {\r\n\r\n static get(v: iBXRestDiskAttachedObjectHttp | undefined): iBXRestDiskAttachedObject | undefined {\r\n return (v) ? BXRestMapDiskAttachedObject.iBXRestDiskAttachedObjectHttpToiBXRestDiskAttachedObject(v) : undefined\r\n }\r\n\r\n static iBXRestDiskAttachedObjectHttpToiBXRestDiskAttachedObject(v: iBXRestDiskAttachedObjectHttp): iBXRestDiskAttachedObject {\r\n return Object.assign(v, {\r\n ID: toNum(v.ID),\r\n OBJECT_ID: toNum(v.OBJECT_ID),\r\n ENTITY_ID: toNum(v.ENTITY_ID),\r\n CREATE_TIME: toDate(v.CREATE_TIME),\r\n CREATED_BY: toNum(v.CREATED_BY),\r\n SIZE: toNum(v.SIZE)\r\n })\r\n }\r\n}\r\n","import { BXRestMapDiskAttachedObject } from '../../map/disk/attachedObject'\nimport { Navvy } from '../../services/navvy'\nimport { iBXRestParamRestDiskAttachedObject } from '../../typification/rest/disk'\nimport { $disk, $get } from '../../consts/part-name-methods'\n\r\nexport class BXRestNavvyDiskAttachedObject {\r\n\r\n private Navvy = new Navvy()\n\n get(param: iBXRestParamRestDiskAttachedObject) {\n return this.Navvy.simple(\n [$disk, 'attachedObject', $get],\n param,\n BXRestMapDiskAttachedObject.get)\n }\n}\n","import { BXRestNavvyDiskFile } from './disk/file'\r\nimport { BXRestNavvyDiskFolder } from './disk/folder'\r\nimport { BXRestNavvyDiskOperation } from './disk/operation'\r\nimport { BXRestNavvyDiskAttachedObject } from './disk/attachedObject'\r\n\r\nexport class BXRestNavvyDisk {\r\n public readonly operation = new BXRestNavvyDiskOperation()\r\n public readonly file = new BXRestNavvyDiskFile()\r\n public readonly folder = new BXRestNavvyDiskFolder()\r\n public readonly attachedObject = new BXRestNavvyDiskAttachedObject()\r\n}\r\n","import {\n iBXRestBizprocTask,\n iBXRestParamBizprocTaskComplete,\n iBXRestParamBizprocTaskDelegate,\n iBXRestParamBizprocTaskList\n} from '../../typification/rest/bizproc'\nimport { Navvy } from '../../services/navvy'\nimport {\n $bizproc,\n $complete,\n $delegate,\n $list,\n $task\n} from '../../consts/part-name-methods'\n\nexport class BXRestNavvyBizProcTask {\n private readonly Navvy = new Navvy()\n\n /**\n * Возвращает список заданий бизнес-процессов\n */\n list(param: iBXRestParamBizprocTaskList = {}) {\n return this.Navvy.pagNav<\n iBXRestBizprocTask,\n iBXRestBizprocTask,\n iBXRestParamBizprocTaskList\n >([$bizproc, $task, $list], param)\n }\n\n /**\n * Выполняет задание бизнес-процесса\n */\n complete(param: iBXRestParamBizprocTaskComplete) {\n return this.Navvy.simple<boolean, boolean, iBXRestParamBizprocTaskComplete>(\n [$bizproc, $task, $complete],\n param\n )\n }\n\n /**\n * Делегирует задания бизнес-процесса другому пользователю\n */\n delegate(param: iBXRestParamBizprocTaskDelegate) {\n return this.Navvy.simple<boolean, boolean, iBXRestParamBizprocTaskDelegate>(\n [$bizproc, $task, $delegate],\n param\n )\n }\n}\n","import {\n iBXRestBizprocWorkflowInstance,\n iBXRestParamBizprocWorkflowInstances,\n iBXRestParamBizprocWorkflowKill,\n iBXRestParamBizprocWorkflowStart,\n iBXRestParamBizprocWorkflowTerminate\n} from '../../typification/rest/bizproc'\nimport { Navvy } from '../../services/navvy'\nimport {\n $bizproc,\n $instances,\n $kill,\n $start,\n $terminate,\n $workflow\n} from '../../consts/part-name-methods'\n\r\nexport class BXRestNavvyBXRestBizProcWorkflow {\r\n private readonly Navvy = new Navvy()\r\n\r\n /**\r\n * Запускает Бизнес-процесс\r\n */\r\n start(param: iBXRestParamBizprocWorkflowStart) {\n return this.Navvy.simple([$bizproc, $workflow, $start], param)\n }\n\n /**\n * Возвращает список запущенных бизнес-процессов\n */\n instances(param: iBXRestParamBizprocWorkflowInstances = {}) {\n return this.Navvy.pagNav<\n iBXRestBizprocWorkflowInstance,\n iBXRestBizprocWorkflowInstance,\n iBXRestParamBizprocWorkflowInstances\n >([$bizproc, $workflow, $instances], param)\n }\n\n /**\n * Останавливает активный бизнес-процесс с сохранением его данных\n */\n terminate(param: iBXRestParamBizprocWorkflowTerminate) {\n return this.Navvy.simple<boolean, boolean, iBXRestParamBizprocWorkflowTerminate>(\n [$bizproc, $workflow, $terminate],\n param\n )\n }\n\n /**\n * Удаляет запущенный бизнес-процесс вместе со всеми его данными\n */\n kill(param: iBXRestParamBizprocWorkflowKill) {\n return this.Navvy.simple<boolean, boolean, iBXRestParamBizprocWorkflowKill>(\n [$bizproc, $workflow, $kill],\n param\n )\n }\n}\n","import { BXRestNavvyLists } from './lists'\r\nimport { forkJoin, mergeMap, Observable, of, throwError } from 'rxjs'\r\nimport { BXRestNavvyBizProcTask } from './bizproc/task'\r\nimport { BXRestNavvyBXRestBizProcWorkflow } from './bizproc/workflow'\r\n\r\nexport class BXRestNavvyBizProc {\r\n\r\n public readonly task = new BXRestNavvyBizProcTask()\r\n public readonly workflow = new BXRestNavvyBXRestBizProcWorkflow()\r\n private readonly BXRestNavvyLists = new BXRestNavvyLists()\r\n\r\n /**\r\n * Метод по запуску бизнес процессов из ленты\r\n * TODO: продумать работу с такими методами-исключениями\r\n *\r\n * templateIDs - id бизнес процессов которые хотим принудительно запустить\r\n * @param id\r\n * @param parametersElement\r\n * @param parametersBizProc\r\n * @param templateIDs\r\n */\r\n startProcFormNewsFeed(\r\n id: number,\r\n parametersElement: Record<string, string | Date>,\r\n parametersBizProc: Record<string, string>,\r\n templateIDs: number[] = []\r\n ) {\r\n // Не понимаю почему DATE_CREATE указывается не на сервере\r\n // но если пользователь не указал, надо указать\r\n const value: any = parametersElement['DATE_CREATE']\r\n if (value === null || value === undefined || (typeof value === 'string' || value.trim() === '')) {\r\n parametersElement['DATE_CREATE'] = new Date()\r\n }\r\n\r\n return this.BXRestNavvyLists.element.add(\r\n {\r\n IBLOCK_TYPE_ID: 'bitrix_processes',\r\n IBLOCK_ID: id,\r\n ELEMENT_CODE: 'trace_studio_' + Date.now() + '_' + Math.random(),\r\n // тут должно быть уникально значение (генерация уникальных значений на фронте лол),\r\n // как ещё уникальнее сделать я просто не знаю\r\n // это поле обязательно без него не работает\r\n FIELDS: {\r\n NAME: String(parametersElement['NAME']),\r\n ...parametersElement\r\n }\r\n }\r\n ).res().pipe(\r\n mergeMap(v => {\r\n if (v) {\r\n if (Object.keys(parametersBizProc).length && templateIDs.length) {\r\n let request: Observable<any | undefined>[] = []\r\n for (let templateID of templateIDs) {\r\n request.push(this.workflow.start(\r\n {\r\n TEMPLATE_ID: templateID,\r\n DOCUMENT_ID: ['lists', 'BizprocDocument', String(v)],\r\n PARAMETERS: parametersBizProc\r\n }).res())\r\n }\r\n return forkJoin(request)\r\n } else {\r\n return of(true)\r\n }\r\n }\r\n return throwError(() => new Error('Не удалось запустить бизнес процесс'))\r\n })\r\n )\r\n }\r\n}\r\n","import { iBXRestBlogPost, iBXRestBlogPostHttp } from '../../typification/rest/log/blogpost/get'\r\nimport { iBXRestBlogPostEssence, iBXRestBlogPostEssenceHttp } from '../../typification/rest/log/blogpost/essence'\r\nimport { toDate, toNum } from '../../services/base'\r\n\r\nexport class BXRestMapLogBlogPost {\r\n\r\n static get(item: iBXRestBlogPostHttp[] | undefined): iBXRestBlogPost[] | undefined {\r\n return (item) ? item.map(i => BXRestMapLogBlogPost.iBlogPostBXHttpToiBlogPostBX(i)) : undefined\r\n }\r\n\r\n static iBlogPostBXHttpToiBlogPostBX(item: iBXRestBlogPostHttp): iBXRestBlogPost {\r\n return {\r\n AUTHOR_ID: toNum(item.AUTHOR_ID),\r\n BLOG_ID: toNum(item.BLOG_ID),\r\n CATEGORY_ID: toNum(item.CATEGORY_ID),\r\n DATE_PUBLISH: toDate(item.DATE_PUBLISH),\r\n ENABLE_COMMENTS: item.ENABLE_COMMENTS === 'Y',\r\n HAS_COMMENT_IMAGES: item.HAS_COMMENT_IMAGES === 'Y',\r\n HAS_SOCNET_ALL: item.HAS_SOCNET_ALL === 'Y',\r\n HAS_IMAGES: item.HAS_IMAGES === 'Y',\r\n HAS_PROPS: item.HAS_PROPS === 'Y',\r\n HAS_TAGS: item.HAS_TAGS === 'Y',\r\n TITLE: item.TITLE,\r\n ID: toNum(item.ID),\r\n MICRO: item.MICRO === 'Y',\r\n PUBLISH_STATUS: item.PUBLISH_STATUS,\r\n NUM_COMMENTS: toNum(item.NUM_COMMENTS),\r\n UF_ANSWER_ID: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_ANSWER_ID),\r\n UF_BLOG_POST_DOC: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_DOC),\r\n UF_BLOG_POST_FILE: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_FILE),\r\n UF_BLOG_POST_F_EDIT: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_F_EDIT),\r\n UF_BLOG_POST_IMPRTNT: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_IMPRTNT),\r\n UF_BLOG_POST_URL_PRV: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_URL_PRV),\r\n UF_BLOG_POST_VOTE: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_VOTE),\r\n UF_CATEGORY_CODE: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_CATEGORY_CODE),\r\n UF_GRATITUDE: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_GRATITUDE),\r\n UF_IMPRTANT_DATE_END: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_IMPRTANT_DATE_END),\r\n UF_MAIL_MESSAGE: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_MAIL_MESSAGE),\r\n UF_ORIGINAL_ID: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_ORIGINAL_ID),\r\n UF_STATUS: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_STATUS),\r\n CODE: item.CODE,\r\n DETAIL_TEXT: item.DETAIL_TEXT,\r\n FILES: (item.FILES) ? item.FILES.map(i => toNum(i)) : []\r\n }\r\n }\r\n\r\n static iBlogPostEssenceHttpToiBlogPostEssence(item: iBXRestBlogPostEssenceHttp | undefined): iBXRestBlogPostEssence | undefined {\r\n if(item) {\r\n return {\r\n EDIT_IN_LIST: item.EDIT_IN_LIST === 'Y',\r\n ID: toNum(item.ID),\r\n IS_SEARCHABLE: item.IS_SEARCHABLE === 'Y',\r\n MANDATORY: item.MANDATORY === 'Y',\r\n MULTIPLE: item.MULTIPLE === 'Y',\r\n SHOW_FILTER: item.SHOW_FILTER === 'Y',\r\n SHOW_IN_LIST: item.SHOW_IN_LIST === 'Y',\r\n SORT: toNum(item.SORT),\r\n EDIT_FORM_LABEL: item.EDIT_FORM_LABEL,\r\n ENTITY_ID: item.EDIT_FORM_LABEL,\r\n ENTITY_VALUE_ID: toNum(item.ENTITY_VALUE_ID),\r\n ERROR_MESSAGE: item.ERROR_MESSAGE,\r\n FIELD_NAME: item.FIELD_NAME,\r\n HELP_MESSAGE: item.HELP_MESSAGE,\r\n LIST_COLUMN_LABEL: item.HELP_MESSAGE,\r\n LIST_FILTER_LABEL: item.LIST_FILTER_LABEL,\r\n SETTINGS: item.SETTINGS,\r\n USER_TYPE: item.USER_TYPE,\r\n USER_TYPE_ID: item.USER_TYPE_ID,\r\n VALUE: item.SHOW_IN_LIST === 'Y',\r\n XML_ID: item.XML_ID // ??\r\n }\r\n } else {\r\n return undefined\r\n }\r\n }\r\n}\r\n","import { iBXRestParamLogBlogPostAdd, iBXRestParamBlogPostGet } from '../../typification/rest/log'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestMapLogBlogPost } from '../../map/log/blogpost'\r\nimport { $add, $blogpost, $get, $log } from '../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyLogBlogPost {\r\n url = {\r\n /**\r\n * Добавляет в Живую Ленту сообщение от имени текущего пользователя\r\n */\r\n add: [$log, $blogpost, $add], //\r\n // getusers: {\r\n // important: 'log.blogpost.getusers.important' // Отдает массив ID пользователей, прочитавших Важное сообщение\r\n // },\r\n /**\r\n * Возвращает массив с доступными текущему пользователю сообщениями Живой ленты. Каждое из сообщений представляет собой массив значений полей (включая пользовательские поля)\r\n */\r\n get: [$log, $blogpost, $get],\r\n // /**\r\n // * Удаляет сообщение Живой Ленты\r\n // */\r\n // delete: [$log, $blogpost, $delete],\r\n // /**\r\n // * Добавляет получателей в сообщение Живой Ленты\r\n // */\r\n // share: [$log, $blogpost, $share],\r\n // /**\r\n // * Изменяет сообщение Живой Ленты\r\n // */\r\n // update: [$log, $blogpost, $update],\r\n }\r\n\r\n private Navvy = new Navvy()\r\n\r\n add(param: iBXRestParamLogBlogPostAdd) {\r\n return this.Navvy.simple(this.url.add, param)\r\n }\r\n\r\n get(param: iBXRestParamBlogPostGet = {}) {\r\n return this.Navvy.pagNav(this.url.get, param, BXRestMapLogBlogPost.get)\r\n }\r\n\r\n}\r\n","import { $add, $blogcomment, $log } from '../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyLogBlogComment {\r\n url = {\r\n add: [$log, $blogcomment, $add], //\tДобавляет комментарий к сообщению Живой ленты\r\n }\r\n}\r\n","import { BXRestNavvyLogBlogPost } from './log/blogpost'\r\nimport { BXRestNavvyLogBlogComment } from './log/blogcomment'\r\n\r\nexport class BXRestNavvyLog {\r\n public readonly blogPost = new BXRestNavvyLogBlogPost()\r\n public readonly blogComment = new BXRestNavvyLogBlogComment()\r\n}\r\n","import { toDate, toNum } from '../../services/base'\r\nimport {\r\n iBXRestCalendarEventGetAnswer,\r\n iBXRestCalendarEventGetAnswerHttp\r\n} from '../../typification/rest/calendar/event/get'\r\n\r\nexport class BXRestMapCalendarEvent {\r\n\r\n static getById(item: iBXRestCalendarEventGetAnswerHttp | undefined | null): iBXRestCalendarEventGetAnswer | undefined {\r\n return (item) ? BXRestMapCalendarEvent.CalendarEventGetAnswerHttpToCalendarEventGetAnswer(item) : undefined\r\n }\r\n\r\n static get(item: iBXRestCalendarEventGetAnswerHttp[] | undefined): iBXRestCalendarEventGetAnswer[] | undefined {\r\n return (item) ? item.map(i => BXRestMapCalendarEvent.CalendarEventGetAnswerHttpToCalendarEventGetAnswer(i)) : undefined\r\n }\r\n\r\n static CalendarEventGetAnswerHttpToCalendarEventGetAnswer(item: iBXRestCalendarEventGetAnswerHttp): iBXRestCalendarEventGetAnswer {\r\n return {\r\n ...item,\r\n ID: toNum(item.ID),\r\n MEETING_HOST: toNum(item.MEETING_HOST),\r\n OWNER_ID: toNum(item.OWNER_ID),\r\n PARENT_ID: toNum(item.PARENT_ID),\r\n RECURRENCE_ID: toNum(item.RECURRENCE_ID),\r\n SECT_ID: toNum(item.SECT_ID),\r\n SECTION_ID: toNum(item.SECTION_ID),\r\n TZ_OFFSET_FROM: toNum(item.TZ_OFFSET_FROM),\r\n TZ_OFFSET_TO: toNum(item.TZ_OFFSET_TO),\r\n VERSION: toNum(item.VERSION),\r\n DATE_CREATE: toDate(item.DATE_CREATE, 'dd.MM.yyyy HH:mm:ss'),\r\n DATE_FROM: toDate(item.DATE_FROM, 'dd.MM.yyyy HH:mm:ss'),\r\n ORIGINAL_DATE_FROM: (item.ORIGINAL_DATE_FROM)\r\n ? toDate(item.ORIGINAL_DATE_FROM, 'dd.MM.yyyy HH:mm:ss')\r\n : null,\r\n DATE_TO: toDate(item.DATE_TO, 'dd.MM.yyyy HH:mm:ss'),\r\n TIMESTAMP_X: toDate(item.TIMESTAMP_X, 'dd.MM.yyyy HH:mm:ss'),\r\n DATE_FROM_TS_UTC: toNum(item.DATE_FROM_TS_UTC),\r\n DATE_TO_TS_UTC: toNum(item.DATE_TO_TS_UTC),\r\n DELETED: item.DELETED === 'Y',\r\n DT_LENGTH: toNum(item.DT_LENGTH),\r\n DT_SKIP_TIME: item.DT_SKIP_TIME === 'Y',\r\n MEETING_STATUS: item.MEETING_STATUS === 'Y',\r\n EXDATE: item.EXDATE.split(';').map(dateStr => toDate(dateStr, 'dd.MM.yyyy')),\r\n RRULE: (item.RRULE && typeof item.RRULE !== 'string') ? {\r\n ...item.RRULE,\r\n UNTIL: toDate(item.RRULE.UNTIL, 'dd.MM.yyyy'),\r\n '~UNTIL': toDate(item.RRULE['~UNTIL'], 'dd.MM.yyyy')\r\n } : null,\r\n ATTENDEE_LIST: (item.ATTENDEE_LIST) ? item.ATTENDEE_LIST.map(i => {\r\n return {id: i.id, entryId: toNum(i.entryId), status: i.status}\r\n }) : []\r\n }\r\n }\r\n}\r\n","\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestMapCalendarEvent } from '../../map/calendar/event'\r\nimport { $add, $calendar, $delete, $event, $get, $nearest, $update } from '../../consts/part-name-methods'\r\nimport {\r\n iBXRestCalendarEventGetByIdParam,\r\n iBXRestCalendarEventGetParam,\r\n iBXRestCalendarEventAddParam,\r\n iBXRestCalendarEventUpdateParam,\r\n iBXRestCalendarEventDeleteParam,\r\n iBXRestCalendarEventGetNearestParam\r\n} from '../../typification/rest/calendar'\r\n\r\nexport class BXRestNavvyRestCalendarEvent {\r\n\r\n private url = {\r\n\r\n /** Добавляет новое событие */\r\n add: [$calendar, $event, $add],\r\n\r\n /** Удаляет событие */\r\n delete: [$calendar, $event, $delete],\r\n\r\n /** Возвращает список событий календаря */\r\n get: Object.assign([$calendar, $event, $get], {\r\n\r\n /** Возвращает список будущих событий для текущего пользователя */\r\n nearest: [$calendar, $event, $get, $nearest],\r\n }),\r\n\r\n /** Метод получает информацию о событии календаря по идентификатору */\r\n getById: [$calendar, $event, 'getById'],\r\n\r\n /** Редактирует существующее событие */\r\n update: [$calendar, $event, $update],\r\n }\r\n\r\n private readonly Navvy = new Navvy()\r\n\r\n /** Добавляет событие в календарь */\r\n add(param: iBXRestCalendarEventAddParam) {\r\n return this.Navvy.simple<number, number, iBXRestCalendarEventAddParam>(\r\n this.url.add,\r\n param\r\n )\r\n }\r\n\r\n /** Добавляет событие в календарь */\r\n delete(param: iBXRestCalendarEventDeleteParam) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestCalendarEventDeleteParam>(\r\n this.url.delete,\r\n param\r\n )\r\n }\r\n\r\n // /** Возвращает список событий календаря, всегда весь список, паганации в методе нет да и не нужна */\r\n // get(param: iBXRestCalendarEventGetParam) {\r\n // return this.Navvy.simple(\r\n // this.url.get,\r\n // param,\r\n // BXRestMapCalendarEvent.get\r\n // )\r\n // }\r\n\r\n get = Object.assign(\r\n /** Возвращает список событий календаря, всегда весь список, паганации в методе нет да и не нужна */\r\n (param: iBXRestCalendarEventGetParam) => this.Navvy.simple(\r\n this.url.get,\r\n param,\r\n BXRestMapCalendarEvent.get\r\n ),\r\n {\r\n /** Метод получает список будущих событий */\r\n nearest: (param: iBXRestCalendarEventGetNearestParam) => this.Navvy.simple(\r\n this.url.get.nearest,\r\n param,\r\n BXRestMapCalendarEvent.get\r\n ),\r\n }\r\n );\r\n\r\n /** Обновление событие в календарь */\r\n update(param: iBXRestCalendarEventUpdateParam) {\r\n return this.Navvy.simple<number, number, iBXRestCalendarEventUpdateParam>(\r\n this.url.update,\r\n param\r\n )\r\n }\r\n\r\n /** Метод получает информацию о событии календаря по идентификатору */\r\n getById(param: iBXRestCalendarEventGetByIdParam) {\r\n return this.Navvy.simple(\r\n this.url.getById,\r\n param,\r\n BXRestMapCalendarEvent.getById\r\n )\r\n }\r\n}\r\n","import { iBXRestCalendarSectionGet, iBXRestCalendarSectionGetHttp } from '../../typification/rest/calendar/section/get'\r\nimport { toDate, toNum } from '../../services/base'\r\n\r\nexport class BXRestMapCalendarSection {\r\n\r\n static get(item: iBXRestCalendarSectionGetHttp[] | undefined): iBXRestCalendarSectionGet[] | undefined{\r\n return (item) ? item.map(i => BXRestMapCalendarSection.CalendarSectionGetHttpToCalendarSectionGetHttp(i)) : undefined\r\n }\r\n\r\n static CalendarSectionGetHttpToCalendarSectionGetHttp(item: iBXRestCalendarSectionGetHttp): iBXRestCalendarSectionGet {\r\n return {\r\n ...item,\r\n ID: toNum(item.ID),\r\n OWNER_ID: toNum(item.OWNER_ID),\r\n CREATED_BY: toNum(item.CREATED_BY),\r\n DATE_CREATE: toDate(item.DATE_CREATE, 'dd.MM.yyyy HH:mm:ss'),\r\n TIMESTAMP_X: toDate(item.TIMESTAMP_X, 'dd.MM.yyyy HH:mm:ss')\r\n }\r\n }\r\n}\r\n","import { Navvy } from '../../services/navvy'\r\nimport { $add, $calendar, $delete, $get, $section, $update } from '../../consts/part-name-methods'\r\nimport {\r\n iBXRestCalendarSectionGetParam,\r\n iBXRestCalendarSectionAddParam,\r\n iBXRestCalendarSectionDeleteParam,\r\n iBXRestCalendarSectionUpdateParam\r\n} from '../../typification/rest/calendar'\r\nimport { BXRestMapCalendarSection } from '../../map/calendar/section'\r\n\r\nexport class BXRestNavvyRestCalendarSection {\r\n\r\n private url = {\r\n\r\n /** Добавляет новый раздел */\r\n add: [$calendar, $section, $add],\r\n /** Удаляет раздел */\r\n delete: [$calendar, $section, $delete],\r\n\r\n /** Возвращает описание разделов */\r\n get: [$calendar, $section, $get],\r\n\r\n /** Редактирует существующее разделы */\r\n update: [$calendar, $section, $update],\r\n }\r\n\r\n private readonly Navvy = new Navvy()\r\n\r\n /** Возвращает описание разделов, всегда весь список, паганации в методе нет да и не нужна */\r\n get(param: iBXRestCalendarSectionGetParam) {\r\n return this.Navvy.simple(\r\n this.url.get,\r\n param,\r\n BXRestMapCalendarSection.get\r\n )\r\n }\r\n\r\n /** Добавляет новый раздел */\r\n add(param: iBXRestCalendarSectionAddParam) {\r\n return this.Navvy.simple<number, number, iBXRestCalendarSectionAddParam>(\r\n this.url.add,\r\n param\r\n )\r\n }\r\n\r\n /** Удаляет раздел */\r\n delete(param: iBXRestCalendarSectionDeleteParam) {\r\n return this.Navvy.simple<boolean|string, boolean|string, iBXRestCalendarSectionDeleteParam>(\r\n this.url.delete,\r\n param\r\n )\r\n }\r\n\r\n /** Редактирует существующее разделы */\r\n update(param: iBXRestCalendarSectionUpdateParam) {\r\n return this.Navvy.simple<number, number, iBXRestCalendarSectionUpdateParam>(\r\n this.url.update,\r\n param\r\n )\r\n }\r\n}\r\n","import {\r\n iBXRestCalendarUserSettingsGet,\r\n iBXRestCalendarUserSettingsGetHttp\r\n} from '../../../typification/rest/calendar/user/settings/get'\r\nimport { toNum } from '../../../services/base'\r\n\r\nexport class BXRestMapCalendarUserSettings {\r\n\r\n static get(item: iBXRestCalendarUserSettingsGetHttp | undefined): iBXRestCalendarUserSettingsGet | undefined {\r\n return (item) ?\r\n {\r\n ...item,\r\n meetSection: toNum(item.meetSection),\r\n crmSection: toNum(item.crmSection),\r\n collapseOffHours: item.collapseOffHours === 'Y',\r\n showWeekNumbers: item.showWeekNumbers === 'Y',\r\n showTasks: item.showTasks === 'Y',\r\n syncTasks: item.syncTasks === 'Y',\r\n showCompletedTasks: item.showCompletedTasks === 'Y',\r\n lastUsedSection: (item.lastUsedSection !== 'false') ? toNum(item.lastUsedSection) : false,\r\n defaultSections: item.defaultSections.map(obj =>\r\n Object.fromEntries(\r\n Object.entries(obj).map(([key, value]) => [key, Number(value)])\r\n )\r\n ),\r\n syncPeriodPast: toNum(item.syncPeriodPast),\r\n syncPeriodFuture: toNum(item.syncPeriodPast),\r\n }\r\n : undefined\r\n }\r\n\r\n}","import { Navvy } from '../../../services/navvy'\r\nimport { $calendar, $get, $set, $settings, $user } from '../../../consts/part-name-methods'\r\nimport { BXRestMapCalendarUserSettings } from '../../../map/calendar/user/settings'\r\nimport { iBXRestCalendarUserSettingsSetParam } from '../../../typification/rest/calendar'\r\n\r\nexport class BXRestNavvyRestCalendarUserSettings {\r\n\r\n private readonly Navvy = new Navvy()\r\n\r\n private url = {\r\n /** получает пользовательские настройки календаря */\r\n get: [$calendar, $user, $settings, $get],\r\n /** устанавливает пользовательские настройки календаря для текущего пользователя */\r\n set: [$calendar, $user, $settings, $set],\r\n }\r\n\r\n /** Получает пользовательские настройки календаря */\r\n get(){\r\n return this.Navvy.simple(\r\n this.url.get,\r\n undefined,\r\n BXRestMapCalendarUserSettings.get\r\n )\r\n }\r\n\r\n /**\r\n * Устанавливает пользовательские настройки календаря для текущего пользователя\r\n *\r\n * @deprecated Не протестирован\r\n */\r\n set(param: iBXRestCalendarUserSettingsSetParam) {\r\n return this.Navvy.simple(this.url.set, param)\r\n }\r\n}","import { BXRestNavvyRestCalendarUserSettings } from './user/settings'\r\n\r\nexport class BXRestNavvyRestCalendarUser {\r\n public readonly settings = new BXRestNavvyRestCalendarUserSettings()\r\n}","import { BXRestNavvyRestCalendarEvent } from './calendar/event'\r\nimport { BXRestNavvyRestCalendarSection } from './calendar/section'\r\nimport { BXRestNavvyRestCalendarUser } from './calendar/user'\r\n\r\nexport class BXRestNavvyCalendar {\r\n\r\n // TODO: эту дичь расформировать потом по классам\r\n /*\r\n url = {\r\n accessibility: {get: getNameMethod([$calendar, $accessibility, $get])}, // Возвращает занятость пользователей из списка.\r\n meeting: {\r\n params: {\r\n set: getNameMethod([$calendar, $meeting, $params, $set]), // Устанавливает параметры события для текущего пользователя\r\n },\r\n status: {\r\n get: getNameMethod([$calendar, $meeting, $status, $get]), // Возвращает статус участия текущего пользователя в событии\r\n set: getNameMethod([$calendar, $meeting, $status, $set]), // Устанавливает статус участия в событии для текущего пользователя\r\n },\r\n },\r\n resource: {\r\n list: getNameMethod([$calendar, $resource, $list]), // Возвращает список (массив) всех ресурсов\r\n add: getNameMethod([$calendar, $resource, $add]), // Добавляет новый ресурс\r\n update: getNameMethod([$calendar, $resource, $update]), // Изменяет ресурс\r\n delete: getNameMethod([$calendar, $resource, $delete]), // Удаляет ресурс\r\n booking: {\r\n list: getNameMethod([$calendar, $resource, $booking, $list]), // Предоставляет возможность выбрать бронирования ресурсов\r\n }\r\n },\r\n getbyid: getNameMethod([$calendar, $event, 'getbyid']), // Возвращает событие календаря по идентификатору\r\n }\r\n */\r\n public readonly event = new BXRestNavvyRestCalendarEvent()\r\n public readonly section = new BXRestNavvyRestCalendarSection()\r\n public readonly user = new BXRestNavvyRestCalendarUser()\r\n\r\n}\r\n","import { iBXRestSonetGroupGet, iBXRestSonetGroupGetHttp } from '../typification/rest/sonet_group/get'\r\nimport { toDate, toNum } from '../services/base'\r\n\r\nexport class BXRestMapSonetGroup {\r\n\r\n static get(items: iBXRestSonetGroupGetHttp[] | undefined): iBXRestSonetGroupGet[] | undefined {\r\n return (items) ? items.map(i => BXRestMapSonetGroup.iBXRestParamSonetHttpToiBXRestParamSonet(i)) : undefined\r\n }\r\n\r\n static iBXRestParamSonetHttpToiBXRestParamSonet(items: iBXRestSonetGroupGetHttp): iBXRestSonetGroupGet {\r\n return Object.assign(items, {\r\n ID: toNum(items.ID),\r\n DATE_CREATE: toDate(items.DATE_CREATE),\r\n DATE_UPDATE: toDate(items.DATE_UPDATE),\r\n ACTIVE: items.ACTIVE == 'Y',\r\n VISIBLE: items.VISIBLE == 'Y',\r\n OPENED: items.OPENED == 'Y',\r\n CLOSED: items.CLOSED == 'Y',\r\n SUBJECT_ID: toNum(items.SUBJECT_ID),\r\n OWNER_ID: toNum(items.OWNER_ID),\r\n NUMBER_OF_MEMBERS: toNum(items.OWNER_ID),\r\n DATE_ACTIVITY: toDate(items.DATE_ACTIVITY),\r\n PROJECT: items.OPENED == 'Y',\r\n IS_EXTRANET: items.OPENED == 'Y',\r\n })\r\n }\r\n}\r\n","import { iBXRestParamSonetGroupGet } from '../typification/rest/sonet_group'\r\nimport { BXRestMapSonetGroup } from '../map/sonet_group'\r\nimport { Navvy } from '../services/navvy'\r\nimport { $get, $sonet_group } from '../consts/part-name-methods'\r\n\r\nexport class BXRestNavvySonetGroup {\r\n\r\n url = {\r\n // /**\r\n // * Создает группу соцсети, используя метод API CSocNetGroup::CreateGroup(), указывая владельцем группы текущего пользователя\r\n // */\r\n // create: [$sonet_group, $create],\r\n // /**\r\n // * Удаляет группу соцсети\r\n // */\r\n // delete: [$sonet_group, $delete],\r\n // feature: {\r\n // access: [$sonet_group, $feature, $access] // Проверяет, имеет ли текущий пользователь право на совершение операции в группе соцсети, осуществляя вызов функции CSocNetFeaturesPerms::CurrentUserCanPerformOperation()\r\n // },\r\n /**\r\n * Возвращает массив групп соцсети, каждая из которых содержит массив полей, осуществляя вызов CSocNetGroup::GetList(), при этом возвращаются только те группы, которые доступны пользователю по правам\r\n */\r\n get: [$sonet_group, $get],\r\n // /**\r\n // * Изменяет владельца группы\r\n // */\r\n // setOwner: [$sonet_group, 'setowner'],\r\n // /**\r\n // * Изменяет параметры группы соцсети, используя метод API CSocNetGroup::Update()\r\n // */\r\n // update: [$sonet_group, $update],\r\n // user: {\r\n // add: [$sonet_group, $user, $add], // sonet_group.user.add\tДобавляет пользователей в качестве участников рабочей группы (без приглашения и подтверждения)\r\n // delete: [$sonet_group, $user, $delete], //\tУдаляет пользователей из рабочей группы\r\n // get: [$sonet_group, $user, $get], // Возвращает массив участников группы соцсети, осуществляя вызов CSocNetUserToGroup::GetList(), при этом проверяются права на доступ текущего пользователя к группе\r\n // groups: [$sonet_group, $user, 'groups'], // Возвращает массив групп соцсети текущего пользователя, осуществляя вызов CSocNetUserToGroup::GetList()\r\n // invite: [$sonet_group, $user, 'invite'], // Выполняет приглашение пользователей в группу соцсети от лица текущего пользователя, при этом проверяются права на доступ текущего пользователя к группе\r\n // request: [$sonet_group, $user, $request], // Отправляет запрос текущего пользователя на вступление в группу соцсети, при этом проверяются права на доступ текущего пользователя к группе.\r\n // update: [$sonet_group, $user, $update], // Изменяет роль пользователей в рабочей группе События при работе с группами СоцСети\tСписок событий при добавлении, изменении и удалении группы.\r\n // },\r\n // workgroup: {\r\n // list: [$socialnetwork, $api, $workgroup, $list], // Метод возвращает список групп,\r\n // get: [$socialnetwork, $api, $workgroup, $get] // Метод возвращает данные по рабочей группе\r\n // }\r\n }\r\n\r\n private readonly Navvy = new Navvy()\r\n\r\n get(param: iBXRestParamSonetGroupGet = {}) {\r\n return this.Navvy.simple(\r\n this.url.get,\r\n param,\r\n BXRestMapSonetGroup.get\r\n )\r\n }\r\n}\r\n\r\n\r\n","import { toDate } from '../services/base'\r\n\r\nexport class BXRestMapServer {\r\n static time(v: string | undefined) {\r\n return (v) ? toDate(v) : undefined\r\n }\r\n}\r\n","import { Navvy } from '../services/navvy'\r\nimport { BXRestMapServer } from '../map/server'\r\nimport { $server, $time } from '../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyServer {\r\n\r\n url = {\r\n time: [$server, $time]\r\n }\r\n\r\n private readonly Navvy = new Navvy()\r\n\r\n time() {\r\n return this.Navvy.simple<string, Date, undefined>(\r\n this.url.time,\r\n undefined,\r\n BXRestMapServer.time\r\n )\r\n }\r\n}\r\n","import { iBXRestDepartmentHttp, iBXRestDepartment } from '../typification/rest/department/department'\r\n\r\nexport class BXRestMapDepartment {\r\n static get(item: iBXRestDepartmentHttp[] | undefined): iBXRestDepartment[] | undefined {\r\n return (item) ? item.map(dep => {\r\n if (dep.PARENT) {\r\n return {\r\n ID: Number(dep.ID),\r\n UF_HEAD: Number(dep.UF_HEAD),\r\n PARENT: Number(dep.PARENT),\r\n NAME: dep.NAME,\r\n SORT: dep.SORT,\r\n }\r\n } else {\r\n return {\r\n ID: Number(dep.ID),\r\n UF_HEAD: Number(dep.UF_HEAD),\r\n NAME: dep.NAME,\r\n SORT: dep.SORT,\r\n }\r\n }\r\n }) : undefined\r\n }\r\n}\r\n","import { iBXRestParamDepartmentGet, iBXRestParamDepartmentAdd, iBXRestDepartmentUpdate } from '../typification/rest/department'\r\nimport { Navvy } from '../services/navvy'\r\nimport { BXRestMapDepartment } from '../map/department'\r\nimport { $add, $delete, $department, $get, $update } from '../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyDepartment {\r\n\r\n url = {\r\n get: [$department, $get],\r\n del: [$department, $delete],\r\n add: [$department, $add],\r\n update: [$department, $update]\r\n }\r\n protected Navvy = new Navvy()\r\n\r\n get(param: iBXRestParamDepartmentGet = {}) {\r\n return this.Navvy.pagNav(\r\n this.url.get,\r\n param,\r\n BXRestMapDepartment.get)\r\n }\r\n\r\n add(param: iBXRestParamDepartmentAdd) {\r\n return this.Navvy.simple(this.url.add, param)\r\n }\r\n\r\n del(id: number) {\r\n return this.Navvy.simple(this.url.del, {ID: id})\r\n }\r\n\r\n update(param: iBXRestDepartmentUpdate) {\r\n param.NAME = param.NAME.trim()\r\n return this.Navvy.simple(this.url.update, param)\r\n }\r\n}\r\n","import { Navvy } from '../../../services/navvy'\r\nimport { $add, $chat, $delete, $im, $list, $user } from '../../../consts/part-name-methods'\r\nimport {\r\n iBXRestImChatUserListParam,\r\n iBXRestImChatUserDeleteParam, iBXRestImChatUserAddParam\r\n} from '../../../typification/rest/im'\r\n\r\nexport class BXRestNavvyImChatUser {\r\n private Navvy = new Navvy()\r\n\r\n url = {\r\n add: [$im, $chat, $user, $add],\r\n list: [$im, $chat, $user, $list],\r\n delete: [$im, $chat, $user, $delete],\r\n }\r\n\r\n list(param: iBXRestImChatUserListParam) {\r\n return this.Navvy.simple<number[], number[], iBXRestImChatUserListParam>(this.url.list, param)\r\n }\r\n\r\n delete(param: iBXRestImChatUserDeleteParam) {\r\n return this.Navvy.simple<number, number, iBXRestImChatUserDeleteParam>(this.url.delete, param)\r\n }\r\n\r\n /**\r\n * Приглаcить участников в чат\r\n */\r\n add(param: iBXRestImChatUserAddParam) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestImChatUserAddParam>(this.url.add, param)\r\n }\r\n}","import { Navvy } from '../../services/navvy'\r\nimport {\r\n $add,\r\n $chat,\r\n $get,\r\n $im,\r\n $leave,\r\n $mute,\r\n $setOwner,\r\n $updateAvatar, $updateColor,\r\n $updateTitle\r\n} from '../../consts/part-name-methods'\r\nimport { iBXRestImChatGetParam,\r\n iBXRestImChatSetOwnerParam,\r\n iBXRestImChatUpdateAvatarParam,\r\n iBXRestImChatUpdateTitleParam,\r\n iBXRestImChatLeaveParam,\r\n iBXRestImChatMuteParam,\r\n iBXRestImChatUpdateColor,\r\n iBXRestImChatAddParam\r\n} from '../../typification/rest/im'\r\nimport { BXRestNavvyImChatUser } from './chat/user'\r\n\r\nexport class BXRestNavvyImChat {\r\n\r\n url = {\r\n add: [$im, $chat, $add],\r\n get: [$im, $chat, $get],\r\n setOwner: [$im, $chat, $setOwner],\r\n updateAvatar: [$im, $chat, $updateAvatar],\r\n updateColor: [$im, $chat, $updateColor],\r\n updateTitle: [$im, $chat, $updateTitle],\r\n leave: [$im, $chat, $leave],\r\n mute: [$im, $chat, $mute],\r\n }\r\n\r\n private Navvy = new Navvy()\r\n public readonly user = new BXRestNavvyImChatUser()\r\n\r\n /**\r\n * Создать чат\r\n *\r\n * @param param\r\n */\r\n add(param: iBXRestImChatAddParam){\r\n return this.Navvy.simple<number, number, iBXRestImChatAddParam>(this.url.add, param)\r\n }\r\n\r\n /**\r\n * Получить идентификатор чата\r\n *\r\n * @param param\r\n */\r\n get(param: iBXRestImChatGetParam){\r\n return this.Navvy.simple<number, number, iBXRestImChatGetParam>(this.url.get, param)\r\n }\r\n\r\n /**\r\n * Сменить владельца чата\r\n *\r\n * @param param\r\n */\r\n setOwner(param: iBXRestImChatSetOwnerParam){\r\n return this.Navvy.simple<boolean, boolean, iBXRestImChatSetOwnerParam>(this.url.setOwner, param)\r\n }\r\n\r\n /**\r\n * Изменить аватарку чата\r\n *\r\n * @param param\r\n */\r\n updateAvatar(param: iBXRestImChatUpdateAvatarParam){\r\n return this.Navvy.simple<boolean, boolean, iBXRestImChatUpdateAvatarParam>(this.url.updateAvatar, param)\r\n }\r\n\r\n /**\r\n * Изменить заголовок чата\r\n *\r\n * @param param\r\n */\r\n updateTitle(param: iBXRestImChatUpdateTitleParam){\r\n return this.Navvy.simple<boolean, boolean, iBXRestImChatUpdateTitleParam>(this.url.updateTitle, param)\r\n }\r\n\r\n /**\r\n * Покинуть чат\r\n *\r\n * @param param\r\n */\r\n leave(param: iBXRestImChatLeaveParam){\r\n return this.Navvy.simple<boolean, boolean, iBXRestImChatLeaveParam>(this.url.leave, param)\r\n }\r\n\r\n /**\r\n * Отключить уведомления от чата\r\n *\r\n * @param param\r\n */\r\n mute(param: iBXRestImChatMuteParam){\r\n return this.Navvy.simple<boolean, boolean, iBXRestImChatMuteParam>(this.url.mute, param)\r\n }\r\n\r\n /**\r\n * Изменить цвет чата\r\n *\r\n * @param param\r\n */\r\n updateColor(param: iBXRestImChatUpdateColor){\r\n return this.Navvy.simple<boolean, boolean, iBXRestImChatUpdateColor>(this.url.updateColor, param)\r\n }\r\n}\r\n","import { $counters, $get, $im } from '../../consts/part-name-methods'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { iBXRestImCounters } from '../../typification/rest/im'\r\n\r\nexport class BXRestNavvyImCounters {\r\n\r\n private Navvy = new Navvy()\r\n\r\n get(){\r\n return this.Navvy.simple<iBXRestImCounters>([$im, $counters, $get])\r\n }\r\n}","import { toDate } from '../../../services/base'\r\nimport { iBXRestImDialogUserGet, iBXRestImDialogUserGetHttp } from '../../../typification/rest/im/dialog/user/get'\r\n\r\nexport class BXRestMapImDialogUsers {\r\n\r\n static list(value: iBXRestImDialogUserGetHttp | undefined): iBXRestImDialogUserGet | undefined {\r\n return (value)\r\n ? {\r\n ...value,\r\n ...{\r\n last_activity_date: toDate(value.last_activity_date),\r\n mobile_last_date: value.mobile_last_date ? toDate(value.mobile_last_date) : false,\r\n }\r\n }\r\n : undefined\r\n }\r\n}","import { $dialog, $im, $list, $users } from '../../../consts/part-name-methods'\r\nimport { Navvy } from '../../../services/navvy'\r\nimport {\r\n iBXRestImDialogUserGet,\r\n iBXRestImDialogUserGetHttp,\r\n iBXRestImDialogUserGetParam\r\n} from '../../../typification/rest/im'\r\nimport { BXRestMapImDialogUsers } from '../../../map/im/gialog/users'\r\n\r\nexport class BXRestNavvyImDialogUsers {\r\n\r\n private Navvy = new Navvy()\r\n\r\n list(param: iBXRestImDialogUserGetParam) {\r\n return this.Navvy.simple<iBXRestImDialogUserGetHttp, iBXRestImDialogUserGet, iBXRestImDialogUserGetParam>(\r\n [$im, $dialog, $users, $list],\r\n param,\r\n BXRestMapImDialogUsers.list\r\n )\r\n }\r\n}","import { iBXRestImDialogGet, iBXRestImDialogGetHttp } from '../../typification/rest/im/dialog/get'\r\nimport { toDate, toNum } from '../../services/base'\r\n\r\n\r\nexport class BXRestMapImDialog {\r\n static get(value: iBXRestImDialogGetHttp | undefined): iBXRestImDialogGet | undefined {\r\n return (value)\r\n ? {\r\n ...value,\r\n ...{\r\n id: toNum(value.id),\r\n owner: toNum(value.owner),\r\n date_create: toDate(value.date_create),\r\n }\r\n }\r\n : undefined\r\n }\r\n}","import {\r\n iBXRestImDialogMessagesGet,\r\n iBXRestImDialogMessagesGetHttp\r\n} from '../../../typification/rest/im/dialog/messages/get'\r\nimport { toDate } from '../../../services/base'\r\n\r\nexport class BXRestMapImDialogMessages {\r\n static get(value: iBXRestImDialogMessagesGetHttp | undefined): iBXRestImDialogMessagesGet | undefined {\r\n return (value)\r\n ? {\r\n ...value,\r\n ...{\r\n messages: value.messages.map(\r\n mes => (\r\n {\r\n ...mes,\r\n ...{\r\n date: toDate(mes.date),\r\n params: (mes.params)\r\n ? {\r\n ...mes,\r\n ...{\r\n URL_ONLY: mes.params.URL_ONLY === 'Y',\r\n IS_EDITED: mes.params.IS_DELETED === 'Y',\r\n IS_DELETED: mes.params.IS_DELETED === 'Y',\r\n }\r\n }\r\n : null\r\n }\r\n }\r\n )\r\n )\r\n }\r\n }\r\n : undefined\r\n }\r\n}","import { $dialog, $get, $im, $messages } from '../../../consts/part-name-methods'\r\nimport { Navvy } from '../../../services/navvy'\r\nimport {\r\n iBXRestImDialogMessagesGet, iBXRestImDialogMessagesGetHttp,\r\n iBXRestImDialogMessagesGetParam\r\n} from '../../../typification/rest/im'\r\nimport { BXRestMapImDialogMessages } from '../../../map/im/gialog/messages'\r\n\r\nexport class BXRestNavvyImDialogMessages {\r\n\r\n private Navvy = new Navvy()\r\n\r\n get(param: iBXRestImDialogMessagesGetParam) {\r\n return this.Navvy.simple<iBXRestImDialogMessagesGetHttp, iBXRestImDialogMessagesGet, iBXRestImDialogMessagesGetParam>(\r\n [$im, $dialog, $messages, $get],\r\n param,\r\n BXRestMapImDialogMessages.get\r\n )\r\n }\r\n}","import { $all, $dialog, $im, $read } from '../../../consts/part-name-methods'\r\nimport { Navvy } from '../../../services/navvy'\r\nimport { iBXRestImDialogRead, iBXRestImDialogReadParam } from '../../../typification/rest/im'\r\n\r\n\r\nexport function BXRestNavvyImDialogRead(navvy: Navvy) {\r\n const readFunc = (param: iBXRestImDialogReadParam) => {\r\n\r\n /**\r\n * Установить признак «прочитано» у сообщений\r\n *\r\n * @param param\r\n */\r\n return navvy.simple<iBXRestImDialogRead, iBXRestImDialogRead, iBXRestImDialogReadParam>(\r\n [$im, $dialog, $read],\r\n param\r\n )\r\n }\r\n\r\n /**\r\n * Установить признак «прочитано» у всех чатов\r\n */\r\n readFunc.all = () => {\r\n return navvy.simple<boolean, boolean>(\r\n [$im, $dialog, $read, $all]\r\n )\r\n }\r\n\r\n return readFunc\r\n}","import { $dialog, $get, $im, $unread, $writing } from '../../consts/part-name-methods'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestNavvyImDialogUsers } from './dialog/users'\r\nimport {\r\n iBXRestImDialogGet,\r\n iBXRestImDialogGetHttp,\r\n iBXRestImDialogGetParam,\r\n iBXRestImDialogUnReadParam,\r\n iBXRestImDialogWritingParam\r\n} from '../../typification/rest/im'\r\nimport { BXRestMapImDialog } from '../../map/im/dialog'\r\nimport { BXRestNavvyImDialogMessages } from './dialog/messages'\r\nimport { BXRestNavvyImDialogRead } from './dialog/read'\r\n\r\nexport class BXRestNavvyImDialog {\r\n\r\n private Navvy = new Navvy()\r\n\r\n public readonly users = new BXRestNavvyImDialogUsers()\r\n public readonly messages = new BXRestNavvyImDialogMessages()\r\n public readonly read = BXRestNavvyImDialogRead(this.Navvy)\r\n\r\n /**\r\n * Получить данные о чате\r\n *\r\n * @param param\r\n */\r\n get(param: iBXRestImDialogGetParam) {\r\n return this.Navvy.simple<iBXRestImDialogGetHttp, iBXRestImDialogGet, iBXRestImDialogGetParam>(\r\n [$im, $dialog, $get],\r\n param,\r\n BXRestMapImDialog.get\r\n )\r\n }\r\n\r\n /**\r\n * Установить признак «прочитано» у сообщений\r\n *\r\n * @param param\r\n */\r\n unread(param: iBXRestImDialogUnReadParam) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestImDialogUnReadParam>(\r\n [$im, $dialog, $unread],\r\n param,\r\n )\r\n }\r\n\r\n /**\r\n * Отправить признак «вам пишут...»\r\n *\r\n * @param param\r\n */\r\n writing(param: iBXRestImDialogWritingParam) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestImDialogWritingParam>(\r\n [$im, $dialog, $writing],\r\n param,\r\n )\r\n }\r\n}","export function CatchError(options?: { rethrow?: boolean; defaultValue?: any }) {\r\n return function (\r\n target: any,\r\n propertyKey: string,\r\n descriptor: PropertyDescriptor\r\n ) {\r\n const original = descriptor.value\r\n\r\n descriptor.value = function (...args: any[]) {\r\n try {\r\n return original.apply(this, args)\r\n } catch (err) {\r\n const errorInfo = {\r\n message: `❌ Error in ${target.constructor.name}.${propertyKey}`,\r\n args,\r\n error: err instanceof Error ? err.message : String(err),\r\n stack: err instanceof Error ? err.stack : new Error().stack,\r\n }\r\n\r\n console.error(formatError(errorInfo))\r\n\r\n if (options?.rethrow) throw err\r\n return options?.defaultValue\r\n }\r\n }\r\n\r\n return descriptor\r\n }\r\n}\r\n\r\n// Общая функция форматирования\r\nexport function formatError(info: { message: string; args?: any[]; error?: string; stack?: string }): string {\r\n const stackLines = info.stack?.split('\\n').slice(2).join('\\n')\r\n return [\r\n info.message,\r\n info.args ? ` • args: ${JSON.stringify(info.args)}` : '',\r\n info.error ? ` • error: ${info.error}` : '',\r\n ` • stack trace:\\n${stackLines}`,\r\n ].join('\\n')\r\n}\r\n","import {\r\n iBXRestImDialogRecentGet, iBXRestImDialogRecentGetChatChatDataHttp, iBXRestImDialogRecentGetChatUserDataBase,\r\n iBXRestImDialogRecentGetHttp,\r\n} from '../../typification/rest/im/dialog/recent/get'\r\nimport { toDate, toNum } from '../../services/base'\r\nimport {\r\n iBXRestImDialogRecentList,\r\n iBXRestImDialogRecentListHttp\r\n} from '../../typification/rest/im/dialog/recent/list'\r\nimport { CatchError } from '../../functions/errorHandler'\r\n\r\nexport class BXRestMapImRecent {\r\n\r\n @CatchError({ rethrow: true })\r\n static get(value: iBXRestImDialogRecentGetHttp[] | undefined): iBXRestImDialogRecentGet[] | undefined {\r\n\r\n return value\r\n ? value.map(i => ({\r\n ...i,\r\n ...{\r\n date_update: toDate(i.date_update),\r\n counter: toNum(i.counter),\r\n user: BXRestMapImRecent.mapUser(i.user),\r\n chat: BXRestMapImRecent.mapChat(i.chat),\r\n }\r\n }))\r\n : undefined\r\n\r\n }\r\n\r\n @CatchError({ rethrow: true })\r\n static list(value: iBXRestImDialogRecentListHttp | undefined): iBXRestImDialogRecentList | undefined {\r\n return (value)\r\n ? {\r\n ...value, ...{\r\n items: value.items.map(i => ({\r\n ...i, ...{\r\n id: toNum(i.id),\r\n date_update: toDate(i.date_update),\r\n lines: (i.lines) ? {...i.lines, ...{date_create: toDate(i.lines.date_create)}} : undefined,\r\n message: {...i.message, ...{date: toDate(i.message.date)}},\r\n chat: (i.chat) ? {...i.chat, ...{date_create: toDate(i.chat.date_create)}} : undefined,\r\n user: (i.user)\r\n ? {\r\n ...i.user,\r\n ...{\r\n birthday: (i.user.birthday) ? toDate(i.user.birthday) : false,\r\n last_activity_date: (i.user.last_activity_date) ? toDate(i.user.last_activity_date) : undefined,\r\n mobile_last_date: (i.user.mobile_last_date) ? toDate(i.user.mobile_last_date) : false,\r\n }\r\n }\r\n : undefined,\r\n }\r\n }))\r\n }\r\n }\r\n : undefined\r\n }\r\n\r\n static isIBXRestImDialogRecentGetChatChatDataHttp(item: iBXRestImDialogRecentGetChatChatDataHttp | iBXRestImDialogRecentGetChatUserDataBase): item is iBXRestImDialogRecentGetChatChatDataHttp {\r\n return 'id' in item\r\n }\r\n\r\n private static mapUser(user: iBXRestImDialogRecentGetHttp['user']): iBXRestImDialogRecentGet['user'] {\r\n if (!user || !user.id) {\r\n return undefined\r\n }\r\n\r\n return {\r\n ...user,\r\n id: toNum(user.id),\r\n last_activity_date: user.last_activity_date ? toDate(user.last_activity_date) : false,\r\n mobile_last_date: user.mobile_last_date ? toDate(user.mobile_last_date) : false,\r\n absent: user.absent ? toDate(user.absent) : false,\r\n }\r\n }\r\n\r\n private static mapChat(chat: iBXRestImDialogRecentGetHttp['chat']): iBXRestImDialogRecentGet['chat'] {\r\n if (!chat) {\r\n return undefined\r\n }\r\n\r\n if (BXRestMapImRecent.isIBXRestImDialogRecentGetChatChatDataHttp(chat)) {\r\n return {\r\n ...chat,\r\n id: toNum(chat.id),\r\n date_create: toDate(chat.date_create)\r\n }\r\n }\r\n\r\n return chat\r\n }\r\n}\r\n","import { Navvy } from '../../services/navvy'\r\nimport { $get, $hide, $im, $list, $pin, $recent, $unread } from '../../consts/part-name-methods'\r\nimport {\r\n iBXRestImDialogRecentGet,\r\n iBXRestImDialogRecentGetHttp,\r\n iBXRestImDialogRecentGetParam,\r\n iBXRestImDialogRecentUnreadParam,\r\n iBXRestImDialogRecentList, iBXRestImDialogRecentListHttp,\r\n iBXRestImDialogRecentListParam\r\n} from '../../typification/rest/im'\r\nimport { BXRestMapImRecent } from '../../map/im/recent'\r\n\r\nexport class BXRestNavvyImRecent {\r\n\r\n private Navvy = new Navvy()\r\n\r\n url = {\r\n get: [$im, $recent, $get],\r\n list: [$im, $recent, $list],\r\n hide: [$im, $recent, $hide],\r\n pin: [$im, $recent, $pin],\r\n unread: [$im, $recent, $unread],\r\n }\r\n\r\n /**\r\n * Получить сокращенный список последних чатов\r\n */\r\n get(param: iBXRestImDialogRecentGetParam) {\r\n return this.Navvy.simple<iBXRestImDialogRecentGetHttp[], iBXRestImDialogRecentGet[], iBXRestImDialogRecentGetParam>\r\n (\r\n this.url.get,\r\n param,\r\n BXRestMapImRecent.get\r\n )\r\n }\r\n\r\n /**\r\n * Получить список чатов\r\n */\r\n list(param: iBXRestImDialogRecentListParam) {\r\n return this.Navvy.simple<iBXRestImDialogRecentListHttp, iBXRestImDialogRecentList, iBXRestImDialogRecentListParam>(\r\n this.url.list,\r\n param,\r\n BXRestMapImRecent.list\r\n )\r\n }\r\n\r\n /**\r\n * Удалить чат из списка последних\r\n */\r\n hide(param: iBXRestImDialogRecentUnreadParam) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestImDialogRecentUnreadParam>(this.url.unread, param)\r\n }\r\n\r\n /**\r\n * Закрепить чат вверху списка\r\n */\r\n pin(param: iBXRestImDialogRecentUnreadParam) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestImDialogRecentUnreadParam>(this.url.pin, param)\r\n }\r\n\r\n /**\r\n * Установить или снять признак «прочитано» у чата\r\n */\r\n unread(param: iBXRestImDialogRecentUnreadParam) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestImDialogRecentUnreadParam>(this.url.unread, param)\r\n }\r\n}","import { iBXRestImUserGet, iBXRestImUserGetHttp } from '../../typification/rest/im/user/get'\r\nimport { toDate } from '../../services/base'\r\n\r\nexport class BXRestMapImUser {\r\n\r\n static get(value: iBXRestImUserGetHttp | undefined): iBXRestImUserGet | undefined {\r\n return (value)\r\n ? {\r\n ...value,\r\n ...{\r\n last_activity_date: toDate(value.last_activity_date),\r\n mobile_last_date: value.mobile_last_date ? toDate(value.mobile_last_date) : false,\r\n desktop_last_date: value.desktop_last_date ? toDate(value.desktop_last_date) : false,\r\n }\r\n }\r\n : undefined\r\n }\r\n}\r\n","import { Navvy } from '../../../../services/navvy'\r\nimport { $end, $idle, $im, $start, $status, $user } from '../../../../consts/part-name-methods'\r\nimport { iBXRestImUserStatusIdleStartParam } from '../../../../typification/rest/im'\r\n\r\nexport class BXRestNavvyImUserStatusIdle {\r\n private Navvy = new Navvy()\r\n\r\n start(param: iBXRestImUserStatusIdleStartParam){\r\n return this.Navvy.simple<boolean, boolean, iBXRestImUserStatusIdleStartParam>(\r\n [$im, $user, $status, $idle, $start],\r\n param\r\n )\r\n }\r\n\r\n end() {\r\n return this.Navvy.simple<boolean, boolean>([$im, $user, $status, $idle, $end])\r\n }\r\n}","import { Navvy } from '../../../services/navvy'\r\nimport { iBXRestImUserStatusGet, iBXRestImUserStatusSet } from '../../../typification/rest/im'\r\nimport { $get, $im, $set, $status, $user } from '../../../consts/part-name-methods'\r\nimport { BXRestNavvyImUserStatusIdle } from './status/idle'\r\n\r\nexport class BXRestNavvyImUserStatus {\r\n private Navvy = new Navvy()\r\n\r\n public readonly idle = new BXRestNavvyImUserStatusIdle()\r\n\r\n /**\r\n * Получить информацию об установленном статусе пользователя\r\n */\r\n get(){\r\n return this.Navvy.simple<iBXRestImUserStatusGet>([$im, $user, $status, $get])\r\n }\r\n\r\n /**\r\n * Установить статус пользователя\r\n */\r\n set(param: iBXRestImUserStatusSet) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestImUserStatusSet>([$im, $user, $status, $set], param)\r\n }\r\n\r\n}","import { iBXRestImUserGet, iBXRestImUserGetHttp } from '../../../typification/rest/im/user/get'\r\nimport { BXRestMapImUser } from '../user'\r\n\r\nexport class BXRestMapImUserList {\r\n /** Получить данные о пользователях */\r\n static get(value: (iBXRestImUserGetHttp | null)[] | undefined): (iBXRestImUserGet | undefined)[] | undefined {\r\n return value ?\r\n value.map(i =>\r\n (i) ? BXRestMapImUser.get(i) : undefined\r\n )\r\n : undefined\r\n }\r\n}","import { Navvy } from '../../../services/navvy'\r\nimport { iBXRestImUserListGetParam, iBXRestImUserGet, iBXRestImUserGetHttp } from '../../../typification/rest/im'\r\nimport { $get, $im, $list, $user } from '../../../consts/part-name-methods'\r\nimport { BXRestMapImUserList } from '../../../map/im/user/list'\r\n\r\nexport class BXRestNavvyImUserList {\r\n private Navvy = new Navvy()\r\n\r\n /** Получить данные о пользователях */\r\n get(param: iBXRestImUserListGetParam) {\r\n return this.Navvy.simple<(iBXRestImUserGetHttp | null)[], (iBXRestImUserGet | undefined)[], iBXRestImUserListGetParam>(\r\n [$im, $user, $list, $get],\r\n param,\r\n BXRestMapImUserList.get\r\n )\r\n }\r\n}","import { Navvy } from '../../services/navvy'\r\nimport { $dialog, $get, $im } from '../../consts/part-name-methods'\r\nimport { iBXRestImUserGet, iBXRestImUserGetHttp, iBXRestImUserGetParam } from '../../typification/rest/im'\r\nimport { BXRestMapImUser } from '../../map/im/user'\r\nimport { BXRestNavvyImUserStatus } from './user/status'\r\nimport { BXRestNavvyImUserList } from './user/list'\r\n\r\nexport class BXRestNavvyImUser {\r\n private Navvy = new Navvy()\r\n\r\n public readonly list = new BXRestNavvyImUserList()\r\n public readonly status = new BXRestNavvyImUserStatus()\r\n /**\r\n * Получить данные о пользователе\r\n *\r\n * @param param\r\n */\r\n get(param: iBXRestImUserGetParam) {\r\n return this.Navvy.simple<iBXRestImUserGetHttp, iBXRestImUserGet, iBXRestImUserGetParam>(\r\n [$im, $dialog, $get],\r\n param,\r\n BXRestMapImUser.get\r\n )\r\n }\r\n}","import { BXRestNavvyImChat } from './im/chat'\r\nimport { BXRestNavvyImCounters } from './im/counters'\r\nimport { BXRestNavvyImDialog } from './im/dialog'\r\nimport { BXRestNavvyImRecent } from './im/recent'\r\nimport { BXRestNavvyImUser } from './im/user'\r\n\r\nexport class BXRestNavvyIm {\r\n public readonly chat = new BXRestNavvyImChat()\r\n public readonly counters = new BXRestNavvyImCounters()\r\n public readonly dialog = new BXRestNavvyImDialog()\r\n public readonly recent = new BXRestNavvyImRecent()\r\n public readonly user = new BXRestNavvyImUser()\r\n}\r\n","import { iBXRestAppInfo, iBXRestAppInfoHttp } from '../typification/rest/app/info'\r\nimport { toNum } from '../services/base'\r\n\r\nexport class BXRestMapApp {\r\n static info(value: iBXRestAppInfoHttp | undefined): iBXRestAppInfo | undefined {\r\n return (value)\r\n ? {... value, ... {ID: toNum(value.ID), PAYMENT_EXPIRED: value.PAYMENT_EXPIRED === 'Y'}}\r\n : undefined\r\n }\r\n}\r\n","import { Navvy } from '../services/navvy'\r\nimport { BXRestMapApp } from '../map/app'\r\n\r\nexport class BXRestNavvyApp {\r\n\r\n private readonly Navvy = new Navvy()\r\n\r\n /**\r\n * Показ информации о приложении. Метод поддерживает безопасный вызов\r\n */\r\n info(){\r\n return this.Navvy.simple(\r\n ['app', 'info'],\r\n BXRestMapApp.info\r\n )\r\n }\r\n}\r\n","import { iBXRestTimeManStatus, iBXRestTimeManStatusHttp } from '../typification/rest/timeman/status'\r\n\r\nexport class BXRestMapTimeMan {\r\n static status(status: iBXRestTimeManStatusHttp | undefined): iBXRestTimeManStatus | undefined {\r\n if (status) {\r\n const duration = status.DURATION.split(':')\r\n const time_leaks = status.TIME_LEAKS.split(':')\r\n let res: iBXRestTimeManStatus= {\r\n STATUS: status.STATUS,\r\n TIME_START: (status.TIME_START) ? new Date(status.TIME_START) : undefined,\r\n TIME_FINISH: (status.TIME_FINISH) ? new Date(status.TIME_FINISH) : undefined,\r\n DURATION: (duration.length && duration.length == 3)\r\n ? Number(duration[0]) * 60 * 60 + Number(duration[1]) * 60 + Number(duration[2]) : 0,\r\n TIME_LEAKS: (time_leaks.length && time_leaks.length == 3)\r\n ? Number(time_leaks[0]) * 60 * 60 + Number(time_leaks[1]) * 60 + Number(time_leaks[2]) : 0,\r\n ACTIVE: status.ACTIVE,\r\n IP_OPEN: status.IP_CLOSE,\r\n IP_CLOSE: status.IP_CLOSE,\r\n LAT_OPEN: status.LAT_OPEN,\r\n LON_OPEN: status.LON_OPEN,\r\n LAT_CLOSE: status.LAT_CLOSE,\r\n LON_CLOSE: status.LON_CLOSE,\r\n TZ_OFFSET: status.TZ_OFFSET\r\n }\r\n if(status.TIME_FINISH_DEFAULT) {\r\n res.TIME_FINISH_DEFAULT = (status.TIME_FINISH_DEFAULT) ? new Date(status.TIME_FINISH_DEFAULT) : undefined\r\n }\r\n return res\r\n }\r\n\r\n return undefined\r\n }\r\n}","export function toLocalAtom(date: Date): string {\r\n const pad = (n: number): string => String(n).padStart(2, '0');\r\n\r\n const tzOffset = -date.getTimezoneOffset(); // минуты\r\n const sign = tzOffset >= 0 ? '+' : '-';\r\n const hh = pad(Math.floor(Math.abs(tzOffset) / 60));\r\n const mm = pad(Math.abs(tzOffset) % 60);\r\n\r\n return (\r\n `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}` +\r\n `T${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}` +\r\n `${sign}${hh}:${mm}`\r\n );\r\n}\r\n\r\n","import {\r\n iBXRestParamTimeManClose,\r\n iBXRestParamTimeManOpen,\r\n iBXRestParamTimeManPause,\r\n iBXRestParamTimeManSettings,\r\n iBXRestParamTimeManStatus,\r\n iBXRestTimeManSettings,\r\n iBXRestTimeManStatus,\r\n iBXRestTimeManStatusHttp\r\n} from '../typification/rest/timeman'\r\nimport { Navvy } from '../services/navvy'\r\nimport { BXRestMapTimeMan } from '../map/timeman'\r\nimport { $pause, $settings, $status, $timeMan } from '../consts/part-name-methods'\r\nimport { toLocalAtom } from '../functions/toLocalAtom'\r\n\r\nexport class BXRestNavvyTimeMan {\r\n protected readonly url = {\r\n /**\r\n * Получение настроек рабочего времени пользователя\r\n */\r\n settings: [$timeMan, $settings],\r\n /**\r\n * Получение информации о текущем рабочем дне пользователя\r\n */\r\n status: [$timeMan, $status],\r\n /**\r\n * Начать новый рабочий день либо возобновить закрытый или приостановленный\r\n */\r\n open: [$timeMan, 'open'],\r\n /**\r\n * Закрыть рабочий день\r\n */\r\n close: [$timeMan, 'close'],\r\n /**\r\n * Приостановить рабочий день\r\n */\r\n pause: [$timeMan, $pause],\r\n }\r\n\r\n protected Navvy = new Navvy()\r\n\r\n status(param: iBXRestParamTimeManStatus | undefined = undefined){\r\n return this.Navvy.simple(\r\n this.url.status,\r\n param,\r\n BXRestMapTimeMan.status\r\n )\r\n }\r\n\r\n open(param: iBXRestParamTimeManOpen = {}) {\r\n if(param && param.TIME instanceof Date){\r\n param.TIME = toLocalAtom(param.TIME)\r\n }\r\n return this.Navvy.simple<iBXRestTimeManStatusHttp, iBXRestTimeManStatus, iBXRestParamTimeManOpen>(\r\n this.url.open,\r\n param,\r\n BXRestMapTimeMan.status\r\n )\r\n }\r\n\r\n pause(param: iBXRestParamTimeManPause = {}) {\r\n return this.Navvy.simple<iBXRestTimeManStatusHttp, iBXRestTimeManStatus, iBXRestParamTimeManPause>(\r\n this.url.pause,\r\n param,\r\n BXRestMapTimeMan.status\r\n )\r\n }\r\n\r\n close(param: iBXRestParamTimeManClose = {}) {\r\n if(param && param.TIME instanceof Date){\r\n param.TIME = toLocalAtom(param.TIME)\r\n }\r\n return this.Navvy.simple<iBXRestTimeManStatusHttp, iBXRestTimeManStatus, iBXRestParamTimeManClose>(\r\n this.url.close,\r\n param,\r\n BXRestMapTimeMan.status\r\n )\r\n }\r\n\r\n settings(param: iBXRestParamTimeManSettings = {}) {\r\n return this.Navvy.simple<iBXRestTimeManSettings, iBXRestTimeManSettings, iBXRestParamTimeManSettings>(\r\n this.url.settings,\r\n param\r\n )\r\n }\r\n}","import {\r\n iBXRestParamSocialNetWorkApiContentViewSet\r\n} from '../../../typification/rest/socialnetwork'\r\n\nimport { Navvy } from '../../../services/navvy'\nimport { $api, $set, $socialnetwork } from '../../../consts/part-name-methods'\n\r\nexport class BXRestNavvySocialNetWorkApiContentView {\r\n\r\n private readonly Navvy = new Navvy()\r\n\n set(param: iBXRestParamSocialNetWorkApiContentViewSet){\n return this.Navvy.simple([$socialnetwork, $api, 'contentView', $set], param)\n }\n}\n","import {\r\n iBXRestSocialNetWorkApiBlogpostImportantVote,\r\n iBXRestSocialNetWorkApiBlogpostImportantVoteHttp\r\n} from '../../../../../typification/rest/socialnetwork/api/livefeed/blogpost/important/vote'\r\nimport { toBool } from '../../../../../services/base'\r\n\r\nexport class BXRestNavvyMapSocialNetWorkApiLiveFeedBlogPostImportant {\r\n\r\n static vote(item: iBXRestSocialNetWorkApiBlogpostImportantVoteHttp | undefined): iBXRestSocialNetWorkApiBlogpostImportantVote | undefined {\r\n return (item) ? {\r\n success: toBool(item.success)\r\n } : undefined\r\n }\r\n}","import { Navvy } from '../../../../../services/navvy'\r\nimport {\r\n iBXRestParamSocialNetWorkApiBlogpostImportantVote\r\n} from '../../../../../typification/rest/socialnetwork'\r\nimport {\r\n BXRestNavvyMapSocialNetWorkApiLiveFeedBlogPostImportant\r\n} from '../../../../../map/socialnetwork/api/livefeed/blogpost/important'\r\nimport { $api, $socialnetwork } from '../../../../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvySocialNetWorkApiLiveFeedBlogPostImportant {\r\n public url = {\r\n vote: [$socialnetwork, $api, 'liveFeed', 'blogPost', 'important', 'vote']\r\n }\r\n\r\n private readonly Navvy = new Navvy()\r\n\r\n vote(param: iBXRestParamSocialNetWorkApiBlogpostImportantVote) {\r\n return this.Navvy.simple(\r\n this.url.vote, param,\r\n BXRestNavvyMapSocialNetWorkApiLiveFeedBlogPostImportant.vote\r\n )\r\n }\r\n}","import {\r\n BXRestNavvySocialNetWorkApiLiveFeedBlogPostImportant,\r\n} from './blogpost/important'\r\n\r\nexport class BXRestNavvySocialNetWorkApiLiveFeedBlogPost {\r\n public readonly important = new BXRestNavvySocialNetWorkApiLiveFeedBlogPostImportant()\r\n}","import { BXRestNavvySocialNetWorkApiLiveFeedBlogPost } from './livefeed/blogpost'\r\n// import { Navvy } from '../../../services/navvy'\r\n// import { BXRestSocialNetWorkApiLiveFeed } from '../../../request/socialnetwork/api/livefeed'\r\n\r\nexport class BXRestNavvySocialNetWorkApiLiveFeed {\r\n // private readonly contentView = new BXRestSocialNetWorkApiLiveFeed)\r\n // private readonly Navvy = new Navvy(this.contentView, null)\r\n\r\n public readonly blogPost = new BXRestNavvySocialNetWorkApiLiveFeedBlogPost()\r\n}","import { BXRestNavvySocialNetWorkApiContentView } from './api/contentview'\r\nimport { BXRestNavvySocialNetWorkApiLiveFeed } from './api/livefeed'\r\n\r\nexport class BXRestNavvySocialNetWorkApi {\r\n public contentView = new BXRestNavvySocialNetWorkApiContentView()\r\n public liveFeed = new BXRestNavvySocialNetWorkApiLiveFeed()\r\n}","import { BXRestNavvySocialNetWorkApi } from './socialnetwork/api'\r\n\r\nexport class BXRestNavvySocialNetWork {\r\n public api = new BXRestNavvySocialNetWorkApi()\r\n\r\n}","import {\r\n iBXRestPullApplicationConfigGet,\r\n iBXRestPullApplicationConfigGetHttp\r\n} from '../../../typification/rest/pull/application/config/get'\r\nimport { toDate } from '../../../services/base'\r\nimport { iBXRestPullConfigPublicChannelsGet } from '../../../typification/rest/pull/config/get'\r\n\r\nexport class BXRestMapPullApplicationConfig {\r\n static get(value: iBXRestPullApplicationConfigGetHttp | undefined): iBXRestPullApplicationConfigGet | undefined {\r\n return value ?\r\n {\r\n ...value,\r\n ...{\r\n channels:\r\n {\r\n shared: {\r\n ...value.channels.shared, ...{\r\n start: toDate(value.channels.shared.start),\r\n end: toDate(value.channels.shared.end),\r\n }\r\n },\r\n private: {\r\n ...value.channels.private, ...{\r\n start: toDate(value.channels.private.start),\r\n end: toDate(value.channels.private.end),\r\n }\r\n }\r\n },\r\n publicChannels: Object.fromEntries(Object.entries(value.publicChannels).map(([key, val]) => (\r\n [key,\r\n {\r\n ...val,\r\n start: toDate(val.start),\r\n end: toDate(val.end)\r\n } as iBXRestPullConfigPublicChannelsGet\r\n ]))) as Record<string, iBXRestPullConfigPublicChannelsGet>,\r\n }\r\n }\r\n : undefined\r\n }\r\n}","import {\r\n iBXRestPullConfigGet,\r\n iBXRestPullConfigGetHttp\r\n} from '../typification/rest/pull/config/get'\r\nimport { toDate } from '../services/base'\r\nimport { BXRestMapPullApplicationConfig } from './pull/application/config'\r\n\r\nexport class BXRestMapPull {\r\n static get(value: iBXRestPullConfigGetHttp | undefined): iBXRestPullConfigGet | undefined {\r\n // console.log('Object.entries(value.publicChannels)', value)\r\n //if(value?.publicChannels) {\r\n // console.log('Object.entries(value.publicChannels)',\r\n // value.publicChannels, Object.entries(value.publicChannels), Object.fromEntries(Object.entries(value.publicChannels).map(([key, val]) => (\r\n // [key,\r\n // {\r\n // ...val,\r\n // start: toDate(val.start), end: toDate(val.end)\r\n // } as iBXRestPullConfigPublicChannelsGet\r\n // ]))) as Record<string, iBXRestPullConfigPublicChannelsGet>,)\r\n //}\r\n return value ? {... BXRestMapPullApplicationConfig.get(value), ...{serverTime: toDate(value.serverTime)}} as iBXRestPullConfigGet : undefined\r\n }\r\n}","import { iBXRestPullChannelPublicGet, iBXRestPullChannelPublicGetHttp } from '../../typification/rest/pull/channel/get'\r\nimport { toDate } from '../../services/base'\r\n\r\nexport class BXRestMapPullChannelPublic {\r\n\r\n static get(value: iBXRestPullChannelPublicGetHttp | undefined): iBXRestPullChannelPublicGet | undefined {\r\n return value ? {\r\n ...value,\r\n start: toDate(value.start),\r\n end: toDate(value.end)\r\n }\r\n : undefined\r\n }\r\n}","import { $config, $get, $pull } from '../../consts/part-name-methods'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { iBXRestPullConfigGet, iBXRestPullConfigGetHttp } from '../../typification/rest/pull'\r\nimport { BXRestMapPull } from '../../map/pull'\r\nimport { BXRestMapPullChannelPublic } from '../../map/channel/public'\r\n\r\nexport class BXRestNavvyPullConfig {\r\n url = {\r\n /**\r\n * Получает информацию для подключения в веб сокету\r\n */\r\n get: [$pull, $config, $get]\r\n }\r\n\r\n private Navvy = new Navvy()\r\n public static public = new BXRestMapPullChannelPublic()\r\n\r\n /**\r\n * @experimental\r\n * Этот метод находится в процессе тестирования и может измениться.\r\n */\r\n get() {\r\n return this.Navvy.simple<iBXRestPullConfigGetHttp, iBXRestPullConfigGet>(\r\n this.url.get,\r\n undefined,\r\n BXRestMapPull.get\r\n )\r\n }\r\n}","import { $add, $blogpost, $channel, $get, $log, $public, $pull } from '../../../consts/part-name-methods'\r\nimport { Navvy } from '../../../services/navvy'\r\nimport {\r\n iBXRestPullChannelPublicGet,\r\n iBXRestPullChannelPublicGetHttp\r\n} from '../../../typification/rest/pull'\r\nimport { BXRestMapPullChannelPublic } from '../../../map/channel/public'\r\n\r\nexport class BXRestNavvyPullChannelPublic {\r\n url = {\r\n get: [$log, $blogpost, $add]\r\n }\r\n\r\n private Navvy = new Navvy()\r\n\r\n get() {\r\n return this.Navvy.simple<iBXRestPullChannelPublicGetHttp,\r\n iBXRestPullChannelPublicGet>([$pull, $channel, $public, $get], undefined, BXRestMapPullChannelPublic.get)\r\n }\r\n}","import { $application, $config, $get, $pull } from '../../../consts/part-name-methods'\r\nimport {\r\n iBXRestPullApplicationConfigGet,\r\n iBXRestPullApplicationConfigGetHttp\r\n} from '../../../typification/rest/pull'\r\nimport { Navvy } from '../../../services/navvy'\r\nimport { BXRestMapPullApplicationConfig } from '../../../map/pull/application/config'\r\n\r\nexport class BXRestNavvyPullApplicationConfig {\r\n\r\n private Navvy = new Navvy()\r\n\r\n get() {\r\n return this.Navvy.simple<iBXRestPullApplicationConfigGetHttp, iBXRestPullApplicationConfigGet>(\r\n [$pull, $application, $config, $get],\r\n undefined,\r\n BXRestMapPullApplicationConfig.get\r\n )\r\n }\r\n}","import { BXRestNavvyPullConfig } from './pull/config'\r\nimport { BXRestNavvyPullChannelPublic } from './pull/channel/public'\r\nimport { BXRestNavvyPullApplicationConfig } from './pull/application/config'\r\n\r\nexport class BXRestNavvyPull {\r\n public readonly config = new BXRestNavvyPullConfig()\r\n public readonly channel = {\r\n public: new BXRestNavvyPullChannelPublic()\r\n }\r\n public readonly application = {\r\n config: new BXRestNavvyPullApplicationConfig(),\r\n }\r\n} ","import clone from 'just-clone'\r\nimport { iBXRestCrmLead, iBXRestCrmLeadHttp } from '../../typification/rest/crm'\r\nimport { toBool, toBXYorN, toDate, toISOStringWithTimezone, toNum, toStr } from '../../services/base'\r\n\r\nexport class BXRestMapCrmLead {\r\n /**\r\n * Преобразует массив лидов из HTTP формата в локальный\r\n */\r\n static list(v: iBXRestCrmLeadHttp[] | undefined): iBXRestCrmLead[] | undefined {\r\n return (v) ? v.map(item => BXRestMapCrmLead.httpToLocal(item)) : undefined\r\n }\r\n\r\n /**\r\n * Преобразует один лид из HTTP формата в локальный\r\n */\r\n static get(v: iBXRestCrmLeadHttp | undefined): iBXRestCrmLead | undefined {\r\n return (v) ? BXRestMapCrmLead.httpToLocal(v) : undefined\r\n }\r\n\r\n /**\r\n * Преобразует лид из HTTP формата в локальный\r\n */\r\n static httpToLocal(lead: iBXRestCrmLeadHttp): iBXRestCrmLead {\r\n return Object.assign(clone(lead), {\r\n ID: toNum(lead.ID),\r\n COMPANY_ID: lead.COMPANY_ID ? toNum(lead.COMPANY_ID) : undefined,\r\n CONTACT_ID: lead.CONTACT_ID ? toNum(lead.CONTACT_ID) : undefined,\r\n ASSIGNED_BY_ID: lead.ASSIGNED_BY_ID ? toNum(lead.ASSIGNED_BY_ID) : undefined,\r\n CREATED_BY_ID: lead.CREATED_BY_ID ? toNum(lead.CREATED_BY_ID) : undefined,\r\n MODIFY_BY_ID: lead.MODIFY_BY_ID ? toNum(lead.MODIFY_BY_ID) : undefined,\r\n DATE_CREATE: lead.DATE_CREATE ? toDate(lead.DATE_CREATE) : undefined,\r\n DATE_MODIFY: lead.DATE_MODIFY ? toDate(lead.DATE_MODIFY) : undefined,\r\n BIRTHDATE: lead.BIRTHDATE ? toDate(lead.BIRTHDATE) : undefined,\r\n OPENED: lead.OPENED ? toBool(lead.OPENED) : undefined,\r\n IS_MANUAL_OPPORTUNITY: lead.IS_MANUAL_OPPORTUNITY ? toBool(lead.IS_MANUAL_OPPORTUNITY) : undefined,\r\n HAS_PHONE: lead.HAS_PHONE ? toBool(lead.HAS_PHONE) : undefined,\r\n HAS_EMAIL: lead.HAS_EMAIL ? toBool(lead.HAS_EMAIL) : undefined,\r\n HAS_IMOL: lead.HAS_IMOL ? toBool(lead.HAS_IMOL) : undefined,\r\n OPPORTUNITY: lead.OPPORTUNITY ? toNum(lead.OPPORTUNITY) : undefined\r\n })\r\n }\r\n\r\n /**\r\n * Преобразует лид из локального формата в HTTP\r\n */\r\n static localToHttp(lead: iBXRestCrmLead): iBXRestCrmLeadHttp {\r\n return Object.assign(clone(lead), {\r\n ID: toStr(lead.ID),\r\n COMPANY_ID: lead.COMPANY_ID ? toStr(lead.COMPANY_ID) : undefined,\r\n CONTACT_ID: lead.CONTACT_ID ? toStr(lead.CONTACT_ID) : undefined,\r\n ASSIGNED_BY_ID: lead.ASSIGNED_BY_ID ? toStr(lead.ASSIGNED_BY_ID) : undefined,\r\n CREATED_BY_ID: lead.CREATED_BY_ID ? toStr(lead.CREATED_BY_ID) : undefined,\r\n MODIFY_BY_ID: lead.MODIFY_BY_ID ? toStr(lead.MODIFY_BY_ID) : undefined,\r\n DATE_CREATE: lead.DATE_CREATE ? toISOStringWithTimezone(lead.DATE_CREATE) : undefined,\r\n DATE_MODIFY: lead.DATE_MODIFY ? toISOStringWithTimezone(lead.DATE_MODIFY) : undefined,\r\n BIRTHDATE: lead.BIRTHDATE ? toISOStringWithTimezone(lead.BIRTHDATE) : undefined,\r\n OPENED: lead.OPENED !== undefined ? toBXYorN(lead.OPENED) : undefined,\r\n IS_MANUAL_OPPORTUNITY: lead.IS_MANUAL_OPPORTUNITY !== undefined ? toBXYorN(lead.IS_MANUAL_OPPORTUNITY) : undefined,\r\n HAS_PHONE: lead.HAS_PHONE !== undefined ? toBXYorN(lead.HAS_PHONE) : undefined,\r\n HAS_EMAIL: lead.HAS_EMAIL !== undefined ? toBXYorN(lead.HAS_EMAIL) : undefined,\r\n HAS_IMOL: lead.HAS_IMOL !== undefined ? toBXYorN(lead.HAS_IMOL) : undefined,\r\n OPPORTUNITY: lead.OPPORTUNITY ? toStr(lead.OPPORTUNITY) : undefined\r\n })\r\n }\r\n}\r\n\r\n","import clone from 'just-clone'\r\nimport { iBXRestCrmDeal, iBXRestCrmDealHttp } from '../../typification/rest/crm'\r\nimport { toBool, toBXYorN, toDate, toISOStringWithTimezone, toNum, toStr } from '../../services/base'\r\n\r\nexport class BXRestMapCrmDeal {\r\n /**\r\n * Преобразует массив сделок из HTTP формата в локальный\r\n */\r\n static list(v: iBXRestCrmDealHttp[] | undefined): iBXRestCrmDeal[] | undefined {\r\n return (v) ? v.map(item => BXRestMapCrmDeal.httpToLocal(item)) : undefined\r\n }\r\n\r\n /**\r\n * Преобразует одну сделку из HTTP формата в локальный\r\n */\r\n static get(v: iBXRestCrmDealHttp | undefined): iBXRestCrmDeal | undefined {\r\n return (v) ? BXRestMapCrmDeal.httpToLocal(v) : undefined\r\n }\r\n\r\n /**\r\n * Преобразует сделку из HTTP формата в локальный\r\n */\r\n static httpToLocal(deal: iBXRestCrmDealHttp): iBXRestCrmDeal {\r\n return Object.assign(clone(deal), {\r\n ID: toNum(deal.ID),\r\n COMPANY_ID: deal.COMPANY_ID ? toNum(deal.COMPANY_ID) : undefined,\r\n CONTACT_ID: deal.CONTACT_ID ? toNum(deal.CONTACT_ID) : undefined,\r\n ASSIGNED_BY_ID: deal.ASSIGNED_BY_ID ? toNum(deal.ASSIGNED_BY_ID) : undefined,\r\n CREATED_BY_ID: deal.CREATED_BY_ID ? toNum(deal.CREATED_BY_ID) : undefined,\r\n MODIFY_BY_ID: deal.MODIFY_BY_ID ? toNum(deal.MODIFY_BY_ID) : undefined,\r\n DATE_CREATE: deal.DATE_CREATE ? toDate(deal.DATE_CREATE) : undefined,\r\n DATE_MODIFY: deal.DATE_MODIFY ? toDate(deal.DATE_MODIFY) : undefined,\r\n BEGINDATE: deal.BEGINDATE ? toDate(deal.BEGINDATE) : undefined,\r\n CLOSEDATE: deal.CLOSEDATE ? toDate(deal.CLOSEDATE) : undefined,\r\n OPENED: deal.OPENED ? toBool(deal.OPENED) : undefined,\r\n IS_MANUAL_OPPORTUNITY: deal.IS_MANUAL_OPPORTUNITY ? toBool(deal.IS_MANUAL_OPPORTUNITY) : undefined,\r\n OPPORTUNITY: deal.OPPORTUNITY ? toNum(deal.OPPORTUNITY) : undefined,\r\n PROBABILITY: deal.PROBABILITY ? toNum(deal.PROBABILITY) : undefined,\r\n TAX_VALUE: deal.TAX_VALUE ? toNum(deal.TAX_VALUE) : undefined,\r\n LOCATION_ID: deal.LOCATION_ID ? toNum(deal.LOCATION_ID) : undefined\r\n })\r\n }\r\n\r\n /**\r\n * Преобразует сделку из локального формата в HTTP\r\n */\r\n static localToHttp(deal: iBXRestCrmDeal): iBXRestCrmDealHttp {\r\n return Object.assign(clone(deal), {\r\n ID: toStr(deal.ID),\r\n COMPANY_ID: deal.COMPANY_ID ? toStr(deal.COMPANY_ID) : undefined,\r\n CONTACT_ID: deal.CONTACT_ID ? toStr(deal.CONTACT_ID) : undefined,\r\n ASSIGNED_BY_ID: deal.ASSIGNED_BY_ID ? toStr(deal.ASSIGNED_BY_ID) : undefined,\r\n CREATED_BY_ID: deal.CREATED_BY_ID ? toStr(deal.CREATED_BY_ID) : undefined,\r\n MODIFY_BY_ID: deal.MODIFY_BY_ID ? toStr(deal.MODIFY_BY_ID) : undefined,\r\n DATE_CREATE: deal.DATE_CREATE ? toISOStringWithTimezone(deal.DATE_CREATE) : undefined,\r\n DATE_MODIFY: deal.DATE_MODIFY ? toISOStringWithTimezone(deal.DATE_MODIFY) : undefined,\r\n BEGINDATE: deal.BEGINDATE ? toISOStringWithTimezone(deal.BEGINDATE) : undefined,\r\n CLOSEDATE: deal.CLOSEDATE ? toISOStringWithTimezone(deal.CLOSEDATE) : undefined,\r\n OPENED: deal.OPENED !== undefined ? toBXYorN(deal.OPENED) : undefined,\r\n IS_MANUAL_OPPORTUNITY: deal.IS_MANUAL_OPPORTUNITY !== undefined ? toBXYorN(deal.IS_MANUAL_OPPORTUNITY) : undefined,\r\n OPPORTUNITY: deal.OPPORTUNITY ? toStr(deal.OPPORTUNITY) : undefined,\r\n PROBABILITY: deal.PROBABILITY ? toStr(deal.PROBABILITY) : undefined,\r\n TAX_VALUE: deal.TAX_VALUE ? toStr(deal.TAX_VALUE) : undefined,\r\n LOCATION_ID: deal.LOCATION_ID ? toStr(deal.LOCATION_ID) : undefined\r\n })\r\n }\r\n}\r\n\r\n","import clone from 'just-clone'\r\nimport { iBXRestCrmContact, iBXRestCrmContactHttp } from '../../typification/rest/crm'\r\nimport { toBool, toBXYorN, toDate, toISOStringWithTimezone, toNum, toStr } from '../../services/base'\r\n\r\nexport class BXRestMapCrmContact {\r\n /**\r\n * Преобразует массив контактов из HTTP формата в локальный\r\n */\r\n static list(v: iBXRestCrmContactHttp[] | undefined): iBXRestCrmContact[] | undefined {\r\n return (v) ? v.map(item => BXRestMapCrmContact.httpToLocal(item)) : undefined\r\n }\r\n\r\n /**\r\n * Преобразует один контакт из HTTP формата в локальный\r\n */\r\n static get(v: iBXRestCrmContactHttp | undefined): iBXRestCrmContact | undefined {\r\n return (v) ? BXRestMapCrmContact.httpToLocal(v) : undefined\r\n }\r\n\r\n /**\r\n * Преобразует контакт из HTTP формата в локальный\r\n */\r\n static httpToLocal(contact: iBXRestCrmContactHttp): iBXRestCrmContact {\r\n return Object.assign(clone(contact), {\r\n ID: toNum(contact.ID),\r\n COMPANY_ID: contact.COMPANY_ID ? toNum(contact.COMPANY_ID) : undefined,\r\n LEAD_ID: contact.LEAD_ID ? toNum(contact.LEAD_ID) : undefined,\r\n ASSIGNED_BY_ID: contact.ASSIGNED_BY_ID ? toNum(contact.ASSIGNED_BY_ID) : undefined,\r\n CREATED_BY_ID: contact.CREATED_BY_ID ? toNum(contact.CREATED_BY_ID) : undefined,\r\n MODIFY_BY_ID: contact.MODIFY_BY_ID ? toNum(contact.MODIFY_BY_ID) : undefined,\r\n DATE_CREATE: contact.DATE_CREATE ? toDate(contact.DATE_CREATE) : undefined,\r\n DATE_MODIFY: contact.DATE_MODIFY ? toDate(contact.DATE_MODIFY) : undefined,\r\n BIRTHDATE: contact.BIRTHDATE ? toDate(contact.BIRTHDATE) : undefined,\r\n OPENED: contact.OPENED ? toBool(contact.OPENED) : undefined\r\n })\r\n }\r\n\r\n /**\r\n * Преобразует контакт из локального формата в HTTP\r\n */\r\n static localToHttp(contact: iBXRestCrmContact): iBXRestCrmContactHttp {\r\n return Object.assign(clone(contact), {\r\n ID: toStr(contact.ID),\r\n COMPANY_ID: contact.COMPANY_ID ? toStr(contact.COMPANY_ID) : undefined,\r\n LEAD_ID: contact.LEAD_ID ? toStr(contact.LEAD_ID) : undefined,\r\n ASSIGNED_BY_ID: contact.ASSIGNED_BY_ID ? toStr(contact.ASSIGNED_BY_ID) : undefined,\r\n CREATED_BY_ID: contact.CREATED_BY_ID ? toStr(contact.CREATED_BY_ID) : undefined,\r\n MODIFY_BY_ID: contact.MODIFY_BY_ID ? toStr(contact.MODIFY_BY_ID) : undefined,\r\n DATE_CREATE: contact.DATE_CREATE ? toISOStringWithTimezone(contact.DATE_CREATE) : undefined,\r\n DATE_MODIFY: contact.DATE_MODIFY ? toISOStringWithTimezone(contact.DATE_MODIFY) : undefined,\r\n BIRTHDATE: contact.BIRTHDATE ? toISOStringWithTimezone(contact.BIRTHDATE) : undefined,\r\n OPENED: contact.OPENED !== undefined ? toBXYorN(contact.OPENED) : undefined\r\n })\r\n }\r\n}\r\n\r\n","import clone from 'just-clone'\r\nimport { iBXRestCrmCompany, iBXRestCrmCompanyHttp } from '../../typification/rest/crm'\r\nimport { toBool, toBXYorN, toDate, toISOStringWithTimezone, toNum, toStr } from '../../services/base'\r\n\r\nexport class BXRestMapCrmCompany {\r\n /**\r\n * Преобразует массив компаний из HTTP формата в локальный\r\n */\r\n static list(v: iBXRestCrmCompanyHttp[] | undefined): iBXRestCrmCompany[] | undefined {\r\n return (v) ? v.map(item => BXRestMapCrmCompany.httpToLocal(item)) : undefined\r\n }\r\n\r\n /**\r\n * Преобразует одну компанию из HTTP формата в локальный\r\n */\r\n static get(v: iBXRestCrmCompanyHttp | undefined): iBXRestCrmCompany | undefined {\r\n return (v) ? BXRestMapCrmCompany.httpToLocal(v) : undefined\r\n }\r\n\r\n /**\r\n * Преобразует компанию из HTTP формата в локальный\r\n */\r\n static httpToLocal(company: iBXRestCrmCompanyHttp): iBXRestCrmCompany {\r\n return Object.assign(clone(company), {\r\n ID: toNum(company.ID),\r\n LEAD_ID: company.LEAD_ID ? toNum(company.LEAD_ID) : undefined,\r\n ASSIGNED_BY_ID: company.ASSIGNED_BY_ID ? toNum(company.ASSIGNED_BY_ID) : undefined,\r\n CREATED_BY_ID: company.CREATED_BY_ID ? toNum(company.CREATED_BY_ID) : undefined,\r\n MODIFY_BY_ID: company.MODIFY_BY_ID ? toNum(company.MODIFY_BY_ID) : undefined,\r\n DATE_CREATE: company.DATE_CREATE ? toDate(company.DATE_CREATE) : undefined,\r\n DATE_MODIFY: company.DATE_MODIFY ? toDate(company.DATE_MODIFY) : undefined,\r\n OPENED: company.OPENED ? toBool(company.OPENED) : undefined,\r\n IS_MY_COMPANY: company.IS_MY_COMPANY ? toBool(company.IS_MY_COMPANY) : undefined,\r\n EMPLOYEES: company.EMPLOYEES ? toNum(company.EMPLOYEES) : undefined,\r\n REVENUE: company.REVENUE ? toNum(company.REVENUE) : undefined\r\n })\r\n }\r\n\r\n /**\r\n * Преобразует компанию из локального формата в HTTP\r\n */\r\n static localToHttp(company: iBXRestCrmCompany): iBXRestCrmCompanyHttp {\r\n return Object.assign(clone(company), {\r\n ID: toStr(company.ID),\r\n LEAD_ID: company.LEAD_ID ? toStr(company.LEAD_ID) : undefined,\r\n ASSIGNED_BY_ID: company.ASSIGNED_BY_ID ? toStr(company.ASSIGNED_BY_ID) : undefined,\r\n CREATED_BY_ID: company.CREATED_BY_ID ? toStr(company.CREATED_BY_ID) : undefined,\r\n MODIFY_BY_ID: company.MODIFY_BY_ID ? toStr(company.MODIFY_BY_ID) : undefined,\r\n DATE_CREATE: company.DATE_CREATE ? toISOStringWithTimezone(company.DATE_CREATE) : undefined,\r\n DATE_MODIFY: company.DATE_MODIFY ? toISOStringWithTimezone(company.DATE_MODIFY) : undefined,\r\n OPENED: company.OPENED !== undefined ? toBXYorN(company.OPENED) : undefined,\r\n IS_MY_COMPANY: company.IS_MY_COMPANY !== undefined ? toBXYorN(company.IS_MY_COMPANY) : undefined,\r\n EMPLOYEES: company.EMPLOYEES ? toStr(company.EMPLOYEES) : undefined,\r\n REVENUE: company.REVENUE ? toStr(company.REVENUE) : undefined\r\n })\r\n }\r\n}\r\n\r\n","import clone from 'just-clone'\nimport {\n iBXRestCrmQuote,\n iBXRestCrmQuoteHttp,\n iBXRestCrmQuoteProductRow,\n iBXRestCrmQuoteProductRowHttp,\n iBXRestCrmQuoteUserField,\n iBXRestCrmQuoteUserFieldHttp\n} from '../../typification/rest/crm'\nimport { toBool, toDate, toNum } from '../../services/base'\n\nfunction optionalNumber(value: string | number | null | undefined): number | undefined {\n return value === null || value === undefined || value === '' ? undefined : toNum(value)\n}\n\nfunction optionalDate(value: string | Date | null | undefined): Date | undefined {\n return value === null || value === undefined || value === '' ? undefined : toDate(value)\n}\n\nexport class BXRestMapCrmQuote {\n static list(value: iBXRestCrmQuoteHttp[] | undefined): iBXRestCrmQuote[] | undefined {\n return value?.map(item => BXRestMapCrmQuote.get(item) as iBXRestCrmQuote)\n }\n\n static get(value: iBXRestCrmQuoteHttp | undefined): iBXRestCrmQuote | undefined {\n if (!value) return undefined\n\n return Object.assign(clone(value), {\n ID: toNum(value.ID),\n OPPORTUNITY: optionalNumber(value.OPPORTUNITY),\n TAX_VALUE: optionalNumber(value.TAX_VALUE),\n COMPANY_ID: optionalNumber(value.COMPANY_ID),\n CONTACT_ID: optionalNumber(value.CONTACT_ID),\n MYCOMPANY_ID: optionalNumber(value.MYCOMPANY_ID),\n ASSIGNED_BY_ID: optionalNumber(value.ASSIGNED_BY_ID),\n CREATED_BY_ID: optionalNumber(value.CREATED_BY_ID),\n MODIFY_BY_ID: optionalNumber(value.MODIFY_BY_ID),\n LEAD_ID: optionalNumber(value.LEAD_ID),\n DEAL_ID: optionalNumber(value.DEAL_ID),\n PERSON_TYPE_ID: optionalNumber(value.PERSON_TYPE_ID),\n LOCATION_ID: optionalNumber(value.LOCATION_ID),\n LAST_ACTIVITY_BY: optionalNumber(value.LAST_ACTIVITY_BY),\n BEGINDATE: optionalDate(value.BEGINDATE),\n CLOSEDATE: optionalDate(value.CLOSEDATE),\n ACTUAL_DATE: optionalDate(value.ACTUAL_DATE),\n DATE_CREATE: optionalDate(value.DATE_CREATE),\n DATE_MODIFY: optionalDate(value.DATE_MODIFY),\n LAST_COMMUNICATION_TIME: optionalDate(value.LAST_COMMUNICATION_TIME),\n LAST_ACTIVITY_TIME: optionalDate(value.LAST_ACTIVITY_TIME),\n OPENED: value.OPENED ? toBool(value.OPENED) : undefined,\n CLOSED: value.CLOSED ? toBool(value.CLOSED) : undefined\n })\n }\n}\n\nexport class BXRestMapCrmQuoteProductRow {\n static list(value: iBXRestCrmQuoteProductRowHttp[] | undefined): iBXRestCrmQuoteProductRow[] | undefined {\n return value?.map(item => Object.assign(clone(item), {\n ID: toNum(item.ID),\n OWNER_ID: toNum(item.OWNER_ID),\n CUSTOMIZED: item.CUSTOMIZED ? toBool(item.CUSTOMIZED) : undefined,\n TAX_INCLUDED: item.TAX_INCLUDED ? toBool(item.TAX_INCLUDED) : undefined,\n DATE_RESERVE_END: optionalDate(item.DATE_RESERVE_END)\n }))\n }\n}\n\nexport class BXRestMapCrmQuoteUserField {\n static list(value: iBXRestCrmQuoteUserFieldHttp[] | undefined): iBXRestCrmQuoteUserField[] | undefined {\n return value?.map(item => BXRestMapCrmQuoteUserField.get(item) as iBXRestCrmQuoteUserField)\n }\n\n static get(value: iBXRestCrmQuoteUserFieldHttp | undefined): iBXRestCrmQuoteUserField | undefined {\n if (!value) return undefined\n\n return Object.assign(clone(value), {\n ID: toNum(value.ID),\n SORT: toNum(value.SORT),\n MULTIPLE: toBool(value.MULTIPLE),\n MANDATORY: toBool(value.MANDATORY),\n SHOW_IN_LIST: toBool(value.SHOW_IN_LIST),\n EDIT_IN_LIST: toBool(value.EDIT_IN_LIST),\n IS_SEARCHABLE: toBool(value.IS_SEARCHABLE)\n })\n }\n}\n","import { Navvy } from '../../services/navvy'\r\nimport { $add, $crm, $delete, $get, $lead, $list, $update } from '../../consts/part-name-methods'\r\nimport {\r\n iBXRestParamCrmLeadAdd,\r\n iBXRestParamCrmLeadGet,\r\n iBXRestParamCrmLeadList,\r\n iBXRestParamCrmLeadUpdate,\r\n iBXRestParamCrmLeadDelete\r\n} from '../../typification/rest/crm'\r\nimport { BXRestMapCrmLead } from '../../map/crm'\r\n\r\nexport class BXRestNavvyCrmLead {\r\n url = {\r\n /**\r\n * Создает новый лид\r\n */\r\n add: [$crm, $lead, $add],\r\n /**\r\n * Возвращает лид по идентификатору\r\n */\r\n get: [$crm, $lead, $get],\r\n /**\r\n * Возвращает список лидов\r\n */\r\n list: [$crm, $lead, $list],\r\n /**\r\n * Обновляет существующий лид\r\n */\r\n update: [$crm, $lead, $update],\r\n /**\r\n * Удаляет лид\r\n */\r\n delete: [$crm, $lead, $delete],\r\n /**\r\n * Возвращает описание полей лида\r\n */\r\n fields: [$crm, $lead, 'fields']\r\n }\r\n\r\n private Navvy = new Navvy()\r\n\r\n /**\r\n * Создает новый лид\r\n * @param param\r\n */\r\n add(param: iBXRestParamCrmLeadAdd) {\r\n return this.Navvy.simple<number, number, iBXRestParamCrmLeadAdd>(this.url.add, param)\r\n }\r\n\r\n /**\r\n * Возвращает лид по идентификатору\r\n * @param param\r\n */\r\n get(param: iBXRestParamCrmLeadGet) {\r\n return this.Navvy.simple(\r\n this.url.get,\r\n param,\r\n BXRestMapCrmLead.get\r\n )\r\n }\r\n\r\n /**\r\n * Возвращает список лидов\r\n * @param param\r\n */\r\n list(param: iBXRestParamCrmLeadList) {\r\n return this.Navvy.pagNav(\r\n this.url.list,\r\n param,\r\n BXRestMapCrmLead.list\r\n )\r\n }\r\n\r\n /**\r\n * Обновляет существующий лид\r\n * @param param\r\n */\r\n update(param: iBXRestParamCrmLeadUpdate) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestParamCrmLeadUpdate>(this.url.update, param)\r\n }\r\n\r\n /**\r\n * Удаляет лид\r\n * @param param\r\n */\r\n delete(param: iBXRestParamCrmLeadDelete) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestParamCrmLeadDelete>(this.url.delete, param)\r\n }\r\n\r\n /**\r\n * Возвращает описание полей лида\r\n */\r\n fields() {\r\n return this.Navvy.simple<Record<string, any>, Record<string, any>, undefined>(this.url.fields)\r\n }\r\n}\r\n\r\n","import { Navvy } from '../../services/navvy'\r\nimport { $add, $crm, $deal, $delete, $get, $list, $update } from '../../consts/part-name-methods'\r\nimport {\r\n iBXRestParamCrmDealAdd,\r\n iBXRestParamCrmDealGet,\r\n iBXRestParamCrmDealList,\r\n iBXRestParamCrmDealUpdate,\r\n iBXRestParamCrmDealDelete\r\n} from '../../typification/rest/crm'\r\nimport { BXRestMapCrmDeal } from '../../map/crm'\r\n\r\nexport class BXRestNavvyCrmDeal {\r\n url = {\r\n /**\r\n * Создает новую сделку\r\n */\r\n add: [$crm, $deal, $add],\r\n /**\r\n * Возвращает сделку по идентификатору\r\n */\r\n get: [$crm, $deal, $get],\r\n /**\r\n * Возвращает список сделок\r\n */\r\n list: [$crm, $deal, $list],\r\n /**\r\n * Обновляет существующую сделку\r\n */\r\n update: [$crm, $deal, $update],\r\n /**\r\n * Удаляет сделку\r\n */\r\n delete: [$crm, $deal, $delete],\r\n /**\r\n * Возвращает описание полей сделки\r\n */\r\n fields: [$crm, $deal, 'fields']\r\n }\r\n\r\n private Navvy = new Navvy()\r\n\r\n /**\r\n * Создает новую сделку\r\n * @param param\r\n */\r\n add(param: iBXRestParamCrmDealAdd) {\r\n return this.Navvy.simple<number, number, iBXRestParamCrmDealAdd>(this.url.add, param)\r\n }\r\n\r\n /**\r\n * Возвращает сделку по идентификатору\r\n * @param param\r\n */\r\n get(param: iBXRestParamCrmDealGet) {\r\n return this.Navvy.simple(\r\n this.url.get,\r\n param,\r\n BXRestMapCrmDeal.get\r\n )\r\n }\r\n\r\n /**\r\n * Возвращает список сделок\r\n * @param param\r\n */\r\n list(param: iBXRestParamCrmDealList) {\r\n return this.Navvy.pagNav(\r\n this.url.list,\r\n param,\r\n BXRestMapCrmDeal.list\r\n )\r\n }\r\n\r\n /**\r\n * Обновляет существующую сделку\r\n * @param param\r\n */\r\n update(param: iBXRestParamCrmDealUpdate) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestParamCrmDealUpdate>(this.url.update, param)\r\n }\r\n\r\n /**\r\n * Удаляет сделку\r\n * @param param\r\n */\r\n delete(param: iBXRestParamCrmDealDelete) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestParamCrmDealDelete>(this.url.delete, param)\r\n }\r\n\r\n /**\r\n * Возвращает описание полей сделки\r\n */\r\n fields() {\r\n return this.Navvy.simple<Record<string, any>, Record<string, any>, undefined>(this.url.fields)\r\n }\r\n}\r\n\r\n","import { Navvy } from '../../services/navvy'\r\nimport { $add, $contact, $crm, $delete, $get, $list, $update } from '../../consts/part-name-methods'\r\nimport {\r\n iBXRestParamCrmContactAdd,\r\n iBXRestParamCrmContactGet,\r\n iBXRestParamCrmContactList,\r\n iBXRestParamCrmContactUpdate,\r\n iBXRestParamCrmContactDelete\r\n} from '../../typification/rest/crm'\r\nimport { BXRestMapCrmContact } from '../../map/crm'\r\n\r\nexport class BXRestNavvyCrmContact {\r\n url = {\r\n /**\r\n * Создает новый контакт\r\n */\r\n add: [$crm, $contact, $add],\r\n /**\r\n * Возвращает контакт по идентификатору\r\n */\r\n get: [$crm, $contact, $get],\r\n /**\r\n * Возвращает список контактов\r\n */\r\n list: [$crm, $contact, $list],\r\n /**\r\n * Обновляет существующий контакт\r\n */\r\n update: [$crm, $contact, $update],\r\n /**\r\n * Удаляет контакт\r\n */\r\n delete: [$crm, $contact, $delete],\r\n /**\r\n * Возвращает описание полей контакта\r\n */\r\n fields: [$crm, $contact, 'fields']\r\n }\r\n\r\n private Navvy = new Navvy()\r\n\r\n /**\r\n * Создает новый контакт\r\n * @param param\r\n */\r\n add(param: iBXRestParamCrmContactAdd) {\r\n return this.Navvy.simple<number, number, iBXRestParamCrmContactAdd>(this.url.add, param)\r\n }\r\n\r\n /**\r\n * Возвращает контакт по идентификатору\r\n * @param param\r\n */\r\n get(param: iBXRestParamCrmContactGet) {\r\n return this.Navvy.simple(\r\n this.url.get,\r\n param,\r\n BXRestMapCrmContact.get\r\n )\r\n }\r\n\r\n /**\r\n * Возвращает список контактов\r\n * @param param\r\n */\r\n list(param: iBXRestParamCrmContactList) {\r\n return this.Navvy.pagNav(\r\n this.url.list,\r\n param,\r\n BXRestMapCrmContact.list\r\n )\r\n }\r\n\r\n /**\r\n * Обновляет существующий контакт\r\n * @param param\r\n */\r\n update(param: iBXRestParamCrmContactUpdate) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestParamCrmContactUpdate>(this.url.update, param)\r\n }\r\n\r\n /**\r\n * Удаляет контакт\r\n * @param param\r\n */\r\n delete(param: iBXRestParamCrmContactDelete) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestParamCrmContactDelete>(this.url.delete, param)\r\n }\r\n\r\n /**\r\n * Возвращает описание полей контакта\r\n */\r\n fields() {\r\n return this.Navvy.simple<Record<string, any>, Record<string, any>, undefined>(this.url.fields)\r\n }\r\n}\r\n\r\n","import { Navvy } from '../../services/navvy'\r\nimport { $add, $company, $crm, $delete, $get, $list, $update } from '../../consts/part-name-methods'\r\nimport {\r\n iBXRestParamCrmCompanyAdd,\r\n iBXRestParamCrmCompanyGet,\r\n iBXRestParamCrmCompanyList,\r\n iBXRestParamCrmCompanyUpdate,\r\n iBXRestParamCrmCompanyDelete\r\n} from '../../typification/rest/crm'\r\nimport { BXRestMapCrmCompany } from '../../map/crm'\r\n\r\nexport class BXRestNavvyCrmCompany {\r\n url = {\r\n /**\r\n * Создает новую компанию\r\n */\r\n add: [$crm, $company, $add],\r\n /**\r\n * Возвращает компанию по идентификатору\r\n */\r\n get: [$crm, $company, $get],\r\n /**\r\n * Возвращает список компаний\r\n */\r\n list: [$crm, $company, $list],\r\n /**\r\n * Обновляет существующую компанию\r\n */\r\n update: [$crm, $company, $update],\r\n /**\r\n * Удаляет компанию\r\n */\r\n delete: [$crm, $company, $delete],\r\n /**\r\n * Возвращает описание полей компании\r\n */\r\n fields: [$crm, $company, 'fields']\r\n }\r\n\r\n private Navvy = new Navvy()\r\n\r\n /**\r\n * Создает новую компанию\r\n * @param param\r\n */\r\n add(param: iBXRestParamCrmCompanyAdd) {\r\n return this.Navvy.simple<number, number, iBXRestParamCrmCompanyAdd>(this.url.add, param)\r\n }\r\n\r\n /**\r\n * Возвращает компанию по идентификатору\r\n * @param param\r\n */\r\n get(param: iBXRestParamCrmCompanyGet) {\r\n return this.Navvy.simple(\r\n this.url.get,\r\n param,\r\n BXRestMapCrmCompany.get\r\n )\r\n }\r\n\r\n /**\r\n * Возвращает список компаний\r\n * @param param\r\n */\r\n list(param: iBXRestParamCrmCompanyList) {\r\n return this.Navvy.pagNav(\r\n this.url.list,\r\n param,\r\n BXRestMapCrmCompany.list\r\n )\r\n }\r\n\r\n /**\r\n * Обновляет существующую компанию\r\n * @param param\r\n */\r\n update(param: iBXRestParamCrmCompanyUpdate) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestParamCrmCompanyUpdate>(this.url.update, param)\r\n }\r\n\r\n /**\r\n * Удаляет компанию\r\n * @param param\r\n */\r\n delete(param: iBXRestParamCrmCompanyDelete) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestParamCrmCompanyDelete>(this.url.delete, param)\r\n }\r\n\r\n /**\r\n * Возвращает описание полей компании\r\n */\r\n fields() {\r\n return this.Navvy.simple<Record<string, any>, Record<string, any>, undefined>(this.url.fields)\r\n }\r\n}\r\n\r\n","import { Navvy } from '../../../services/navvy'\nimport { $crm, $get, $productrows, $quote, $set } from '../../../consts/part-name-methods'\nimport {\n iBXRestCrmQuoteProductRow,\n iBXRestCrmQuoteProductRowHttp,\n iBXRestParamCrmQuoteProductRowsGet,\n iBXRestParamCrmQuoteProductRowsSet\n} from '../../../typification/rest/crm'\nimport { BXRestMapCrmQuoteProductRow } from '../../../map/crm'\n\n/** Методы товарных позиций коммерческого предложения. */\nexport class BXRestNavvyCrmQuoteProductRows {\n private readonly Navvy = new Navvy()\n private readonly url = {\n get: [$crm, $quote, $productrows, $get],\n set: [$crm, $quote, $productrows, $set]\n }\n\n /**\n * Возвращает товарные позиции коммерческого предложения.\n *\n * @deprecated Развитие метода остановлено. Используйте `crm.item.productrow.*`.\n * @see https://apidocs.bitrix24.ru/api-reference/crm/quote/crm-quote-product-rows-get.html\n */\n get(param: iBXRestParamCrmQuoteProductRowsGet) {\n return this.Navvy.simple<iBXRestCrmQuoteProductRowHttp[], iBXRestCrmQuoteProductRow[], iBXRestParamCrmQuoteProductRowsGet>(\n this.url.get,\n param,\n BXRestMapCrmQuoteProductRow.list\n )\n }\n\n /**\n * Полностью заменяет товарные позиции коммерческого предложения.\n * Передайте пустой массив `rows`, чтобы удалить все позиции.\n *\n * @deprecated Развитие метода остановлено. Используйте `crm.item.productrow.*`.\n * @see https://apidocs.bitrix24.ru/api-reference/crm/quote/crm-quote-product-rows-set.html\n */\n set(param: iBXRestParamCrmQuoteProductRowsSet) {\n return this.Navvy.simple<boolean, boolean, iBXRestParamCrmQuoteProductRowsSet>(this.url.set, param)\n }\n}\n","import { Navvy } from '../../../services/navvy'\nimport { $add, $crm, $delete, $get, $list, $quote, $update, $userfield } from '../../../consts/part-name-methods'\nimport {\n iBXRestCrmQuoteUserField,\n iBXRestCrmQuoteUserFieldHttp,\n iBXRestParamCrmQuoteUserFieldAdd,\n iBXRestParamCrmQuoteUserFieldDelete,\n iBXRestParamCrmQuoteUserFieldGet,\n iBXRestParamCrmQuoteUserFieldList,\n iBXRestParamCrmQuoteUserFieldUpdate\n} from '../../../typification/rest/crm'\nimport { BXRestMapCrmQuoteUserField } from '../../../map/crm'\n\n/** Методы пользовательских полей коммерческих предложений. */\nexport class BXRestNavvyCrmQuoteUserField {\n private readonly Navvy = new Navvy()\n private readonly url = {\n add: [$crm, $quote, $userfield, $add],\n update: [$crm, $quote, $userfield, $update],\n get: [$crm, $quote, $userfield, $get],\n list: [$crm, $quote, $userfield, $list],\n delete: [$crm, $quote, $userfield, $delete]\n }\n\n /**\n * Создает пользовательское поле для предложений.\n * Метод доступен администратору CRM.\n *\n * @see https://apidocs.bitrix24.ru/api-reference/crm/quote/user-field/crm-quote-user-field-add.html\n */\n add(param: iBXRestParamCrmQuoteUserFieldAdd) {\n return this.Navvy.simple<number, number, iBXRestParamCrmQuoteUserFieldAdd>(this.url.add, param)\n }\n\n /**\n * Обновляет существующее пользовательское поле предложений.\n * Метод доступен администратору CRM.\n *\n * @see https://apidocs.bitrix24.ru/api-reference/crm/quote/user-field/crm-quote-user-field-update.html\n */\n update(param: iBXRestParamCrmQuoteUserFieldUpdate) {\n return this.Navvy.simple<boolean, boolean, iBXRestParamCrmQuoteUserFieldUpdate>(this.url.update, param)\n }\n\n /**\n * Возвращает пользовательское поле предложения по идентификатору.\n *\n * @see https://apidocs.bitrix24.ru/api-reference/crm/quote/user-field/crm-quote-user-field-get.html\n */\n get(param: iBXRestParamCrmQuoteUserFieldGet) {\n return this.Navvy.simple<iBXRestCrmQuoteUserFieldHttp, iBXRestCrmQuoteUserField, iBXRestParamCrmQuoteUserFieldGet>(\n this.url.get,\n param,\n BXRestMapCrmQuoteUserField.get\n )\n }\n\n /**\n * Возвращает список пользовательских полей предложений по фильтру.\n *\n * @see https://apidocs.bitrix24.ru/api-reference/crm/quote/user-field/crm-quote-user-field-list.html\n */\n list(param: iBXRestParamCrmQuoteUserFieldList = {}) {\n return this.Navvy.simple<iBXRestCrmQuoteUserFieldHttp[], iBXRestCrmQuoteUserField[], iBXRestParamCrmQuoteUserFieldList>(\n this.url.list,\n param,\n BXRestMapCrmQuoteUserField.list\n )\n }\n\n /**\n * Удаляет пользовательское поле предложений.\n * Метод доступен администратору CRM.\n *\n * @see https://apidocs.bitrix24.ru/api-reference/crm/quote/user-field/crm-quote-user-field-delete.html\n */\n delete(param: iBXRestParamCrmQuoteUserFieldDelete) {\n return this.Navvy.simple<boolean, boolean, iBXRestParamCrmQuoteUserFieldDelete>(this.url.delete, param)\n }\n}\n","import { Navvy } from '../../../services/navvy'\nimport { $add, $crm, $delete, $get, $list, $quote, $update } from '../../../consts/part-name-methods'\nimport {\n iBXRestParamCrmQuoteAdd,\n iBXRestParamCrmQuoteDelete,\n iBXRestParamCrmQuoteGet,\n iBXRestParamCrmQuoteList,\n iBXRestParamCrmQuoteUpdate\n} from '../../../typification/rest/crm'\nimport { BXRestMapCrmQuote } from '../../../map/crm'\nimport { BXRestNavvyCrmQuoteProductRows } from './productrows'\nimport { BXRestNavvyCrmQuoteUserField } from './userfield'\n\nexport * from './productrows'\nexport * from './userfield'\n\n/** Навигатор REST-методов коммерческих предложений Bitrix24. */\nexport class BXRestNavvyCrmQuote {\n private readonly Navvy = new Navvy()\n private readonly url = {\n add: [$crm, $quote, $add],\n update: [$crm, $quote, $update],\n get: [$crm, $quote, $get],\n list: [$crm, $quote, $list],\n delete: [$crm, $quote, $delete],\n fields: [$crm, $quote, 'fields']\n }\n\n /** Товарные позиции предложения (`crm.quote.productrows.*`). */\n public readonly productrows = new BXRestNavvyCrmQuoteProductRows()\n\n /** Пользовательские поля предложений (`crm.quote.userfield.*`). */\n public readonly userfield = new BXRestNavvyCrmQuoteUserField()\n\n /**\n * Создает коммерческое предложение.\n *\n * @deprecated Развитие метода остановлено. Используйте `crm.item.add`.\n * @see https://apidocs.bitrix24.ru/api-reference/crm/quote/crm-quote-add.html\n */\n add(param: iBXRestParamCrmQuoteAdd) {\n return this.Navvy.simple<number, number, iBXRestParamCrmQuoteAdd>(this.url.add, param)\n }\n\n /**\n * Изменяет существующее коммерческое предложение.\n *\n * @deprecated Развитие метода остановлено. Используйте `crm.item.update`.\n * @see https://apidocs.bitrix24.ru/api-reference/crm/quote/crm-quote-update.html\n */\n update(param: iBXRestParamCrmQuoteUpdate) {\n return this.Navvy.simple<boolean, boolean, iBXRestParamCrmQuoteUpdate>(this.url.update, param)\n }\n\n /**\n * Возвращает коммерческое предложение по идентификатору.\n *\n * @deprecated Развитие метода остановлено. Используйте `crm.item.get`.\n * @see https://apidocs.bitrix24.ru/api-reference/crm/quote/crm-quote-get.html\n */\n get(param: iBXRestParamCrmQuoteGet) {\n return this.Navvy.simple(this.url.get, param, BXRestMapCrmQuote.get)\n }\n\n /**\n * Возвращает список коммерческих предложений по фильтру.\n *\n * @deprecated Развитие метода остановлено. Используйте `crm.item.list`.\n * @see https://apidocs.bitrix24.ru/api-reference/crm/quote/crm-quote-list.html\n */\n list(param: iBXRestParamCrmQuoteList = {}) {\n return this.Navvy.pagNav(this.url.list, param, BXRestMapCrmQuote.list)\n }\n\n /**\n * Удаляет коммерческое предложение.\n *\n * @deprecated Развитие метода остановлено. Используйте `crm.item.delete`.\n * @see https://apidocs.bitrix24.ru/api-reference/crm/quote/crm-quote-delete.html\n */\n delete(param: iBXRestParamCrmQuoteDelete) {\n return this.Navvy.simple<boolean, boolean, iBXRestParamCrmQuoteDelete>(this.url.delete, param)\n }\n\n /**\n * Возвращает описание полей коммерческого предложения.\n *\n * @deprecated Развитие метода остановлено. Используйте `crm.item.fields`.\n * @see https://apidocs.bitrix24.ru/api-reference/crm/quote/crm-quote-fields.html\n */\n fields() {\n return this.Navvy.simple<Record<string, any>, Record<string, any>, undefined>(this.url.fields)\n }\n}\n","import { BXRestNavvyCrmLead } from './crm/lead'\r\nimport { BXRestNavvyCrmDeal } from './crm/deal'\r\nimport { BXRestNavvyCrmContact } from './crm/contact'\r\nimport { BXRestNavvyCrmCompany } from './crm/company'\nimport { BXRestNavvyCrmQuote } from './crm/quote/index'\n\r\nexport class BXRestNavvyCrm {\r\n public readonly lead = new BXRestNavvyCrmLead()\r\n public readonly deal = new BXRestNavvyCrmDeal()\r\n public readonly contact = new BXRestNavvyCrmContact()\r\n public readonly company = new BXRestNavvyCrmCompany()\n /** Коммерческие предложения и связанные с ними товарные и пользовательские поля. */\n public readonly quote = new BXRestNavvyCrmQuote()\n}\n","import { BXRestMap } from '../map/rest'\r\nimport { Navvy } from '../services/navvy'\r\n\r\nimport { BXRestNavvyUser } from '../request-navvy/user'\r\nimport { BXRestNavvyLists } from '../request-navvy/lists'\r\nimport { BXRestNavvyTask } from '../request-navvy/task'\r\nimport { BXRestNavvyTasks } from '../request-navvy/tasks'\r\nimport { BXRestNavvyDisk } from '../request-navvy/disk'\r\nimport { BXRestNavvyBizProc } from '../request-navvy/bizproc'\r\nimport { BXRestNavvyLog } from '../request-navvy/log'\r\nimport { BXRestNavvyCalendar } from '../request-navvy/calendar'\r\nimport { BXRestNavvySonetGroup } from '../request-navvy/sonet_group'\r\nimport { BXRestNavvyServer } from '../request-navvy/server'\r\nimport { BXRestNavvyDepartment } from '../request-navvy/department'\r\nimport { BXRestNavvyIm } from '../request-navvy/im'\r\nimport { BXRestNavvyApp } from '../request-navvy/app'\r\nimport { BXRestNavvyTimeMan } from '../request-navvy/timeman'\r\nimport { BXRestNavvySocialNetWork } from '../request-navvy/socialnetwork'\r\nimport { BXRestNavvyPull } from '../request-navvy/pull'\r\nimport { BXRestNavvyCrm } from '../request-navvy/crm'\r\n\r\nexport class BXRestNavvy {\r\n public readonly user = new BXRestNavvyUser()\r\n public readonly lists = new BXRestNavvyLists()\r\n public readonly task = new BXRestNavvyTask()\r\n public readonly tasks = new BXRestNavvyTasks()\r\n public readonly disk = new BXRestNavvyDisk()\r\n public readonly bizProc = new BXRestNavvyBizProc()\r\n public readonly log = new BXRestNavvyLog()\r\n public readonly calendar = new BXRestNavvyCalendar()\r\n public readonly sonet_group = new BXRestNavvySonetGroup()\r\n public readonly server = new BXRestNavvyServer()\r\n public readonly department = new BXRestNavvyDepartment()\r\n public readonly im = new BXRestNavvyIm()\r\n public readonly app = new BXRestNavvyApp()\r\n public readonly timeMan = new BXRestNavvyTimeMan()\r\n public readonly socialNetWork = new BXRestNavvySocialNetWork()\r\n public readonly pull = new BXRestNavvyPull()\r\n public readonly crm = new BXRestNavvyCrm()\r\n public readonly Navvy = new Navvy()\r\n\r\n public profile() {\r\n return this.Navvy.simple(['profile'], BXRestMap.profile)\r\n }\r\n\r\n // public batch<T, C, M>(param: iBXRestNavvyParamBatch<T, C, M>) {\r\n // const modifiedObject = Object.fromEntries(\r\n // Object.entries(param.cmd).map(([key, value]) => {\r\n // let modifiedValue = value.resultVanilla.arguments\r\n // return [key, modifiedValue]\r\n // })\r\n // )\r\n //\r\n // return this.BXRest.batch({\r\n // halt: param.halt,\r\n // cmd: modifiedObject\r\n // })\r\n // }\r\n}","import { BXRestMapCalendarUserSettings } from './user/settings'\r\n\r\nexport class BXRestMapCalendarUser {\r\n public readonly settings = new BXRestMapCalendarUserSettings()\r\n}","import { BXRestMapCalendarEvent } from './calendar/event'\r\nimport { BXRestMapCalendarSection } from './calendar/section'\r\nimport { BXRestMapCalendarUser } from './calendar/user'\r\n\r\nexport class BXRestMapCalendar {\r\n public readonly event = new BXRestMapCalendarEvent()\r\n public readonly section = new BXRestMapCalendarSection()\r\n public readonly user = new BXRestMapCalendarUser()\r\n}\r\n","import { BXRestMapLogBlogPost } from './log/blogpost'\r\n\r\nexport class BXRestMapLog {\r\n public readonly blogpost = new BXRestMapLogBlogPost()\r\n}\r\n","import { iBXRestTaskStage, iBXRestTaskStageHttp } from '../../typification/rest/task/stages/stage'\r\nimport { toNum } from '../../services/base'\r\n\r\nexport class BXRestMapTaskStage {\r\n\r\n static get(value: iBXRestTaskStageHttp[] | undefined) : iBXRestTaskStage[] | undefined{\r\n return (value) ? value.map(i => Object.assign(i,\r\n {\r\n SORT: toNum(i.SORT),\r\n ID: toNum(i.ID),\r\n ENTITY_ID: toNum(i.ENTITY_ID)\r\n }\r\n )\r\n ) as iBXRestTaskStage[] : undefined\r\n }\r\n\r\n}\r\n","import { BXRestMapTaskCommentItem } from './task/commentitem'\r\nimport { BXRestMapTaskElapsedItem } from './task/elapseditem'\r\nimport { BXRestMapTaskStage } from './task/stages'\r\n\r\nexport class BXRestMapTask {\r\n public readonly commentItem = new BXRestMapTaskCommentItem()\r\n public readonly elapsedItem = new BXRestMapTaskElapsedItem()\r\n public readonly stages = new BXRestMapTaskStage()\r\n}\r\n","import { BXRestMapTasksTask } from './tasks/task'\r\n\r\nexport class BXRestMapTasks {\r\n public readonly task = new BXRestMapTasksTask()\r\n}\r\n","import { BXRestMapLists } from '../map/lists'\r\nimport { BXRestMapUser } from '../map/user'\r\nimport { BXRestMapSonetGroup } from '../map/sonet_group'\r\nimport { BXRestMapServer } from '../map/server'\r\nimport { BXRestDisk } from '../request/disk'\r\nimport { BXRestMapCalendar } from '../map/calendar'\r\nimport { BXRestMapLog } from '../map/log'\r\nimport { BXRestMapTask } from '../map/task'\r\nimport { BXRestMapTasks } from '../map/tasks'\r\n\r\nexport class BXRestMap {\r\n public get user() {\r\n return BXRestMapUser;\r\n }\r\n\r\n public get sonet_group() {\r\n return BXRestMapSonetGroup;\r\n }\r\n\r\n public get server() {\r\n return BXRestMapServer;\r\n }\r\n\r\n public get lists() {\r\n return BXRestMapLists;\r\n }\r\n\r\n public get disk() {\r\n return BXRestDisk;\r\n }\r\n\r\n public get calendar() {\r\n return BXRestMapCalendar;\r\n }\r\n\r\n public get log() {\r\n return BXRestMapLog;\r\n }\r\n\r\n public get task() {\r\n return BXRestMapTask;\r\n }\r\n\r\n public get tasks() {\r\n return BXRestMapTasks;\r\n }\r\n}","/**\r\n * Public API Surface of bx-rest\r\n */\r\nexport { BXRestSettings } from './settings'\r\nexport { BXRestMapResult } from './functions/mapResult'\r\nexport { BXRestNavvy } from './rest/navvy'\r\nexport { BXRestMap } from './rest/map'\r\nexport { Navvy } from './services/navvy'\r\nexport { HttpBXServices as BXRestRequest } from './services/http/HttpBX'\nexport { SessionKeyServices, SessionKeyError } from './services/http/sessionKey'\nexport { instanceOfiBXRestAnswerSuccess as isBXRestAnswerSuccess } from './functions/mapResult'\nexport { HttpNavvyServices } from './services/http/httpNavvy'\r\nexport * as partNameMethods from './consts/part-name-methods'\r\nexport * as BXBaseServices from './services/base'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Cookies","LocalStorage","BXRestListsElementMap","mergeMap","BXRestMap"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bx-rest.mjs","sources":["../../../projects/bx-rest/src/settings.ts","../../../projects/bx-rest/src/functions/mapResult.ts","../../../projects/bx-rest/src/services/base.ts","../../../projects/bx-rest/src/map/rest.ts","../../../projects/bx-rest/src/services/vanilla/сookies.ts","../../../projects/bx-rest/src/services/vanilla/localStorage.ts","../../../projects/bx-rest/src/services/vanilla/sessionStorage.ts","../../../projects/bx-rest/src/services/http/sessionKey.ts","../../../projects/bx-rest/src/services/http/HttpData.ts","../../../projects/bx-rest/src/services/http/base/base.ts","../../../projects/bx-rest/src/services/http/http.ts","../../../projects/bx-rest/src/services/http/HttpBX.ts","../../../projects/bx-rest/src/services/navvy/extends/navvy-pag-base.ts","../../../projects/bx-rest/src/services/navvy/navvy-simple.ts","../../../projects/bx-rest/src/consts/part-name-methods.ts","../../../projects/bx-rest/src/request/user/userfield.ts","../../../projects/bx-rest/src/request/user.ts","../../../projects/bx-rest/src/request/lists/element.ts","../../../projects/bx-rest/src/request/lists/field.ts","../../../projects/bx-rest/src/request/lists.ts","../../../projects/bx-rest/src/request/task/elapseditem.ts","../../../projects/bx-rest/src/request/task/commentitem.ts","../../../projects/bx-rest/src/request/task/planner.ts","../../../projects/bx-rest/src/request/task/item/userfield.ts","../../../projects/bx-rest/src/request/task/item.ts","../../../projects/bx-rest/src/request/task.ts","../../../projects/bx-rest/src/request/tasks/task/result.ts","../../../projects/bx-rest/src/request/tasks/task.ts","../../../projects/bx-rest/src/request/tasks.ts","../../../projects/bx-rest/src/request/disk/file.ts","../../../projects/bx-rest/src/request/disk/folder.ts","../../../projects/bx-rest/src/request/disk/attachedObject.ts","../../../projects/bx-rest/src/request/disk.ts","../../../projects/bx-rest/src/request/bizproc/workflow/instance.ts","../../../projects/bx-rest/src/request/bizproc/workflow/template.ts","../../../projects/bx-rest/src/services/http/httpNavvy.ts","../../../projects/bx-rest/src/request/bizproc/workflow.ts","../../../projects/bx-rest/src/request/bizproc/activity.ts","../../../projects/bx-rest/src/request/bizproc/task.ts","../../../projects/bx-rest/src/request/bizproc/robot.ts","../../../projects/bx-rest/src/request/bizproc/event.ts","../../../projects/bx-rest/src/request/bizproc.ts","../../../projects/bx-rest/src/request/log/blogpost.ts","../../../projects/bx-rest/src/request/log/blogcomment.ts","../../../projects/bx-rest/src/request/log.ts","../../../projects/bx-rest/src/request/sonet_group.ts","../../../projects/bx-rest/src/request/server.ts","../../../projects/bx-rest/src/request/department.ts","../../../projects/bx-rest/src/request/app.ts","../../../projects/bx-rest/src/request/socialnetwork/api/contentview.ts","../../../projects/bx-rest/src/request/socialnetwork/api/livefeed/blogpost/important.ts","../../../projects/bx-rest/src/request/socialnetwork/api/livefeed/blogpost.ts","../../../projects/bx-rest/src/request/socialnetwork/api/livefeed.ts","../../../projects/bx-rest/src/request/socialnetwork/api.ts","../../../projects/bx-rest/src/request/socialnetwork.ts","../../../projects/bx-rest/src/request/pull/application/config.ts","../../../projects/bx-rest/src/request/pull/config.ts","../../../projects/bx-rest/src/request/pull/channel/public.ts","../../../projects/bx-rest/src/request/pull.ts","../../../projects/bx-rest/src/rest/base.ts","../../../projects/bx-rest/src/services/navvy/navvy-alternative-pagination-navigation.ts","../../../projects/bx-rest/src/services/navvy/navvy-pag-nav-with-useless-key.ts","../../../projects/bx-rest/src/services/navvy/navvy-pag-nav-tasks.ts","../../../projects/bx-rest/src/services/navvy/navvy-pag.ts","../../../projects/bx-rest/src/services/navvy/navvy-support.ts","../../../projects/bx-rest/src/services/navvy.ts","../../../projects/bx-rest/src/request-navvy/user/userfield.ts","../../../projects/bx-rest/src/map/user.ts","../../../projects/bx-rest/src/request-navvy/user.ts","../../../projects/bx-rest/src/map/lists/element.ts","../../../projects/bx-rest/src/request-navvy/lists/element.ts","../../../projects/bx-rest/src/map/lists/field.ts","../../../projects/bx-rest/src/map/lists.ts","../../../projects/bx-rest/src/request-navvy/lists/field.ts","../../../projects/bx-rest/src/request-navvy/lists.ts","../../../projects/bx-rest/src/map/task/elapseditem.ts","../../../projects/bx-rest/src/map/tasks/task/result.ts","../../../projects/bx-rest/src/map/tasks/task.ts","../../../projects/bx-rest/src/request-navvy/tasks/task/result.ts","../../../projects/bx-rest/src/request-navvy/tasks/task.ts","../../../projects/bx-rest/src/request-navvy/tasks.ts","../../../projects/bx-rest/src/request-navvy/task/delegate/elapseditem.ts","../../../projects/bx-rest/src/request-navvy/task/operation/elapseditem.ts","../../../projects/bx-rest/src/request-navvy/task/elapseditem.ts","../../../projects/bx-rest/src/map/task/commentitem.ts","../../../projects/bx-rest/src/request-navvy/task/commentitem.ts","../../../projects/bx-rest/src/map/task/planner.ts","../../../projects/bx-rest/src/request-navvy/task/planner.ts","../../../projects/bx-rest/src/map/task/item/userfield.ts","../../../projects/bx-rest/src/request-navvy/task/item/userfield.ts","../../../projects/bx-rest/src/request-navvy/task/item.ts","../../../projects/bx-rest/src/request-navvy/task.ts","../../../projects/bx-rest/src/map/disk/file.ts","../../../projects/bx-rest/src/request-navvy/disk/file.ts","../../../projects/bx-rest/src/map/disk/base.ts","../../../projects/bx-rest/src/map/disk/folder.ts","../../../projects/bx-rest/src/request-navvy/disk/folder.ts","../../../projects/bx-rest/src/map/disk/storage.ts","../../../projects/bx-rest/src/request/disk/storage.ts","../../../projects/bx-rest/src/request-navvy/disk/operation/storage.ts","../../../projects/bx-rest/src/request-navvy/disk/storage.ts","../../../projects/bx-rest/src/request-navvy/disk/operation.ts","../../../projects/bx-rest/src/map/disk/attachedObject.ts","../../../projects/bx-rest/src/request-navvy/disk/attachedObject.ts","../../../projects/bx-rest/src/request-navvy/disk.ts","../../../projects/bx-rest/src/request-navvy/bizproc/task.ts","../../../projects/bx-rest/src/request-navvy/bizproc/workflow.ts","../../../projects/bx-rest/src/request-navvy/bizproc.ts","../../../projects/bx-rest/src/map/log/blogpost.ts","../../../projects/bx-rest/src/request-navvy/log/blogpost.ts","../../../projects/bx-rest/src/request-navvy/log/blogcomment.ts","../../../projects/bx-rest/src/request-navvy/log.ts","../../../projects/bx-rest/src/map/calendar/event.ts","../../../projects/bx-rest/src/request-navvy/calendar/event.ts","../../../projects/bx-rest/src/map/calendar/section.ts","../../../projects/bx-rest/src/request-navvy/calendar/section.ts","../../../projects/bx-rest/src/map/calendar/user/settings.ts","../../../projects/bx-rest/src/request-navvy/calendar/user/settings.ts","../../../projects/bx-rest/src/request-navvy/calendar/user.ts","../../../projects/bx-rest/src/request-navvy/calendar.ts","../../../projects/bx-rest/src/map/sonet_group.ts","../../../projects/bx-rest/src/request-navvy/sonet_group.ts","../../../projects/bx-rest/src/map/server.ts","../../../projects/bx-rest/src/request-navvy/server.ts","../../../projects/bx-rest/src/map/department.ts","../../../projects/bx-rest/src/request-navvy/department.ts","../../../projects/bx-rest/src/request-navvy/im/chat/user.ts","../../../projects/bx-rest/src/request-navvy/im/chat.ts","../../../projects/bx-rest/src/request-navvy/im/counters.ts","../../../projects/bx-rest/src/map/im/gialog/users.ts","../../../projects/bx-rest/src/request-navvy/im/dialog/users.ts","../../../projects/bx-rest/src/map/im/dialog.ts","../../../projects/bx-rest/src/map/im/gialog/messages.ts","../../../projects/bx-rest/src/request-navvy/im/dialog/messages.ts","../../../projects/bx-rest/src/request-navvy/im/dialog/read.ts","../../../projects/bx-rest/src/request-navvy/im/dialog.ts","../../../projects/bx-rest/src/functions/errorHandler.ts","../../../projects/bx-rest/src/map/im/recent.ts","../../../projects/bx-rest/src/request-navvy/im/recent.ts","../../../projects/bx-rest/src/map/im/user.ts","../../../projects/bx-rest/src/request-navvy/im/user/status/idle.ts","../../../projects/bx-rest/src/request-navvy/im/user/status.ts","../../../projects/bx-rest/src/map/im/user/list.ts","../../../projects/bx-rest/src/request-navvy/im/user/list.ts","../../../projects/bx-rest/src/request-navvy/im/user.ts","../../../projects/bx-rest/src/request-navvy/im.ts","../../../projects/bx-rest/src/map/app.ts","../../../projects/bx-rest/src/request-navvy/app.ts","../../../projects/bx-rest/src/map/timeman.ts","../../../projects/bx-rest/src/functions/toLocalAtom.ts","../../../projects/bx-rest/src/request-navvy/timeman.ts","../../../projects/bx-rest/src/request-navvy/socialnetwork/api/contentview.ts","../../../projects/bx-rest/src/map/socialnetwork/api/livefeed/blogpost/important.ts","../../../projects/bx-rest/src/request-navvy/socialnetwork/api/livefeed/blogpost/important.ts","../../../projects/bx-rest/src/request-navvy/socialnetwork/api/livefeed/blogpost.ts","../../../projects/bx-rest/src/request-navvy/socialnetwork/api/livefeed.ts","../../../projects/bx-rest/src/request-navvy/socialnetwork/api.ts","../../../projects/bx-rest/src/request-navvy/socialnetwork.ts","../../../projects/bx-rest/src/map/pull/application/config.ts","../../../projects/bx-rest/src/map/pull.ts","../../../projects/bx-rest/src/map/channel/public.ts","../../../projects/bx-rest/src/request-navvy/pull/config.ts","../../../projects/bx-rest/src/request-navvy/pull/channel/public.ts","../../../projects/bx-rest/src/request-navvy/pull/application/config.ts","../../../projects/bx-rest/src/request-navvy/pull.ts","../../../projects/bx-rest/src/map/crm/lead.ts","../../../projects/bx-rest/src/map/crm/deal.ts","../../../projects/bx-rest/src/map/crm/contact.ts","../../../projects/bx-rest/src/map/crm/company.ts","../../../projects/bx-rest/src/map/crm/quote.ts","../../../projects/bx-rest/src/request-navvy/crm/lead.ts","../../../projects/bx-rest/src/request-navvy/crm/deal.ts","../../../projects/bx-rest/src/request-navvy/crm/contact.ts","../../../projects/bx-rest/src/request-navvy/crm/company.ts","../../../projects/bx-rest/src/request-navvy/crm/quote/productrows.ts","../../../projects/bx-rest/src/request-navvy/crm/quote/userfield.ts","../../../projects/bx-rest/src/request-navvy/crm/quote/index.ts","../../../projects/bx-rest/src/request-navvy/crm/enum/settings.ts","../../../projects/bx-rest/src/request-navvy/crm/enum/index.ts","../../../projects/bx-rest/src/request-navvy/crm/multifield.ts","../../../projects/bx-rest/src/request-navvy/crm.ts","../../../projects/bx-rest/src/rest/navvy.ts","../../../projects/bx-rest/src/map/calendar/user.ts","../../../projects/bx-rest/src/map/calendar.ts","../../../projects/bx-rest/src/map/log.ts","../../../projects/bx-rest/src/map/task/stages.ts","../../../projects/bx-rest/src/map/task.ts","../../../projects/bx-rest/src/map/tasks.ts","../../../projects/bx-rest/src/rest/map.ts","../../../projects/bx-rest/src/public-api.ts","../../../projects/bx-rest/src/bx-rest.ts"],"sourcesContent":["import { iBXRestSettings } from './typification/settings'\r\n\r\nexport const DEFAULT_BX_REST_SETTINGS: iBXRestSettings = {\r\n auth: {\r\n source: 'cookies',\r\n key: 'auth'\r\n },\r\n urls: {\r\n source: 'localStorage',\r\n key: '',\r\n additional_part: 'rest'\r\n }\r\n}\r\n\r\nexport const BXRestSettings = {\r\n date: {\r\n auth: {\r\n source: 'cookies',\r\n key: 'auth',\r\n },\r\n urls: {\r\n source: 'localStorage',\r\n key: '',\r\n additional_part: 'rest',\r\n },\r\n } as iBXRestSettings,\r\n\r\n update(newSettings: Partial<iBXRestSettings>): void {\r\n this.date = { ...this.date, ...newSettings }\r\n },\r\n}","import { iBXRestAnswer, iBXRestAnswerSuccess } from '../typification/rest/base/answer'\r\n\r\nexport function BXRestMapResult<T>(v: iBXRestAnswer<T>): NonNullable<T>\r\nexport function BXRestMapResult(v: undefined): undefined\r\nexport function BXRestMapResult<T>(v: iBXRestAnswer<T> | undefined): T | undefined\r\nexport function BXRestMapResult<T>(v: iBXRestAnswer<T> | undefined) {\r\n if (v && (instanceOfiBXRestAnswerSuccess(v))) {\r\n return v.result\r\n }\r\n return undefined\r\n}\r\nexport function instanceOfiBXRestAnswerSuccess<T>(object: any): object is iBXRestAnswerSuccess<T> {\r\n return 'result' in object\r\n}","import { DateTime, DateTimeOptions } from 'luxon'\r\n\r\n/**\r\n * Преобразует значение в строку\r\n *\r\n * @param val\r\n * @param throwError\r\n */\r\nexport function toStr(val: any, throwError = false): string {\r\n if (val === null || val === undefined) {\r\n if (throwError) {\r\n throw new Error(`Invalid value: ${val} cannot be converted to string`)\r\n }\r\n return ''\r\n }\r\n return String(val)\r\n}\r\n\r\n/**\r\n * Преобразует значение в число\r\n */\r\nexport function toNum(val: any, throwError = true, defValue = 0): number {\r\n const result = Number(val)\r\n\r\n if (isNaN(result)) {\r\n const error = new ToNumError(val)\r\n\r\n if (throwError) throw error\r\n\r\n // Если ошибка не пробрасывается — просто логируем\r\n console.error(error.toString())\r\n return defValue\r\n }\r\n\r\n return result\r\n}\r\n\r\n/**\r\n * Кастомный тип ошибки для числовых преобразований\r\n */\r\nexport class ToNumError extends Error {\r\n constructor(public readonly value: any) {\r\n const valueType = typeof value\r\n const formattedValue =\r\n valueType === 'object' ? JSON.stringify(value) : String(value)\r\n const message = `Invalid value passed to toNum(): ${formattedValue} (type: ${valueType})`\r\n super(message)\r\n this.name = 'ToNumError'\r\n\r\n // сохраняем стек вызова (отфильтровав сам конструктор)\r\n if (this.stack) {\r\n const stackLines = this.stack.split('\\n')\r\n // Удаляем строку конструктора (чтобы стек начинался с места вызова toNum)\r\n this.stack = [stackLines[0], ...stackLines.slice(2)].join('\\n')\r\n }\r\n }\r\n\r\n override toString(): string {\r\n return [\r\n `❌ [${this.name}] ${this.message}`,\r\n this.stack ? ` Stack trace:\\n${this.stack}` : '',\r\n ].join('\\n')\r\n }\r\n}\r\n\r\n/**\r\n * Преобразует значение в дату\r\n */\r\nexport function toDate(val: number | string | Date, format?: string, opt?: DateTimeOptions, throwError = true): Date {\r\n if (val instanceof Date) {\r\n return val\r\n } else if (typeof val === 'string') {\r\n if (format) {\r\n if (opt) {\r\n return DateTime.fromFormat(val, format, opt).toJSDate()\r\n }\r\n return DateTime.fromFormat(val, format).toJSDate()\r\n } else {\r\n return new Date(val)\r\n }\r\n } else if (typeof val === 'number') {\r\n return new Date(val)\r\n }\r\n\r\n if (throwError) {\r\n console.error('Wrong date format', val, format)\r\n throw new Error('Wrong date format')\r\n }\r\n\r\n return new Date()\r\n}\r\n\r\n/**\r\n * Преобразует дату в строку с учетом временной зоны\r\n *\r\n * @param date\r\n * @param throwError\r\n */\r\nexport function toISOStringWithTimezone(date: Date, throwError = true): string {\r\n if (!(date instanceof Date)) {\r\n if (throwError) throw new Error('Invalid value: not a valid Date object')\r\n return ''\r\n }\r\n\r\n const tzOffset = -date.getTimezoneOffset()\r\n const diff = tzOffset >= 0 ? '+' : '-'\r\n const pad = (n: number) => `${Math.floor(Math.abs(n))}`.padStart(2, '0')\r\n return date.getFullYear() +\r\n '-' + pad(date.getMonth() + 1) +\r\n '-' + pad(date.getDate()) +\r\n 'T' + pad(date.getHours()) +\r\n ':' + pad(date.getMinutes()) +\r\n ':' + pad(date.getSeconds()) +\r\n diff + pad(tzOffset / 60) +\r\n ':' + pad(tzOffset % 60)\r\n}\r\n\r\n/**\r\n * Преобразует значение в булево значение\r\n *\r\n * @param val\r\n * @param throwError\r\n */\r\nexport function toBool(val: any, throwError = true): boolean {\r\n switch (typeof val) {\r\n case 'string':\r\n val = val.toLowerCase()\r\n if (val === 'n' || val === 'y') { // битриксовые понятия о bool\r\n return val === 'y'\r\n } else if (val === 'true' || val === 'false') { // битриксовые понятия о bool\r\n return val === 'true'\r\n } else {\r\n if (throwError) throw new Error('Invalid value: cannot be converted to boolean')\r\n return false\r\n }\r\n default:\r\n return Boolean(val)\r\n }\r\n}\r\n\r\n/**\r\n * Преобразует булево значение в 'Y' или 'N'\r\n *\r\n * @param val\r\n */\r\nexport function toBXYorN(val: boolean): string {\r\n return val ? 'Y' : 'N'\r\n}\r\n\r\nexport function getBaseUrlHttps(url: string, component = false): string {\r\n if (component) {\r\n return encodeURI(cropUrl(url) + '/')\r\n } else {\r\n return encodeURI('https://' + cropUrl(url) + '/')\r\n }\r\n}\r\n\r\n/**\r\n * Обрезает URL (удаляет протокол)\r\n *\r\n * @param url\r\n */\r\nexport function cropUrl(url: string): string {\r\n url = url ? url.replace('https://', '') : ''\r\n url = url ? url.replace('http://', '') : ''\r\n url = url ? url.replace('https:', '') : ''\r\n url = url ? url.replace('http:', '') : ''\r\n return url\r\n}\r\n\r\n/**\r\n * Преобразует файл в base64\r\n *\r\n * @param file\r\n */\r\nexport function getBase64File(file: File): Promise<string> {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader()\r\n reader.readAsDataURL(file)\r\n reader.onload = () => resolve(reader.result as string)\r\n reader.onerror = error => reject(error)\r\n })\r\n}\r\n\r\n/**\r\n * Получить файл в формате base64 с разбивкой на заголовок и данные\r\n *\r\n * @param file\r\n */\r\nexport async function getBase64FileLikeStr(file: File): Promise<{\r\n header: string,\r\n val: string\r\n} | undefined> {\r\n const result = await getBase64File(file)\r\n if (typeof result === 'string') {\r\n const split = result.split(',')\r\n return {\r\n header: split[0],\r\n val: split[1]\r\n }\r\n }\r\n return undefined\r\n}\r\n\r\nexport function prepareBaseAddress(url: string, add: string | undefined = '') {\r\n // if (url.search('https://') !== 0 && url.search('http://')) {\r\n // url = 'https://' + url\r\n // }\r\n\r\n if (add && add.length > 0) {\r\n if (url.lastIndexOf('/') !== (url.length - 1)) {\r\n url = url + '/'\r\n }\r\n\r\n url = url + add\r\n }\r\n\r\n if (url.lastIndexOf('/') !== (url.length - 1)) {\r\n url = url + '/'\r\n }\r\n\r\n return url\r\n}","import { iBXRestProfile, iBXRestProfileHttp } from '../typification/rest/profile'\r\nimport { toNum } from '../services/base'\r\n\r\nexport class BXRestMap {\r\n static profile(user: iBXRestProfileHttp | undefined): iBXRestProfile | undefined {\r\n return (user) ? { ...user, ...{ID: toNum(user.ID)}} as iBXRestProfile : undefined\r\n }\r\n}","export default class CookiesServices {\r\n\r\n static get(name: string): string {\r\n const results = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)')\r\n if (results)\r\n return results[2]\r\n else\r\n return ''\r\n }\r\n\r\n static set(name: string, value: string, age = 0) {\r\n let string = name + '=' + value + ';'\r\n if(age) {\r\n string += ' max-age=' + age\r\n }\r\n string += '; SameSite=None; Secure'\r\n document.cookie = string\r\n }\r\n\r\n static setObj(name: string, value: any, age = 0) {\r\n let string = name + '=' + JSON.stringify(value) + ';'\r\n if(age) {\r\n string += ' max-age=' + age\r\n }\r\n string += '; SameSite=None; Secure'\r\n document.cookie = string\r\n }\r\n\r\n static getObj<T>(name: string): T | false {\r\n const results = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)')\r\n if (results) {\r\n return JSON.parse(results[2]) as T\r\n }\r\n\r\n return false\r\n }\r\n}\r\n","export class LocalStorageServices {\r\n\r\n static get(name: string): any {\r\n return localStorage.getItem(name)\r\n }\r\n\r\n static getObj<T>(name: string): T | null {\r\n const localData = localStorage.getItem(name)\r\n return (localData) ? JSON.parse(localData) as T : null\r\n }\r\n\r\n static set(name: string, value: string): void {\r\n localStorage.setItem(name, value)\r\n }\r\n\r\n static setObj(name: string, value: any): void {\r\n let get = this.get(name)\r\n if(get && typeof get === 'object'){\r\n localStorage.setItem(\r\n name,\r\n JSON.stringify(\r\n Object.assign(\r\n get,\r\n value\r\n )\r\n )\r\n )\r\n } else {\r\n localStorage.setItem(name, JSON.stringify(value))\r\n }\r\n }\r\n\r\n static del(name: string): void {\r\n localStorage.removeItem(name)\r\n }\r\n\r\n}\r\n","export class SessionStorage {\r\n\r\n static setItem(name: string, value: any){\r\n sessionStorage.setItem(name, JSON.stringify(value))\r\n }\r\n\r\n static getItem<T>(name: string){\r\n const res = sessionStorage.getItem(name)\r\n if(res){\r\n return JSON.parse(res) as T\r\n }\r\n return undefined\r\n }\r\n}\r\n","import Cookies from '../../services/vanilla/сookies'\nimport { Observable, of, Subscription } from 'rxjs'\nimport { prepareBaseAddress } from '../base'\nimport { LocalStorageServices as LocalStorage } from '../../services/vanilla/localStorage'\nimport { BXRestSettings, DEFAULT_BX_REST_SETTINGS } from '../../settings'\nimport { iBXRestAuth } from '../../typification/auth/save'\nimport { SessionStorage } from '../vanilla/sessionStorage'\n\ntype IKeyAuth = 'sessid' | 'auth' | string\ntype StorageKind = 'localStorage' | 'sessionStorage'\n\nexport class SessionKeyError extends Error {\n constructor(message: string) {\n super(message)\n this.name = 'SessionKeyError'\n }\n}\n\nexport class SessionKeyServices {\n\n authHave = false\n authData: iBXRestAuth | undefined\n subscribe = {\n authData: new Subscription()\n }\n\n private readonly BX_REST_SETTINGS = BXRestSettings.date\n\n constructor(\n ) {\n const authData = this.getSessionItem<iBXRestAuth>(this.constructor.name)\n if (this.getAuth().length > 0) {\n this.authHave = true\n }\n\n this.authData = authData\n\n }\n\n subscribeAll() {\n this.subscribe.authData.unsubscribe()\n }\n\n getAuth(): string {\n switch (this.BX_REST_SETTINGS.auth.key) {\n case 'auth':\n return this.getCookie('auth')\n default: {\n const bxSessid = this.getBxSessid()\n if (bxSessid) {\n return bxSessid\n } else if (this.getSessid().length > 0) {\n const str = this.getSessid()\n return (str) ? str : ''\n } else {\n return this.getCookie('auth')\n }\n }\n }\n }\n\n getKeyAuth(): IKeyAuth {\n if (this.BX_REST_SETTINGS.auth.key.length) {\n return this.BX_REST_SETTINGS.auth.key\n } else {\n return 'auth'\n }\n }\n\n getSessid() {\n const check = this.getSearchParam('sessid')\n if (check) {\n this.setLocalStorage('sessid', check)\n return check\n } else if (this.getLocalStorage('sessid')) {\n return this.getLocalStorage('sessid') || ''\n }\n return ''\n }\n\n getAuthParams(): string | undefined {\n const source = this.BX_REST_SETTINGS.auth.source\n\n if (typeof source === 'function') {\n try {\n return this.normalizeValue(source())\n } catch {\n return undefined\n }\n }\n\n switch (source) {\n case 'cookies':\n return this.normalizeValue(this.getAuth())\n case 'localStorage':\n return this.normalizeValue(this.getLocalStorage(this.BX_REST_SETTINGS.auth.key))\n case 'off':\n return undefined\n default:\n return this.normalizeValue((this.authData) ? this.authData.access_token : undefined)\n }\n }\n\n getCheckAuthParamsIsOn(){\n return this.BX_REST_SETTINGS.auth.source !== 'off'\n }\n\n getAuthError(operation = 'request'): SessionKeyError {\n const source = this.BX_REST_SETTINGS.auth.source\n const key = this.getKeyAuth()\n\n if (!this.getCheckAuthParamsIsOn()) {\n return new SessionKeyError(\n `Authorization is disabled for ${operation}: BXRestSettings.auth.source is \"off\".`\n )\n }\n\n const sourceName = (typeof source === 'function') ? 'custom function' : source\n const checked = this.getAuthCheckedPlaces()\n\n return new SessionKeyError([\n `Authorization token was not found for ${operation}.`,\n `auth.source: ${sourceName}.`,\n `auth.key: ${key}.`,\n `Checked: ${checked.join(', ')}.`,\n 'Set BXRestSettings.auth.source/key correctly or save a valid token before making the request.'\n ].join(' '))\n }\n\n getBaseUrl(): Observable<string | undefined> {\n const additional_part = (this.BX_REST_SETTINGS.urls.additional_part || this.BX_REST_SETTINGS.urls.additional_part === '')\n ? this.BX_REST_SETTINGS.urls.additional_part\n : DEFAULT_BX_REST_SETTINGS.urls.additional_part\n\n if(this.BX_REST_SETTINGS.urls.source === 'string'){\n return of(prepareBaseAddress(this.BX_REST_SETTINGS.urls.key, additional_part))\n }\n\n const str = this.getLocalStorage(this.BX_REST_SETTINGS.urls.key)\n\n return of(prepareBaseAddress((str) ? str : '', additional_part))\n }\n\n getBaseUrlError(operation = 'request'): SessionKeyError {\n return new SessionKeyError([\n `Base URL was not resolved for ${operation}.`,\n `urls.source: ${this.BX_REST_SETTINGS.urls.source}.`,\n `urls.key: ${this.BX_REST_SETTINGS.urls.key || '(empty)'}.`,\n 'Set BXRestSettings.urls.key to a URL or to a localStorage key containing the portal URL.'\n ].join(' '))\n }\n\n private getAuthCheckedPlaces(): string[] {\n const source = this.BX_REST_SETTINGS.auth.source\n\n if (typeof source === 'function') {\n return ['BXRestSettings.auth.source()']\n }\n\n switch (source) {\n case 'cookies':\n return this.BX_REST_SETTINGS.auth.key === 'auth'\n ? ['cookie \"auth\"']\n : ['window.BX.bitrix_sessid()', 'URL query \"sessid\"', 'localStorage \"sessid\"', 'cookie \"auth\"']\n case 'localStorage':\n return [`localStorage \"${this.BX_REST_SETTINGS.auth.key}\"`]\n case 'off':\n return ['authorization lookup skipped']\n default:\n return [`sessionStorage \"${this.constructor.name}\" access_token`]\n }\n }\n\n private getBxSessid(): string {\n const bx = (typeof window !== 'undefined') ? (window as any).BX : undefined\n\n if (!bx || typeof bx.bitrix_sessid !== 'function') {\n return ''\n }\n\n try {\n return this.normalizeValue(bx.bitrix_sessid()) || ''\n } catch {\n return ''\n }\n }\n\n private getSearchParam(name: string): string | undefined {\n if (typeof document === 'undefined') {\n return undefined\n }\n\n try {\n return new URLSearchParams(document.location.search).get(name) || undefined\n } catch {\n return undefined\n }\n }\n\n private getCookie(name: string): string {\n if (typeof document === 'undefined') {\n return ''\n }\n\n try {\n return Cookies.get(name)\n } catch {\n return ''\n }\n }\n\n private getLocalStorage(name: string): string | null {\n return this.getStorageItem('localStorage', name)\n }\n\n private setLocalStorage(name: string, value: string): void {\n if (typeof localStorage === 'undefined') {\n return\n }\n\n try {\n LocalStorage.set(name, value)\n } catch {\n return\n }\n }\n\n private getSessionItem<T>(name: string): T | undefined {\n if (typeof sessionStorage === 'undefined') {\n return undefined\n }\n\n try {\n return SessionStorage.getItem<T>(name)\n } catch {\n return undefined\n }\n }\n\n private getStorageItem(kind: StorageKind, name: string): string | null {\n const storage = kind === 'localStorage'\n ? (typeof localStorage !== 'undefined' ? localStorage : undefined)\n : (typeof sessionStorage !== 'undefined' ? sessionStorage : undefined)\n\n if (!storage) {\n return null\n }\n\n try {\n return storage.getItem(name)\n } catch {\n return null\n }\n }\n\n private normalizeValue(value: string | null | undefined): string | undefined {\n return (value && value.length > 0) ? value : undefined\n }\n}\n","import { iHttpParamSettings } from '../../typification/rest/settings'\r\n\r\nexport class HttpData {\r\n\r\n defSettings: iHttpParamSettings = {\r\n timeZone: {\r\n calc: true,\r\n levelOut: false\r\n }\r\n }\r\n\r\n getHttpParamsPost(\r\n obj: any,\r\n sendHttpParams: FormData = new FormData(),\r\n nesting: string[] = [],\r\n settings = this.defSettings\r\n ): any {\r\n if (obj instanceof Blob) {\r\n let first = nesting[0]\r\n let setKey = (nesting.length > 1)\r\n ? first + '[' + nesting.slice(1).join('][') + ']'\r\n : first\r\n sendHttpParams.set(setKey, obj)\r\n return sendHttpParams\r\n } else if (obj instanceof Date) {\r\n let first = nesting[0]\r\n let tzoffset = (settings.timeZone.calc) ? obj.getTimezoneOffset() * 60000 : 0 // вычисляем влияние часового пояса\r\n let levelOut = (settings.timeZone.levelOut) ? obj.getTimezoneOffset() * 60000 : 0 // вычисляем влияние часового пояса\r\n let setKey = (nesting.length > 1)\r\n ? first + '[' + nesting.slice(1).join('][') + ']'\r\n : first\r\n sendHttpParams.set(setKey, (new Date(obj.valueOf() + tzoffset - levelOut)).toISOString())\r\n return sendHttpParams\r\n } else {\r\n for (const key in obj) {\r\n let setKey = ''\r\n if (nesting.length) {\r\n let first = nesting[0]\r\n setKey = (nesting.length > 1)\r\n ? first + '[' + nesting.slice(1).join('][') + '][' + key + ']'\r\n : first + '[' + key + ']'\r\n } else {\r\n setKey = key\r\n }\r\n switch (typeof obj[key]) {\r\n case 'string':\r\n sendHttpParams.set(setKey, obj[key])\r\n break\r\n case 'symbol':\r\n case 'number':\r\n case 'bigint':\r\n case 'boolean':\r\n sendHttpParams.set(setKey, String(obj[key]))\r\n break\r\n case 'object':\r\n nesting.push(key)\r\n sendHttpParams = this.getHttpParamsPost(\r\n obj[key],\r\n sendHttpParams,\r\n nesting,\r\n settings\r\n )\r\n nesting.pop()\r\n break\r\n case 'function':\r\n case 'undefined':\r\n default:\r\n console.error('You sent something wrong', obj[key], typeof obj[key], typeof obj)\r\n }\r\n }\r\n }\r\n return sendHttpParams\r\n }\r\n\r\n sliceArrayIntoChunks(arr: any[], chunkSize: number) {\r\n const res = []\r\n for (let i = 0; i < arr.length; i += chunkSize) {\r\n const chunk = arr.slice(i, i + chunkSize)\r\n res.push(chunk)\r\n }\r\n return res\r\n }\r\n\r\n removingMultipleSlashes(str: string) {\r\n return str.replace(/\\/{2,}/g, '/')\r\n }\r\n}\r\n","import { iHttpParamSettings } from '../../../typification/rest/settings'\r\nimport { Observable } from 'rxjs'\r\nimport { HttpData } from '../HttpData'\r\n\r\nexport abstract class BaseHttp extends HttpData {\r\n\r\n abstract httpGet<T>(\r\n url: string,\r\n params: any,\r\n settings: iHttpParamSettings\r\n ): Observable<T | undefined>\r\n\r\n abstract httpPost<T>(url: string,\r\n params: any ,\r\n settings: iHttpParamSettings\r\n ): Observable<T | undefined>\r\n}\r\n","import { Observable, from, throwError } from 'rxjs'\nimport { switchMap } from 'rxjs/operators'\nimport axios, { AxiosInstance } from 'axios'\nimport { SessionKeyServices } from '../../services/http/sessionKey'\nimport clone from 'just-clone'\nimport { iHttpParamSettings } from '../../typification/rest/settings'\nimport { BaseHttp } from './base/base'\nimport { prepareBaseAddress } from '../base'\n\nexport class HttpServices extends BaseHttp {\n\n protected readonly axiosInstance: AxiosInstance\n public readonly session = new SessionKeyServices()\n\n constructor() {\n super()\n this.axiosInstance = axios.create()\n }\n\n override httpPost<T>(\n url: string,\n params: any = {},\n settings: iHttpParamSettings = this.defSettings\n ): Observable<T | undefined> {\n const auth = this.session.getAuthParams()\n const checkIsOn = this.session.getCheckAuthParamsIsOn()\n const paramsClone = clone(params)\n\n if (checkIsOn) {\n if (!auth) {\n return throwError(() => this.session.getAuthError('post'))\n }\n\n paramsClone[this.session.getKeyAuth()] = auth\n }\n\n return this.session.getBaseUrl().pipe(\n switchMap((baseUrl) => {\n if (!baseUrl) {\n return throwError(() => this.session.getBaseUrlError('post'))\n }\n\n const fullUrl = prepareBaseAddress(baseUrl) + url\n if (this.session.getKeyAuth() === 'sessid') {\n const body = this.getHttpParamsPost(paramsClone, new FormData(), [], settings)\n const urlEncodedBody = new URLSearchParams()\n\n Object.keys(body).forEach((key) => {\n const value = paramsClone[key]\n\n if (typeof value === 'object' && value !== null) {\n for (const subKey in value) {\n if (Object.prototype.hasOwnProperty.call(value, subKey)) {\n urlEncodedBody.append(`${key}[${subKey}]`, value[subKey])\n }\n }\n } else {\n urlEncodedBody.append(key, value)\n }\n })\n\n return from(\n this.axiosInstance.post<T>(fullUrl, urlEncodedBody.toString(), {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n }).then((response) => response.data)\n )\n }\n\n const body = this.getHttpParamsPost(paramsClone, new FormData(), [], settings)\n return from(\n this.axiosInstance.post<T>(fullUrl, body).then((response) => response.data)\n )\n })\n )\n }\n\n override httpGet<T>(url: string, params: any = {}): Observable<T | undefined> {\n const auth = this.session.getAuthParams()\n const checkIsOn = this.session.getCheckAuthParamsIsOn()\n const paramsClone = clone(params)\n\n if (checkIsOn) {\n if (!auth) {\n return throwError(() => this.session.getAuthError('get'))\n }\n\n paramsClone[this.session.getKeyAuth()] = auth\n }\n\n return this.session.getBaseUrl().pipe(\n switchMap((baseUrl) => {\n if (!baseUrl) {\n return throwError(() => this.session.getBaseUrlError('get'))\n }\n\n const fullUrl = prepareBaseAddress(baseUrl) + url\n const queryString = new URLSearchParams(paramsClone).toString()\n const finalUrl = `${fullUrl}?${queryString}`\n\n return from(\n this.axiosInstance.get<T>(finalUrl).then((response) => response.data)\n )\n })\n )\n }\n}\n","import { Observable, throwError, forkJoin, from } from 'rxjs'\r\nimport clone from 'just-clone'\r\nimport { HttpServices } from './http'\r\nimport {\r\n iBatchRequestAnswer, iBatchRequestParam, iBatchRequestParamArr, iBatchRequestParamHttp, keyBatch,\r\n} from '../../typification/rest/batch/batchRequestParam'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\nimport flatten from 'just-flatten-it'\r\nimport { instanceOfiBXRestAnswerSuccess } from '../../functions/mapResult'\r\nimport { switchMap } from 'rxjs/operators'\nimport * as qs from 'qs'\nimport { prepareBaseAddress } from '../base'\n\r\nexport class HttpBXServices extends HttpServices {\r\n\r\n /**\r\n * Это пиздец а не метод\r\n * TODO: Удалить данный метод после реализации его в разделе Navvy\r\n * @param param\r\n */\r\n branch<T, A>(param: iBatchRequestParamArr<T> | iBatchRequestParam<T>[])\r\n : Observable<iBatchRequestAnswer<A>[] | undefined> {\r\n let prepareParam = Object.entries<string>(this.prepareBatch<T>(param))\r\n const size = 50 // больше не отдаст\r\n let subarray = [] //массив в который будет выведен результат.\r\n for (let i = 0; i < Math.ceil(prepareParam.length / size); i++) {\r\n subarray[i] = prepareParam.slice((i * size), (i * size) + size)\r\n }\r\n\r\n return forkJoin(\r\n subarray.map(i => {\r\n return this.httpPost('batch.json', {\r\n halt: 0,\r\n cmd: Object.assign({}, ...i.map(x => {\r\n return {[x[0]]: x[1]}\r\n }))\r\n })\r\n })\r\n ) as Observable<iBatchRequestAnswer<A>[]>\r\n }\r\n\r\n prepareBatch<T>(param: iBatchRequestParamArr<T> | iBatchRequestParam<T>[]): iBatchRequestParamHttp {\r\n let res: iBatchRequestParamHttp = Object.keys(param).reduce(\r\n (obj, key) => {\r\n obj[key] = ''\r\n return obj\r\n },\r\n {} as iBatchRequestParamHttp\r\n )\r\n for (let key in param) {\r\n if (typeof key === 'string' || typeof key === 'number' && param[key].param) {\r\n res[key] = param[key].name + '?' + qs.stringify(param[key].param, {arrayFormat: 'brackets'})\r\n }\r\n }\r\n return res\r\n }\r\n\r\n mapBranchResult<T>(res: iBatchRequestAnswer<T>[]) {\r\n return Object.assign([], ...res.map(i =>\r\n (instanceOfiBXRestAnswerSuccess(i) && instanceOfiBXRestAnswerSuccess(i.result)) ? i.result.result : undefined)\r\n ) as Record<keyBatch, T>\r\n }\r\n\r\n mapBranchResultWithoutKey<T>(res: iBatchRequestAnswer<T>[]): T[] {\r\n return flatten<T>(Object.assign([], ...res.map(i =>\r\n (instanceOfiBXRestAnswerSuccess(i) && instanceOfiBXRestAnswerSuccess(i.result))\r\n ? i.result.result\r\n : undefined))\r\n )\r\n }\r\n\r\n /**\r\n * Основной метод для запросов\r\n *\r\n * @param name\r\n * @param params\r\n */\r\n post<T>(name: string[], params: any = {}) {\r\n return this.httpPost<iBXRestAnswer<T>>(this.getNameMethod(name), params)\r\n }\r\n\r\n /**\r\n * Второстепенный метод для запросов. По возможности лучше не использовать\r\n *\r\n * @param name\r\n * @param params\r\n */\r\n get<T>(name: string[], params: any = {}) {\r\n return this.httpGet<iBXRestAnswer<T>>(this.getNameMethod(name), params)\r\n }\r\n\r\n override httpPost<T>(url: string, params: any = {}): Observable<T | undefined> {\n const paramsClone = clone(params)\n const key = this.session.getKeyAuth()\n const auth = this.session.getAuthParams()\n const checkIsOn = this.session.getCheckAuthParamsIsOn()\n\n if (checkIsOn) {\n if (!auth) {\n return throwError(() => this.session.getAuthError('post'))\n }\n\n if (key !== 'OAuth2') {\n paramsClone[key] = auth\n }\n }\n\n return this.session.getBaseUrl().pipe(\n switchMap((baseUrl) => {\n if (!baseUrl) {\n return throwError(() => this.session.getBaseUrlError('post'))\n }\n\r\n const fullUrl = prepareBaseAddress(baseUrl) + url\r\n\r\n if (key === 'sessid') {\r\n // Преобразуем параметры в формат x-www-form-urlencoded\r\n const bodyString = this.serializeBitrixParams(paramsClone)\r\n return from(\r\n this.axiosInstance.post<T>(fullUrl, bodyString, {\r\n headers: {'Content-Type': 'application/x-www-form-urlencoded'},\r\n }).then((response) => response.data)\r\n )\r\n }\r\n\r\n return from(\r\n this.axiosInstance.post<T>(fullUrl, paramsClone,\r\n {\r\n withCredentials: key === 'OAuth2',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n }\r\n }\r\n ).then((response) => response.data)\r\n )\r\n })\r\n )\r\n }\r\n\r\n serializeBitrixParams(obj: any, prefix = ''): string {\r\n const pairs: string[] = []\r\n\r\n for (const key in obj) {\r\n if (!Object.prototype.hasOwnProperty.call(obj, key)) continue\r\n\r\n const value = obj[key]\r\n const prefixedKey = prefix ? `${prefix}[${key}]` : key\r\n\r\n if (value === undefined) {\r\n continue\r\n } else if (value === null) {\r\n pairs.push(`${encodeURIComponent(prefixedKey)}=`)\r\n } else if (value instanceof Date) {\r\n pairs.push(`${encodeURIComponent(prefixedKey)}=${encodeURIComponent(value.toISOString())}`)\r\n } else if (Array.isArray(value)) {\r\n value.forEach((item) => {\r\n if (item === undefined) return\r\n if (item === null) {\r\n pairs.push(`${encodeURIComponent(prefixedKey)}[]=`)\r\n } else if (item instanceof Date) {\r\n pairs.push(`${encodeURIComponent(prefixedKey)}[]=${encodeURIComponent(item.toISOString())}`)\r\n } else if (typeof item === 'object') {\r\n pairs.push(this.serializeBitrixParams(item, `${prefixedKey}[]`))\r\n } else {\r\n pairs.push(`${encodeURIComponent(prefixedKey)}[]=${encodeURIComponent(item)}`)\r\n }\r\n })\r\n } else if (typeof value === 'object') {\r\n pairs.push(this.serializeBitrixParams(value, prefixedKey))\r\n } else {\r\n pairs.push(`${encodeURIComponent(prefixedKey)}=${encodeURIComponent(value)}`)\r\n }\r\n }\r\n\r\n return pairs.join('&')\r\n }\r\n\r\n // Мб не работает\r\n override httpGet<T>(url: string, params: any = {}): Observable<T | undefined> {\n if (params === null) {\n params = {}\n }\n const auth = this.session.getAuthParams()\n const paramsClone = clone(params)\n const checkIsOn = this.session.getCheckAuthParamsIsOn()\n const key = this.session.getKeyAuth()\n\n if (checkIsOn) {\n if (!auth) {\n return throwError(() => this.session.getAuthError('get'))\n }\n\n if (key !== 'OAuth2') {\n paramsClone[key] = auth\n }\n }\n\n let options = {\n params: paramsClone\n // params: JSON.stringify(paramsClone)\r\n }\r\n\r\n return this.session.getBaseUrl().pipe(\n switchMap((baseUrl) => {\n if (!baseUrl) {\n return throwError(() => this.session.getBaseUrlError('get'))\n }\n\n return from(\n this.axiosInstance.post<T>(prepareBaseAddress(baseUrl) + url, options,\n {\n withCredentials: key === 'OAuth2',\n headers: {\n 'Content-Type': 'application/json',\n }\n }\r\n ).then((response) => response.data)\r\n )\r\n })\r\n )\r\n }\r\n\r\n getNameMethod(arr: string[]) {\r\n return arr.join('.')\r\n }\r\n\r\n}\r\n\r\n","import { Observable } from 'rxjs'\r\nimport { iBXRestAnswer } from '../../../typification/rest/base/answer'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport { BXRestMapResult, instanceOfiBXRestAnswerSuccess } from '../../../functions/mapResult'\r\nimport { HttpBXServices } from '../../http/HttpBX'\r\nimport { ReturnTypeNavvy } from '../navvy-support'\r\n\r\n// TODO: посмотреть как будет себя вести, если все в порядке то оставить\r\ninterface Mapper<T, R> {\r\n (param: T): R\r\n (param: undefined): undefined\r\n}\r\n\r\nexport abstract class NavvyPagBase<T, R, P> {\r\n\r\n protected readonly http: HttpBXServices\r\n pageSize = 50 // стандартный размер страницы\r\n\r\n public constructor(\r\n protected url: string[],\r\n protected param: P,\r\n /// protected map: Mapper<T, R> | undefined = undefined\r\n protected map: ((param: T| undefined) => R | undefined) | undefined = undefined\r\n ) {\r\n this.http = new HttpBXServices()\r\n }\r\n\r\n resVanilla() {\r\n return this.http.post<T>(this.url, this.param)\r\n }\r\n\r\n mapForVanilla(): Observable<iBXRestAnswer<ReturnTypeNavvy<T, R>> | undefined> {\r\n return this.resVanilla()\r\n .pipe(\r\n map(v => {\r\n if (v && instanceOfiBXRestAnswerSuccess(v) && this.map) {\r\n // Применяем this.map и явно приводим тип результата\r\n const result = this.map(v.result as T) as ReturnTypeNavvy<T, R>\r\n return { ...v, ...{result: result} } as iBXRestAnswer<ReturnTypeNavvy<T, R>>\r\n }\r\n return v as iBXRestAnswer<ReturnTypeNavvy<T, R>> | undefined\r\n })\r\n )\r\n }\r\n\r\n res() {\r\n return this.mapAndError(this.resVanilla()).pipe(\r\n map(v => (v && this.map)\r\n ? this.map(v)\r\n : v\r\n )\r\n ) as Observable<ReturnTypeNavvy<T, R> | undefined>\r\n }\r\n\r\n mapAndError<T>(\r\n request: Observable<iBXRestAnswer<T> | undefined>\r\n ) {\r\n return request.pipe(\r\n map(v => BXRestMapResult(v)),\r\n catchError((err: any) => {\r\n console.error(err)\r\n throw new Error((err.error) ? err.error : err)\r\n })\r\n )\r\n }\r\n\r\n}\r\n","import { NavvyPagBase } from './extends/navvy-pag-base'\r\n\r\nexport class NavvySimple<T, R, P> extends NavvyPagBase<T, R, P> {\r\n\r\n}\r\n","export const $get = 'get'\r\nexport const $add = 'add'\r\nexport const $set = 'set'\r\nexport const $event = 'event'\r\nexport const $update = 'update'\r\nexport const $user = 'user'\r\nexport const $task = 'task'\r\nexport const $calendar = 'calendar'\r\nexport const $meeting = 'meeting'\r\nexport const $list = 'list'\r\nexport const $search = 'search'\r\nexport const $accessibility = 'accessibility'\r\nexport const $delete = 'delete'\r\nexport const $nearest = 'nearest'\r\nexport const $params = 'params'\r\nexport const $status = 'status'\r\nexport const $resource = 'resource'\r\nexport const $booking = 'booking'\r\nexport const $section = 'section'\r\nexport const $settings = 'settings'\r\nexport const $tasks = 'tasks'\r\nexport const $elapseditem = 'elapseditem'\r\nexport const $getlist = 'getlist'\r\nexport const $approve = 'approve'\r\nexport const $complete = 'complete'\r\nexport const $counters = 'counters'\r\nexport const $defer = 'defer'\r\nexport const $delegate = 'delegate'\r\nexport const $disapprove = 'disapprove'\r\nexport const $favorite = 'favorite'\r\nexport const $files = 'files'\r\nexport const $file = 'file'\r\nexport const $attach = 'attach'\r\nexport const $field = 'field'\r\nexport const $getFields = 'get' + $field + 's'\r\nexport const $getaccess = 'getaccess'\r\nexport const $history = 'history'\r\nexport const $pause = 'pause'\r\nexport const $renew = 'renew'\r\nexport const $start = 'start'\r\nexport const $result = 'result'\r\nexport const $planner = 'planner'\r\nexport const $disk = 'disk'\r\nexport const $rename = 'rename'\r\nexport const $markdeleted = 'markdeleted'\r\nexport const $restore = 'restore'\r\nexport const $folder = 'folder'\r\nexport const $getchildren = 'getchildren'\r\nexport const $copyto = 'copyto'\r\nexport const $moveto = 'moveto'\r\nexport const $uploadfile = 'uploadfile'\r\nexport const $storage = 'storage'\r\nexport const $getTypes = 'getTypes'\r\nexport const $stages = 'stages'\r\nexport const $getmanifest = 'getmanifest'\r\nexport const $isactionallowed = 'isactionallowed'\r\nexport const $commentitem = 'commentitem'\r\nexport const $department = 'department'\r\nexport const $sonet_group = 'sonet_group'\r\nexport const $create = 'create'\r\nexport const $feature = 'feature'\r\nexport const $access = 'access'\r\nexport const $request = 'request'\r\nexport const $socialnetwork = 'socialnetwork'\r\nexport const $api = 'api'\r\nexport const $workgroup = 'workgroup'\r\nexport const $log = 'log'\r\nexport const $blogpost = 'blogpost'\r\nexport const $lists = 'lists'\r\nexport const $iblock = 'iblock'\r\nexport const $type = 'type'\r\nexport const $id = 'id'\r\nexport const $element = 'element'\r\nexport const $url = 'url'\r\nexport const $bizproc = 'bizProc'\r\nexport const $workflow = 'workflow'\nexport const $instances = 'instances'\nexport const $terminate = 'terminate'\nexport const $kill = 'kill'\nexport const $template = 'template'\r\nexport const $activity = 'activity'\r\nexport const $robot = 'robot'\r\nexport const $send = 'send'\r\nexport const $share = 'share'\r\nexport const $blogcomment = 'blogcomment'\r\nexport const $server = 'server'\r\nexport const $time = 'time'\r\nexport const $chat = 'chat'\r\nexport const $message = 'message'\r\nexport const $im = 'im'\r\nexport const $updateTitle = 'updateTitle'\r\nexport const $updateColor = 'updateColor'\r\nexport const $updateAvatar = 'updateAvatar'\r\nexport const $setOwner = 'setOwner'\r\nexport const $mute = 'mute'\r\nexport const $timeMan = 'timeman'\r\nexport const $item = 'item'\r\nexport const $userfield = 'userfield'\r\nexport const $config = 'config'\r\nexport const $pull = 'pull'\r\nexport const $channel = 'channel'\r\nexport const $public = 'public'\r\nexport const $application = 'application'\r\nexport const $dialog = 'dialog'\r\nexport const $users = 'users'\r\nexport const $messages = 'messages'\r\nexport const $read = 'read'\r\nexport const $unread = 'unread'\r\nexport const $writing = 'writing'\r\nexport const $all = 'all'\r\nexport const $leave = 'leave'\r\nexport const $recent = 'recent'\r\nexport const $hide = 'hide'\r\nexport const $pin = 'pin'\r\nexport const $end = 'end'\r\nexport const $idle = 'idle'\r\nexport const $crm = 'crm'\nexport const $enum = 'enum'\nexport const $multifield = 'multifield'\nexport const $lead = 'lead'\nexport const $deal = 'deal'\r\nexport const $contact = 'contact'\r\nexport const $company = 'company'\nexport const $quote = 'quote'\nexport const $productrows = 'productrows'\n\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\nimport { iBXRestUserUserField } from '../../typification/rest/user/userfield/list'\nimport { $list, $user, $userfield } from '../../consts/part-name-methods'\n\nexport class BXRestUserUserfield {\n protected url = {\n list: [$user, $userfield, $list],\n }\n private readonly http = new HttpBXServices()\n\r\n list() {\r\n return this.http.post<iBXRestUserUserField[]>(this.url.list)\r\n }\r\n}\r\n","import { iBXRestParamUserGet } from '../typification/rest/user'\r\nimport { HttpBXServices } from '../services/http/HttpBX'\r\nimport { iBXRestUserHttp, iBXRestUserHttpField } from '../typification/rest/user'\nimport { iBXRestParamUserSearch } from '../typification/rest/user'\nimport { BXRestUserUserfield } from './user/userfield'\nimport { $get, $search, $update, $user } from '../consts/part-name-methods'\n\r\nexport class BXRestUser {\r\n private readonly http = new HttpBXServices()\r\n public readonly userfield = new BXRestUserUserfield()\r\n\r\n protected url = {\n admin: [$user, 'admin'],\n get: [$user, $get],\n current: [$user, 'current'],\n update: [$user, $update],\n search: [$user, $search],\n access: [$user, 'access'],\n fields: [$user, 'fields'],\n }\n\r\n admin() {\r\n return this.http.post<boolean>(this.url.admin)\r\n }\r\n\r\n get(params: iBXRestParamUserGet = {}) {\r\n return this.http.post<iBXRestUserHttp[]>\r\n (\r\n this.url.get,\r\n params\r\n )\r\n }\r\n\r\n current() {\r\n return this.http.post<iBXRestUserHttp>(this.url.current, {})\r\n }\r\n\r\n update(user: iBXRestParamUserGet) {\r\n return this.http.post<iBXRestUserHttp[]>(\r\n this.url.update,\r\n user\r\n )\r\n }\r\n\r\n search(params: iBXRestParamUserSearch) {\r\n return this.http.post<iBXRestUserHttp[]>(this.url.search, params)\r\n }\r\n\r\n access(access: string[]) {\r\n return this.http.post<boolean>(this.url.access, {ACCESS: access})\r\n }\r\n\r\n fields() {\r\n return this.http.post<iBXRestUserHttpField>(this.url.fields)\r\n }\r\n}\r\n\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\r\nimport {\r\n iBXRestHttpListsElement,\r\n iBXRestParamListsElementGet\r\n} from '../../typification/rest/lists/element/get'\nimport { iBXRestParamListsElementAdd } from '../../typification/rest/lists/element/add'\nimport { $add, $element, $get, $lists } from '../../consts/part-name-methods'\n\nexport class BXRestListsElement {\n protected readonly url = {\n add: [$lists, $element, $add],\n get: [$lists, $element, $get],\n }\n private readonly http = new HttpBXServices()\n\r\n get(pram: iBXRestParamListsElementGet) {\r\n return this.http.post<iBXRestHttpListsElement[]>(\r\n this.url.get,\r\n pram\r\n )\r\n }\r\n\r\n add(param: iBXRestParamListsElementAdd) {\r\n return this.http.post<number>(this.url.add, param)\r\n }\r\n\r\n}\r\n","import {\r\n BXRestHttpListsFieldGet,\r\n iBXRestParamListField\r\n} from '../../typification/rest/lists/field/get'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { $field, $get, $lists } from '../../consts/part-name-methods'\r\n\r\nexport class BXRestListsField {\r\n protected readonly url = {\r\n // /**\r\n // * Метод создает поле списка\r\n // */\r\n // add: [$lists, $field, $add],\r\n // /**\r\n // * Метод удаляет поле списка\r\n // */\r\n // delete: [$lists, $field, $delete],\r\n /**\r\n * Метод возвращает данные поля\r\n */\r\n get: [$lists, $field, $get],\r\n // type: {\r\n // /**\r\n // * Метод возвращает доступные типа полей для указанного списка\r\n // */\r\n // get: [$lists, $field, $type, $get],\r\n // },\r\n // /**\r\n // * Метод обновляет поле списка\r\n // */\r\n // update: [$lists, $field, $update],\r\n }\r\n private readonly http = new HttpBXServices()\r\n\r\n get(param: iBXRestParamListField) {\r\n return this.http.post<BXRestHttpListsFieldGet>(this.url.get, param)\r\n }\r\n\r\n}\r\n","import { BXRestListsElement } from './lists/element'\r\nimport { HttpBXServices } from '../services/http/HttpBX'\r\nimport { iBXRestListItemHttp, iBXRestParamListGet } from '../typification/rest/lists/get'\r\nimport { BXRestListsField } from './lists/field'\r\nimport { $add, $element, $field, $get, $lists } from '../consts/part-name-methods'\r\n\r\nexport class BXRestLists {\r\n protected url = {\r\n // /**\r\n // * Метод создаёт список\r\n // */\r\n // add: [$lists, $add],\r\n // /**\r\n // * Метод удаляет список\r\n // */\r\n // delete: [$lists, $delete],\r\n /**\r\n * Метод возвращает данные по спискам\r\n */\r\n get: [$lists, $get],\r\n // /**\r\n // * Метод обновляет существующий список\r\n // */\r\n // update: [$lists, $update],\r\n // /**\r\n // * Метод возвращает id типа инфоблока\r\n // */\r\n // getIBlockTypeId: [$lists, $get, $iblock, $type, $id],\r\n element: {\r\n /**\r\n * Метод создаёт элемент списка\r\n */\r\n add: [$lists, $element, $add],\r\n // /**\r\n // * Метод удаляет элемент списка TODO: Реализовать\r\n // */\r\n // delete: [$lists, $element, $delete],\r\n /**\r\n * Метод возвращает список элементов или элемент\r\n */\r\n get: [$lists, $element, $get],\r\n // /**\r\n // * Метод обновляет элемент списка TODO: Реализовать\r\n // */\r\n // update: [$lists, $element, $update],\r\n // /**\r\n // * Метод возвращает путь к файлу TODO: Реализовать\r\n // */\r\n // getFileUrl: [$lists, $element, $get, $file, $url]\r\n },\r\n field: {\r\n // /**\r\n // * Метод создает поле списка\r\n // */\r\n // add: [$lists, $field, $add],\r\n // /**\r\n // * Метод удаляет поле списка\r\n // */\r\n // delete: [$lists, $field, $delete],\r\n /**\r\n * Метод возвращает данные поля\r\n */\r\n get: [$lists, $field, $get],\r\n // type: {\r\n // /**\r\n // * Метод возвращает доступные типа полей для указанного списка\r\n // */\r\n // get: [$lists, $field, $type, $get],\r\n // },\r\n // /**\r\n // * Метод обновляет поле списка\r\n // */\r\n // update: [$lists, $field, $update],\r\n }\r\n }\r\n\r\n public readonly element = new BXRestListsElement()\r\n public readonly field = new BXRestListsField()\r\n private readonly http = new HttpBXServices()\r\n\r\n // getField(pram: getListFieldParam): Observable<iHttpAnswerBX<FieldItemLists[]> | undefined> {\r\n // return this.http.post<iHttpAnswerBX<{ [key: string]: FieldItemLists }>>(this.url.field.get, pram)\r\n // }\r\n\r\n get(param: iBXRestParamListGet){\r\n return this.http.post<iBXRestListItemHttp[]>(this.url.get, param)\r\n }\r\n}\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\r\nimport {\r\n iBXRestParamElapseditemGet,\r\n iBXRestTaskElapsedItemHttp,\r\n iBXRestParamAddElapseditem,\r\n iBXRestParamUpdateElapseditem,\r\n iBXRestParamDelElapseditem,\n iIsActionAllowedParam\n} from '../../typification/rest/task'\nimport {\n $add,\n $delete,\n $elapseditem,\n $getlist,\n $isactionallowed,\n $task,\n $update\n} from '../../consts/part-name-methods'\n\r\n\r\nexport class BXRestTaskElapsedItem {\n protected url = {\n getList: [$task, $elapseditem, $getlist],\n add: [$task, $elapseditem, $add],\n delete: [$task, $elapseditem, $delete],\n isActionAllowed: [$task, $elapseditem, $isactionallowed],\n update: [$task, $elapseditem, $update],\n }\n private readonly http = new HttpBXServices()\n\r\n getList(param: iBXRestParamElapseditemGet = {}) {\r\n return this.http.post<iBXRestTaskElapsedItemHttp[]>(this.url.getList, param)\r\n }\r\n\r\n add(param: iBXRestParamAddElapseditem) {\r\n return this.http.post<number>(\r\n this.url.add,\r\n param\r\n )\r\n }\r\n\r\n update(param: iBXRestParamUpdateElapseditem) {\r\n return this.http.post<null>\r\n (\r\n this.url.update,\r\n param\r\n )\r\n }\r\n\r\n del(param: iBXRestParamDelElapseditem) {\r\n return this.http.post<null>(\r\n this.url.delete,\r\n param\r\n )\r\n }\r\n\r\n /**\r\n * idAction:\r\n * 1 - ACTION_ELAPSED_TIME_ADD\r\n * 2 - ACTION_ELAPSED_TIME_MODIFY\r\n * 3 - ACTION_ELAPSED_TIME_REMOVE\r\n * ITEMID - обязателен в конечной отправке но не обязателен для ACTION_ELAPSED_TIME_ADD,\r\n * поэтому этом методе можно ставить \"1\" например, так же метод может выдавать ошибки о не доступности задачи\r\n * поэтому рекомендую воспользоваться аналогичным методом в пространстве имен navvy\r\n * @param param\r\n */\r\n isActionAllowed(param: iIsActionAllowedParam) {\r\n return this.http.post<boolean>(this.url.isActionAllowed, param)\r\n }\r\n\r\n}\r\n","import {\r\n $add,\r\n $commentitem,\r\n $delete,\r\n $get,\r\n $getlist,\r\n $getmanifest, $isactionallowed,\r\n $task,\r\n $update\r\n} from '../../consts/part-name-methods'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestParamTaskCommentItemGet } from '../../typification/rest/task/commentitem/get'\r\nimport { iBXRestTaskCommentHtml } from '../../typification/rest/task/commentitem/commentitem'\r\nimport { iBXRestCommentTaskAdd } from '../../typification/rest/task/commentitem/add'\r\nimport { iBXRestTaskCommentItemUpdate } from '../../typification/rest/task/commentitem/update'\r\nimport { BXRestTaskCommentItemGetList } from '../../typification/rest/task/commentitem/getlist'\r\nimport { BXRestTaskCommentItemDelete } from '../../typification/rest/task/commentitem/delete'\r\n\r\nexport class BXRestTaskCommentItem {\r\n\r\n protected url = {\r\n getManifest: [$task, $commentitem, $getmanifest], // Возвращает список методов и их описание\r\n getList: [$task, $commentitem, $getlist], // Возвращает список комментариев к задаче\r\n get: [$task, $commentitem, $get], // Возвращает комментарий к задаче\r\n add: [$task, $commentitem, $add], // Создает новый комментарий к задаче\r\n update: [$task, $commentitem, $update], // Обновляет данные комментария\r\n delete: [$task, $commentitem, $delete], // Удаляет комментарий\r\n isActionAllowed: [$task, $commentitem, $isactionallowed], // Проверяет, разрешено ли действие\r\n }\r\n\r\n private readonly http = new HttpBXServices()\r\n\r\n add(param: iBXRestCommentTaskAdd) {\r\n return this.http.post<number>(this.url.add, param)\r\n }\r\n\r\n update(param: iBXRestTaskCommentItemUpdate) {\r\n return this.http.post<boolean>(this.url.update, param)\r\n }\r\n\r\n get(param: iBXRestParamTaskCommentItemGet) {\r\n return this.http.post<iBXRestTaskCommentHtml>(this.url.get, param)\r\n }\r\n\r\n getlist(param: BXRestTaskCommentItemGetList) {\r\n return this.http.post<iBXRestTaskCommentHtml[]>(this.url.getList, param)\r\n }\r\n\r\n del(param: BXRestTaskCommentItemDelete) {\r\n return this.http.post<boolean>(this.url.delete, param)\r\n }\r\n}\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\nimport { $getlist, $planner, $task } from '../../consts/part-name-methods'\n\r\nexport class BXRestTaskPlanner {\r\n private readonly http = new HttpBXServices()\n\n getList(){\n return this.http.post<(string | number)[]>([$task, $planner, $getlist])\n }\n}\n","import {\r\n iBXRestParamTaskItemUserFieldGetlist,\r\n iBXRestTaskItemUserFieldGetlistHttp\r\n} from '../../../typification/rest/task/item/userfield/getlist'\nimport { HttpBXServices } from '../../../services/http/HttpBX'\nimport { $item, $task, $userfield } from '../../../consts/part-name-methods'\n\nexport class BXRestTaskItemUserField {\n private readonly url = {\n getList: [$task, $item, $userfield, 'getlist'],\n }\n private readonly http = new HttpBXServices()\n\r\n getList(param: iBXRestParamTaskItemUserFieldGetlist){\r\n return this.http.post<iBXRestTaskItemUserFieldGetlistHttp[]>(this.url.getList, param)\r\n }\r\n\r\n}\n","import { BXRestTaskItemUserField } from './item/userfield'\r\n\r\nexport class BXRestTaskItem {\r\n public readonly userField = new BXRestTaskItemUserField()\r\n}","import { BXRestTaskElapsedItem } from './task/elapseditem'\r\nimport { BXRestTaskCommentItem } from './task/commentitem'\r\nimport { BXRestTaskPlanner } from './task/planner'\r\nimport { BXRestTaskItem } from './task/item'\r\n\r\nexport class BXRestTask {\r\n public readonly elapsedItem = new BXRestTaskElapsedItem()\r\n public readonly commentItem = new BXRestTaskCommentItem()\r\n public readonly planner = new BXRestTaskPlanner()\r\n public readonly item = new BXRestTaskItem()\r\n}\r\n","import { HttpBXServices } from '../../../services/http/HttpBX'\r\nimport {\r\n iBXParamRestTasksTaskResultAdd,\r\n iBXRestTasksTaskResultHttp\r\n} from '../../../typification/rest/tasks/task/result/result'\nimport { iBXRestParamTasksTaskResultList } from '../../../typification/rest/tasks/result/list'\nimport { $list, $result, $task, $tasks } from '../../../consts/part-name-methods'\n\nexport class BXRestTasksTaskResult {\n protected url = {\n list: [$tasks, $task, $result, $list],\n addFromComment: [$tasks, $task, $result, 'addFromComment'],\n deleteFromComment: [$tasks, $task, $result, 'deleteFromComment'],\n }\n private readonly http = new HttpBXServices()\n\r\n deleteFromComment(commentID: number) {\r\n return this.http.post<null>(this.url.deleteFromComment, {commentId: commentID})\r\n }\r\n\r\n addFromComment(param: iBXParamRestTasksTaskResultAdd) {\r\n return this.http.post<iBXRestTasksTaskResultHttp>(this.url.addFromComment, param)\r\n }\r\n\r\n list(param: iBXRestParamTasksTaskResultList) {\r\n return this.http.post<iBXRestTasksTaskResultHttp[]>(this.url.list, param)\r\n }\r\n}\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestParamTaskAdd } from '../../typification/rest/tasks/task/add'\r\nimport {\r\n iBXRestTasksTaskGetHttp,\r\n iBXRestTasksTaskGetHttpDefault\r\n} from '../../typification/rest/tasks/task/get'\r\nimport {\r\n iBXRestParamTasksList, iBXRestTasksTaskListHttp } from '../../typification/rest/tasks/task/list'\r\nimport { iBXRestParamTaskGetAccess, iBXRestTaskGetAccess } from '../../typification/rest/task/access/getaccess'\r\nimport { iBXRestParamTasksTaskApprove, iBXRestTasksTaskApproveHttp } from '../../typification/rest/tasks/task/approve'\r\nimport {\r\n iBXRestParamTasksTaskComplete,\r\n iBXRestTasksTaskCompleteHttp\r\n} from '../../typification/rest/tasks/task/complete'\r\nimport { iBXRestParamTasksTaskDefer, iBXRestTasksTaskDeferHttp } from '../../typification/rest/tasks/task/defer'\r\nimport { BXRestTasksTaskResult } from './task/result'\r\nimport { iBXRestParamTasksTaskGet } from '../../typification/rest/tasks/task/get'\r\nimport { iBXRestTasksTaskGetFields } from '../../typification/rest/tasks/task/getFields'\r\nimport { iBXRestParamTasksTaskUpdate } from '../../typification/rest/tasks/task/update'\nimport { iBXRestTaskFieldsName } from '../../typification/rest/tasks/base/fields-name'\nimport { iBXRestTasksTaskBaseAnswer } from '../../typification/rest/tasks/task/base'\nimport {\n $add,\n $approve,\n $complete,\n $defer,\n $get,\n $getaccess,\n $getFields,\n $list,\n $task,\n $tasks,\n $update\n} from '../../consts/part-name-methods'\n\r\nexport class BXRestTasksTask {\r\n\r\n protected url = {\n add: [$tasks, $task, $add],\n approve: [$tasks, $task, $approve],\n complete: [$tasks, $task, $complete],\n defer: [$tasks, $task, $defer],\n get: [$tasks, $task, $get],\n getFields: [$tasks, $task, $getFields],\n getAccess: [$tasks, $task, $getaccess],\n list: [$tasks, $task, $list],\n update: [$tasks, $task, $update],\n }\n\r\n public readonly result = new BXRestTasksTaskResult()\r\n private readonly http = new HttpBXServices()\r\n\r\n add<CustomFields extends object = object>(param: iBXRestParamTaskAdd<CustomFields>) {\r\n return this.http.post<iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskGetHttpDefault>>(this.url.add, param)\r\n }\r\n\r\n approve(param: iBXRestParamTasksTaskApprove) {\r\n return this.http.post<iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskApproveHttp>>(this.url.approve, param)\r\n }\r\n\r\n complete(param: iBXRestParamTasksTaskComplete) {\r\n return this.http.post<iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskCompleteHttp>>(this.url.complete, param)\r\n }\r\n\r\n defer(param: iBXRestParamTasksTaskDefer) {\r\n return this.http.post<iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskDeferHttp>>(this.url.defer, param)\r\n }\r\n\r\n update(param: iBXRestParamTasksTaskUpdate) {\r\n return this.http.post<iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskDeferHttp>>(this.url.update, param)\r\n }\r\n\r\n get<S extends iBXRestTaskFieldsName[], CustomFields extends object = object>(param: iBXRestParamTasksTaskGet<CustomFields>) {\r\n return this.http.post<iBXRestTasksTaskGetHttp<S, CustomFields>>(this.url.get, param)\r\n }\r\n\r\n list<S extends iBXRestTaskFieldsName[], CustomFields extends object = object>(param: iBXRestParamTasksList<CustomFields>) {\r\n return this.http.post<iBXRestTasksTaskListHttp<S, CustomFields>>(this.url.list, param)\r\n }\r\n\r\n /*\r\n listArray(requestArray: RequestApiTaskListBX = {}) {\r\n return this.list(requestArray).pipe(\r\n map(v => this.http.mapResult(v)),\r\n map(v => (v && v.tasks) ? v.tasks : [])\r\n )\r\n }\r\n\r\n listAll(requestArray: RequestApiTaskListBX = {}, cache = false): Observable<TaskBX[]> {\r\n if (!requestArray.select) {\r\n requestArray.select = this.def.select\r\n if (cache) {\r\n return this.storeTask$.pipe(\r\n take(1),\r\n mergeMap(tasks => {\r\n if (tasks && tasks.data.http.list && requestArray.filter && requestArray.filter.ID) {\r\n const ids = (typeof requestArray.filter.ID === 'number') ? [requestArray.filter.ID] : requestArray.filter.ID\r\n let filter = tasks.data.http.list.filter(i => (i.id) ? ids.includes(i.id) : false)\r\n if (filter.length === ids.length) {\r\n return of(filter)\r\n }\r\n }\r\n return this.getEndListArray(requestArray)\r\n })\r\n )\r\n }\r\n return this.getEndListArray(requestArray)\r\n }\r\n return this.getEndListArray(requestArray)\r\n }\r\n\r\n getEndListArray(requestArray: RequestApiTaskListBX): Observable<TaskBX[]> {\r\n return this.list(requestArray).pipe(\r\n mergeMap((items: AnswerApiTaskBX | undefined): ObservableInput<any> | Observable<AnswerApiTaskBX[]> => {\r\n if (items && items.result && typeof items.result.tasks === 'object') {\r\n const items$ = of(items.result.tasks)\r\n if (items.next) {\r\n this.nowLoad$.next({\r\n total: (items.total) ? items.total : 0,\r\n next: items.next\r\n })\r\n requestArray.start = items.next\r\n return this.getEndListArray(requestArray).pipe(\r\n map(vEnd => {\r\n if (vEnd && items.result.tasks) {\r\n return [...items.result.tasks, ...vEnd]\r\n }\r\n return (items.result.tasks) ? items.result.tasks : []\r\n }))\r\n }\r\n this.nowLoad$.next({\r\n total: 0,\r\n next: 0\r\n })\r\n return items$\r\n } else {\r\n return of([])\r\n }\r\n })\r\n )\r\n }\r\n */\r\n\r\n getFields() {\r\n return this.http.post<iBXRestTasksTaskGetFields>(this.url.getFields)\r\n }\r\n\r\n\r\n getAccess(param: iBXRestParamTaskGetAccess) {\r\n return this.http.post<iBXRestTaskGetAccess>(this.url.getAccess, param)\r\n }\r\n\r\n}\r\n\r\n","import { BXRestTasksTask } from './tasks/task'\r\n\r\nexport class BXRestTasks {\r\n public readonly task = new BXRestTasksTask()\r\n}\r\n\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\r\nimport {\r\n iBXRestDiskFileHttp,\r\n iBXRestParamDiskFileGet,\n iBXRestParamDiskFileMarkDeleted\n} from '../../typification/rest/disk/file'\nimport { $disk, $file, $get, $markdeleted } from '../../consts/part-name-methods'\n\nexport class BXRestDiskFile {\n protected url = {\n get: [$disk, $file, $get],\n markDeleted: [$disk, $file, $markdeleted],\n }\n\r\n private readonly http = new HttpBXServices()\r\n\r\n get(param: iBXRestParamDiskFileGet) {\r\n return this.http.post<iBXRestDiskFileHttp>(this.url.get, param)\r\n }\r\n\r\n markDeleted(param: iBXRestParamDiskFileMarkDeleted) {\r\n return this.http.post<iBXRestDiskFileHttp>(\r\n this.url.markDeleted,\r\n param\r\n )\r\n }\r\n}\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\r\nimport {\r\n iBXRestFolderHttp,\r\n iBXRestParamFolderDeleteTree,\r\n iBXRestParamFolderGet,\r\n iBXRestParamFolderGetChildren,\r\n iBXRestParamFolderGetExternalLink,\r\n iBXRestParamFolderMarkDeleted,\r\n iBXRestParamFolderRestore\r\n} from '../../typification/rest/disk/folder'\r\nimport { iBXRestDiskFileHttp } from '../../typification/rest/disk/file'\r\nimport { iBXRestDiskFolderUploadFileParam } from '../../typification/rest/disk/folder/uploadFile'\r\nimport { iBXRestDiskFolderGetFieldsHttp } from '../../typification/rest/disk/folder/getFields'\r\nimport { iBXRestDiskFolderAddSubFolderParam } from '../../typification/rest/disk/folder/addSubFolder'\nimport { iBXRestDiskFolderCopyToParam } from '../../typification/rest/disk/folder/copyTo'\nimport { iBXRestDiskFolderMoveToParam } from '../../typification/rest/disk/folder/moveTo'\nimport { iBXRestDiskFolderRenameParam } from '../../typification/rest/disk/folder/rename'\nimport {\n $copyto,\n $disk,\n $folder,\n $get,\n $getchildren,\n $getFields,\n $markdeleted,\n $moveto,\n $rename,\n $restore,\n $uploadfile\n} from '../../consts/part-name-methods'\n\nexport class BXRestDiskFolder {\n protected url = {\n getFields: [$disk, $folder, $getFields],\n get: [$disk, $folder, $get],\n getChildren: [$disk, $folder, $getchildren],\n addSubFolder: [$disk, $folder, 'addsubfolder'],\n copyTo: [$disk, $folder, $copyto],\n moveTo: [$disk, $folder, $moveto],\n rename: [$disk, $folder, $rename],\n deleteTree: [$disk, $folder, 'deletetree'],\n markDeleted: [$disk, $folder, $markdeleted],\n restore: [$disk, $folder, $restore],\n uploadFile: [$disk, $folder, $uploadfile],\n getExternalLink: [$disk, $folder, 'getExternalLink'],\n }\n\r\n private readonly http = new HttpBXServices()\r\n\r\n /**\r\n * Возвращает папку по идентификатору\r\n *\r\n * @param param\r\n */\r\n get(param: iBXRestParamFolderGet) {\r\n return this.http.post<iBXRestFolderHttp>(this.url.get, param)\r\n }\r\n\r\n /**\r\n * Создает дочернюю папку\r\n *\r\n * @param param\r\n */\r\n addSubFolder(param: iBXRestDiskFolderAddSubFolderParam){\r\n return this.http.post<iBXRestFolderHttp>(this.url.addSubFolder, param)\r\n }\r\n\r\n /**\r\n * Копирует папку в указанную папку\r\n *\r\n * @param param\r\n */\r\n copyTo(param: iBXRestDiskFolderCopyToParam){\r\n return this.http.post<iBXRestFolderHttp>(this.url.copyTo, param)\r\n }\r\n\r\n /**\r\n * Перемещает папку в указанную папку\r\n *\r\n * @param param\r\n */\r\n moveTo(param: iBXRestDiskFolderMoveToParam){\r\n return this.http.post<iBXRestFolderHttp>(this.url.moveTo, param)\r\n }\r\n\r\n /**\r\n * Переименовывает папку\r\n *\r\n * @param param\r\n */\r\n rename(param: iBXRestDiskFolderRenameParam){\r\n return this.http.post<iBXRestFolderHttp>(this.url.rename, param)\r\n }\r\n\r\n /**\r\n * Уничтожает папку и всё её дочерние элементы навсегда\r\n * В ответе 'result': true - успешное уничтожение папки\r\n *\r\n * @param param\r\n */\r\n deleteTree(param: iBXRestParamFolderDeleteTree){\r\n return this.http.post<boolean>(\r\n this.url.deleteTree,\r\n param\r\n )\r\n }\r\n\r\n /**\r\n * Перемещает папку в корзину\r\n *\r\n * @param param\r\n */\r\n markDeleted(param: iBXRestParamFolderMarkDeleted){\r\n return this.http.post<iBXRestFolderHttp>(\r\n this.url.markDeleted,\r\n param\r\n )\r\n }\r\n\r\n /**\r\n * Восстанавливает папку из корзины\r\n *\r\n * @param param\r\n */\r\n restore(param: iBXRestParamFolderRestore){\r\n return this.http.post<iBXRestFolderHttp>(\r\n this.url.restore,\r\n param\r\n )\r\n }\r\n\r\n /**\r\n * Метод возвращает публичную ссылку\r\n *\r\n * @param param\r\n */\r\n getExternalLink(param: iBXRestParamFolderGetExternalLink){\r\n return this.http.post<string>(\r\n this.url.restore,\r\n param\r\n )\r\n }\r\n\r\n\r\n /**\r\n * Возвращает описание полей папки\r\n */\r\n getFields() {\r\n return this.http.post<iBXRestDiskFolderGetFieldsHttp>(this.url.getFields)\r\n }\r\n\r\n /**\r\n * Загружает новый файл в указанную папку\r\n *\r\n * @param param\r\n */\r\n uploadFile(param: iBXRestDiskFolderUploadFileParam) {\r\n return this.http.post<iBXRestFolderHttp>(\r\n this.url.uploadFile,\r\n param\r\n )\r\n }\r\n\r\n /**\r\n * Возвращает список файлов и папок, которые находятся непосредственно в папке\r\n *\r\n * @param param\r\n */\r\n getChildren(param: iBXRestParamFolderGetChildren) {\r\n return this.http.post<(iBXRestFolderHttp | iBXRestDiskFileHttp)[]>(\r\n this.url.getChildren,\r\n param\r\n )\r\n }\r\n}\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\r\nimport {\n iBXRestDiskAttachedObjectHttp,\n iBXRestParamRestDiskAttachedObject\n} from '../../typification/rest/disk/AttachedObject'\nimport { $disk, $get } from '../../consts/part-name-methods'\n\nexport class BXRestDiskAttachedObject {\n protected url = {\n get: [$disk, 'attachedObject', $get],\n }\n private readonly http = new HttpBXServices()\n\r\n get(param: iBXRestParamRestDiskAttachedObject) {\r\n return this.http.post<iBXRestDiskAttachedObjectHttp>(this.url.get, param)\r\n }\r\n}\r\n","import { BXRestDiskFile } from './disk/file'\r\nimport { BXRestDiskFolder } from './disk/folder'\r\nimport { BXRestDiskAttachedObject } from './disk/attachedObject'\r\n\r\nexport class BXRestDisk {\r\n public readonly file = new BXRestDiskFile()\r\n public readonly folder = new BXRestDiskFolder()\r\n public readonly attachedObject = new BXRestDiskAttachedObject()\r\n}\r\n","export class BXRestBizProcWorkflowInstance {\n}\n","export class BXRestBizProcWorkflowTemplate {\n // constructor(private http: HttpBXServices) {\n // }\n\r\n // list(param: iBXRestParamBizprocWorkflowTemplateList = {select: [], filter: {}}){\r\n // return this.http.post(this.url.list, param)\r\n // }\r\n}\r\n","import { Observable } from 'rxjs'\r\nimport { iBXRestParams } from '../../typification/base/params'\r\nimport { HttpBXServices } from './HttpBX'\r\nimport { iBXRestAnswer } from '../../typification/rest/base'\r\nimport { iBXRestAnswers } from '../../typification/base/answers'\r\n\r\nexport class HttpNavvyServices {\r\n private readonly httpServices = new HttpBXServices()\r\n\r\n post<T extends keyof iBXRestParams>(\r\n url: [T],\r\n params?: iBXRestParams[T],\r\n ): Observable<iBXRestAnswer<iBXRestAnswers[T]> | undefined>\r\n\r\n // Перегрузка для пути из двух элементов\r\n post<T extends keyof iBXRestParams, K1 extends keyof iBXRestParams>(\r\n url: [T, K1],\r\n params?: iBXRestParams[T][K1],\r\n ): Observable<iBXRestAnswer<iBXRestAnswers[T][K1]> | undefined>\r\n\r\n // Перегрузка для пути из трех элементов\r\n post<T extends keyof iBXRestParams, K1 extends keyof iBXRestParams[T], K2 extends keyof iBXRestParams[T][K1]>(\r\n url: [T, K1, K2],\r\n params?: iBXRestParams[T][K1][K2],\r\n ): Observable<iBXRestAnswer<iBXRestAnswers[T][K1][K2]> | undefined>\r\n\r\n // Реализация метода\r\n post(url: string[], params?: any): Observable<any | undefined>\r\n {\r\n if(params === undefined){\r\n params = {}\r\n }\r\n return this.httpServices.post(url, params)\r\n }\r\n}","import { BXRestBizProcWorkflowInstance } from './workflow/instance'\r\nimport { iBXRestParamBizprocWorkflowStart } from '../../typification/rest/bizproc/workflow/start'\r\nimport { BXRestBizProcWorkflowTemplate } from './workflow/template'\r\nimport { HttpNavvyServices } from '../../services/http/httpNavvy'\r\nimport { $bizproc, $start, $workflow } from '../../consts/part-name-methods'\r\n\r\nexport class BXRestBizProcWorkflow {\r\n public readonly instances = new BXRestBizProcWorkflowInstance()\r\n public readonly template = new BXRestBizProcWorkflowTemplate()\r\n\r\n public readonly http = new HttpNavvyServices()\r\n\r\n /**\r\n * Запускает Бизнес-процесс\r\n */\r\n start(param: iBXRestParamBizprocWorkflowStart) {\r\n return this.http.post([$bizproc, $workflow, $start], param)\r\n }\r\n\r\n}\r\n","export class BXRestBizProcActivity {\n}\n","export class BXRestBizProcTask {\n}\n","export class BXRestBizProcRobot {\n}\n","export class BXRestBizProcEvent {\n}\n","import { BXRestBizProcWorkflow } from './bizproc/workflow'\r\nimport { BXRestBizProcActivity } from './bizproc/activity'\r\nimport { BXRestBizProcTask } from './bizproc/task'\r\nimport { BXRestBizProcRobot } from './bizproc/robot'\r\nimport { BXRestBizProcEvent } from './bizproc/event'\r\n\r\nexport class BXRestBizProc {\r\n public readonly workflow = new BXRestBizProcWorkflow()\r\n public readonly activity = new BXRestBizProcActivity()\r\n public readonly task = new BXRestBizProcTask()\r\n public readonly robot = new BXRestBizProcRobot()\r\n public readonly event = new BXRestBizProcEvent()\r\n}\r\n","import { HttpBXServices } from '../../services/http/HttpBX'\nimport { iBXRestParamLogBlogPostAdd } from '../../typification/rest/log/blogpost/add'\nimport { iBXRestBlogPostHttp, iBXRestParamBlogPostGet } from '../../typification/rest/log/blogpost/get'\nimport { $add, $blogpost, $get, $log } from '../../consts/part-name-methods'\n\r\nexport class BXRestLogBlogPost {\r\n\r\n protected url = {\n add: [$log, $blogpost, $add],\n get: [$log, $blogpost, $get],\n }\n\r\n private readonly http = new HttpBXServices()\r\n\r\n add(param: iBXRestParamLogBlogPostAdd) {\r\n return this.http.post<boolean>(this.url.add, param)\r\n }\r\n\r\n get(param: iBXRestParamBlogPostGet = {}) {\r\n return this.http.post<iBXRestBlogPostHttp[]>(this.url.get, param)\r\n }\r\n\r\n}\r\n","export class BXRestLogBlogComment {\n}\n","import { BXRestLogBlogPost } from './log/blogpost'\r\nimport { BXRestLogBlogComment } from './log/blogcomment'\r\n\r\nexport class BXRestLog {\r\n public readonly blogPost = new BXRestLogBlogPost()\r\n public readonly blogComment = new BXRestLogBlogComment()\r\n}\r\n","import { HttpBXServices } from '../services/http/HttpBX'\r\nimport {\n iBXRestParamSonetGroupGet, iBXRestSonetGroupGetHttp\n} from '../typification/rest/sonet_group/get'\nimport { $get, $sonet_group } from '../consts/part-name-methods'\n\nexport class BXRestSonetGroup {\n protected url = {\n get: [$sonet_group, $get],\n }\n private http = new HttpBXServices()\n\r\n // // TODO: filter и select позже нормально описать\r\n // getList(filter: any = {}, select: iWorkgroupFields[] = ['ID', 'NAME']){\r\n // return this.httpPost<iHttpAnswerBX<{workgroups: iListWorkgroup[]}>>(\r\n // this.url.get,\r\n // {\r\n // order: select,\r\n // filter: filter\r\n // }\r\n // )\r\n // }\r\n\r\n get(param: iBXRestParamSonetGroupGet = {}) {\r\n return this.http.post<iBXRestSonetGroupGetHttp[]>(this.url.get, param)\r\n }\r\n}\r\n","import { HttpBXServices } from '../services/http/HttpBX'\nimport { $server, $time } from '../consts/part-name-methods'\n\r\nexport class BXRestServer {\r\n private readonly http = new HttpBXServices()\r\n\r\n protected url = {\n time: [$server, $time],\n }\n\r\n time(){\r\n return this.http.post<string>(this.url.time)\r\n }\r\n}\r\n","import { HttpBXServices } from '../services/http/HttpBX'\r\nimport { iBXRestParamDepartmentGet } from '../typification/rest/department/get'\r\nimport { iBXRestDepartmentHttp } from '../typification/rest/department/department'\r\nimport { iBXRestParamDepartmentAdd } from '../typification/rest/department/add'\nimport { iBXRestParamDepartmentDel } from '../typification/rest/department/del'\nimport { iBXRestDepartmentUpdate } from '../typification/rest/department/update'\nimport { $add, $delete, $department, $get, $update } from '../consts/part-name-methods'\n\nexport class BXRestDepartment {\n protected url = {\n get: [$department, $get],\n del: [$department, $delete],\n add: [$department, $add],\n update: [$department, $update],\n }\n\r\n private readonly http = new HttpBXServices()\r\n\r\n get(param: iBXRestParamDepartmentGet = {}) {\r\n return this.http.post<iBXRestDepartmentHttp[]>(this.url.get, param)\r\n }\r\n\r\n add(param: iBXRestParamDepartmentAdd) {\r\n return this.http.post<number>(this.url.add, param)\r\n }\r\n\r\n del(param: iBXRestParamDepartmentDel) {\r\n return this.http.post<boolean>(this.url.del, param)\r\n }\r\n\r\n update(param: iBXRestDepartmentUpdate) {\r\n return this.http.post<boolean>(this.url.update, param)\r\n }\r\n}\r\n","import { HttpBXServices } from '../services/http/HttpBX'\nimport { iBXRestAppInfoHttp } from '../typification/rest/app/info'\n\r\nexport class BXRestApp {\r\n private readonly http = new HttpBXServices()\r\n\r\n /**\r\n * Показ информации о приложении. Метод поддерживает безопасный вызов\r\n */\r\n info() {\n return this.http.post<iBXRestAppInfoHttp>(['app', 'info'])\n }\n}\n","import {\n iBXRestParamSocialNetWorkApiContentViewSet, iBXRestSocialNetWorkApiContentViewSet\n} from '../../../typification/rest/socialnetwork/api/contentview/set'\nimport { HttpBXServices } from '../../../services/http/HttpBX'\nimport { $api, $set, $socialnetwork } from '../../../consts/part-name-methods'\n\nexport class BXRestSocialNetWorkApiContentView {\n private url = {\n set: [$socialnetwork, $api, 'contentView', $set],\n }\n\r\n private http = new HttpBXServices()\r\n\r\n set(param: iBXRestParamSocialNetWorkApiContentViewSet){\r\n return this.http.post<iBXRestSocialNetWorkApiContentViewSet>(this.url.set, param)\r\n }\r\n\r\n}\n","import { HttpBXServices } from '../../../../../services/http/HttpBX'\nimport {\n iBXRestParamSocialNetWorkApiBlogpostImportantVote, iBXRestSocialNetWorkApiBlogpostImportantVoteHttp\n} from '../../../../../typification/rest/socialnetwork/api/livefeed/blogpost/important/vote'\nimport { $api, $socialnetwork } from '../../../../../consts/part-name-methods'\n\nexport class BXRestSocialNetWorkApiLiveFeedBlogPostImportant {\n private url = {\n vote: [$socialnetwork, $api, 'liveFeed', 'blogPost', 'important', 'vote'],\n }\n private http = new HttpBXServices()\n\r\n vote(param: iBXRestParamSocialNetWorkApiBlogpostImportantVote) {\r\n return this.http.post<iBXRestSocialNetWorkApiBlogpostImportantVoteHttp>(this.url.vote, param)\r\n }\r\n}\n","import {\r\n BXRestSocialNetWorkApiLiveFeedBlogPostImportant,\r\n} from './blogpost/important'\r\n\r\nexport class BXRestSocialNetWorkApiLiveFeedBlogPost {\r\n public readonly important = new BXRestSocialNetWorkApiLiveFeedBlogPostImportant()\r\n}","import { BXRestSocialNetWorkApiLiveFeedBlogPost } from './livefeed/blogpost'\r\n\r\nexport class BXRestSocialNetWorkApiLiveFeed {\r\n public readonly blogPost = new BXRestSocialNetWorkApiLiveFeedBlogPost()\r\n}","import { BXRestSocialNetWorkApiContentView } from './api/contentview'\r\nimport { BXRestSocialNetWorkApiLiveFeed } from './api/livefeed'\r\n\r\nexport class BXRestSocialNetWorkApi {\r\n public readonly contentView = new BXRestSocialNetWorkApiContentView()\r\n public readonly liveFeed = new BXRestSocialNetWorkApiLiveFeed()\r\n}","import { BXRestSocialNetWorkApi } from './socialnetwork/api'\r\n\r\nexport class BXRestSocialNetWork {\n // private http = new HttpBXServices)\n public api = new BXRestSocialNetWorkApi()\n\r\n\r\n\r\n}\n","import { $application, $config, $get, $pull } from '../../../consts/part-name-methods'\r\nimport { HttpBXServices } from '../../../services/http/HttpBX'\r\nimport { iBXRestPullApplicationConfigGetHttp } from '../../../typification/rest/pull/application/config/get'\r\n\r\nexport class BXRestPullApplicationConfig {\r\n private readonly http = new HttpBXServices()\r\n\r\n get() {\r\n return this.http.post<iBXRestPullApplicationConfigGetHttp>([$pull, $application, $config, $get])\r\n }\r\n}","import { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { $config, $get, $pull } from '../../consts/part-name-methods'\r\nimport { iBXRestPullConfigGetHttp } from '../../typification/rest/pull/config/get'\r\nimport { BXRestPullApplicationConfig } from './application/config'\r\n\r\nexport class BXRestPullConfig {\r\n private readonly http = new HttpBXServices()\r\n public readonly config = new BXRestPullApplicationConfig()\r\n\r\n get() {\r\n return this.http.post<iBXRestPullConfigGetHttp>([$pull, $config, $get])\r\n }\r\n}","import { HttpBXServices } from '../../../services/http/HttpBX'\r\nimport {\r\n iBXRestPullChannelPublicGetHttp\r\n} from '../../../typification/rest/pull/channel/get'\r\nimport { $channel, $get, /*$list,*/ $public, $pull } from '../../../consts/part-name-methods'\r\n\r\nexport class BXRestPullChannelPublic {\r\n private readonly http = new HttpBXServices()\r\n\r\n get() {\r\n return this.http.post<iBXRestPullChannelPublicGetHttp>([$pull, $channel, $public, $get])\r\n }\r\n\r\n /**\r\n * Пес его знает что за метод такой, судя по коду нужно всю инфу json объектом о пользователе передать,\r\n * но это не точно\r\n */\r\n // list() {\r\n // return this.http.post<iBXRestPullChannelPublicGetHttp>([$pull, $channel, $public, $list])\r\n // }\r\n}","import { BXRestPullConfig } from './pull/config'\r\nimport { BXRestPullChannelPublic } from './pull/channel/public'\r\n\r\nexport class BXRestPull {\r\n public readonly config = new BXRestPullConfig()\r\n public readonly channel = {\r\n public: new BXRestPullChannelPublic()\r\n }\r\n} ","import { BXRestUser } from '../request/user'\r\nimport { BXRestLists } from '../request/lists'\r\nimport { BXRestTask } from '../request/task'\r\nimport { BXRestTasks } from '../request/tasks'\r\nimport { BXRestDisk } from '../request/disk'\r\nimport { BXRestBizProc } from '../request/bizproc'\r\nimport { BXRestLog } from '../request/log'\r\nimport { BXRestSonetGroup } from '../request/sonet_group'\r\nimport { BXRestServer } from '../request/server'\r\nimport { BXRestDepartment } from '../request/department'\r\nimport { BXRestApp } from '../request/app'\r\nimport { HttpBXServices } from '../services/http/HttpBX'\r\nimport { iBXRestProfileHttp } from '../typification/rest/profile'\r\nimport { iBXRestBatch, iBXRestParamBatch } from '../typification/rest/batch'\r\nimport { BXRestSocialNetWork } from '../request/socialnetwork'\r\nimport { BXRestPull } from '../request/pull'\r\n\r\nexport class BXRest {\r\n private readonly http = new HttpBXServices()\r\n public readonly user = new BXRestUser()\r\n public readonly lists = new BXRestLists()\r\n public readonly task = new BXRestTask()\r\n public readonly tasks = new BXRestTasks()\r\n public readonly disk = new BXRestDisk()\r\n public readonly bizProc = new BXRestBizProc()\r\n public readonly log = new BXRestLog()\r\n public readonly sonet_group = new BXRestSonetGroup()\r\n public readonly server = new BXRestServer()\r\n public readonly department = new BXRestDepartment()\r\n public readonly app = new BXRestApp()\r\n public readonly socialNetWork = new BXRestSocialNetWork()\r\n public readonly pull = new BXRestPull()\r\n\r\n public profile() {\r\n return this.http.post<iBXRestProfileHttp>(['profile'])\r\n }\r\n\r\n public batch<T>(param: iBXRestParamBatch) {\r\n return this.http.post<iBXRestBatch<T>>(['batch'], param)\r\n }\r\n}","import { concatMap, from, last, mergeMap, shareReplay, throwError, toArray } from 'rxjs'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\nimport clone from 'just-clone'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport { ReturnTypeNavvy } from './navvy-support'\r\nimport { iBXRestAlternativePagination } from '../../typification/rest/base/api-pagination-bx'\r\nimport { instanceOfiBXRestAnswerSuccess } from '../../functions/mapResult'\r\nimport { NavvyPagBase } from './extends/navvy-pag-base'\r\nimport * as qs from 'qs'\r\nimport { BXRest } from '../../rest/base'\r\n\r\n/**\r\n * Класс-прослойка-обработчик для методов работающих на альтернативной постраничной навигации тика как методы по\r\n * затраченному времени на задачи https://dev.1c-bitrix.ru/rest_help/tasks/task/elapseditem/index.php\r\n *\r\n * не завершенный класс, работаем от частного к общему\r\n */\r\nexport class NavvyAlterPagNav<T, R, P extends iBXRestAlternativePagination> extends NavvyPagBase<T[], R[], P> {\r\n\r\n resAll() {\r\n let save: ReturnTypeNavvy<T, R>[] = []\r\n return this.resultAllEnd()\r\n .pipe(\r\n map(v => {\r\n if (v) {\r\n save.push(...v as ReturnTypeNavvy<T, R>[])\r\n }\r\n return save\r\n }\r\n ),\r\n last(),\r\n shareReplay(1)\r\n )\r\n }\r\n\r\n private resultAllEnd() {\r\n let BXRestClass = new BXRest()\r\n // return this.mapForVanillaEnd(this.func, this.param)\r\n return this.resVanilla().pipe(\r\n mergeMap(\r\n items => {\r\n if (items && instanceOfiBXRestAnswerSuccess(items)) {\r\n if (items.total && items.next) {\r\n const count = [...Array(Math.floor(items.total / this.pageSize)).keys()]\r\n\r\n // Разделяем массив на блоки\r\n const chunks = []\r\n\r\n for (let i = 0; i < count.length; i += this.pageSize) {\r\n chunks.push(count.slice(i, i + this.pageSize))\r\n }\r\n\r\n const batchRequests = chunks.map(chunk => {\r\n return BXRestClass.batch<T[][]>({\r\n halt: 1,\r\n cmd: chunk.map(i => {\r\n const param = clone(this.param)\r\n\r\n if (!param.PARAMS) {\r\n param.PARAMS = {\r\n NAV_PARAMS: {\r\n iNumPage: 0,\r\n nPageSize: 50\r\n }\r\n }\r\n }\r\n\r\n // Устанавливаем start в зависимости от индекса\r\n param.PARAMS!.NAV_PARAMS.iNumPage = i + 2 // первая страница уже есть, старт со второй\r\n\r\n // Формируем строку запроса\r\n return this.http.getNameMethod(this.url)\r\n + '?' + qs.stringify(param, {arrayFormat: 'brackets'})\r\n })\r\n })\r\n })\r\n\r\n return from(batchRequests).pipe(\r\n concatMap(request => request), // Выполняет запросы по очереди\r\n toArray(), // Собирает все результаты в массив\r\n map(results => {\r\n const res = items.result as T[]\r\n for (let result of results) {\r\n if (result && instanceOfiBXRestAnswerSuccess(result) && result.result && result.result.result) {\r\n res.push(...result.result.result.map(i => i).flat())\r\n }\r\n }\r\n\r\n return (this.map) ?\r\n this.map(res)\r\n : res\r\n })\r\n )\r\n }\r\n }\r\n\r\n return this.mapResultForGetAll(items)\r\n }\r\n ),\r\n catchError(err => {\r\n // this.snackBar.error(\"Проблемы с поточным получение затреканого времени\")\r\n console.error(err)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n\r\n private mapResultForGetAll(items: iBXRestAnswer<T[]> | undefined) {\r\n return (instanceOfiBXRestAnswerSuccess(items)) ? from([items.result]).pipe(\r\n map(v => (v && this.map) ? this.map(v) : v)\r\n ) : from([] as ReturnTypeNavvy<T, R>[])\r\n }\r\n}\r\n","import { iBXRestPagination } from '../../typification/rest/base/api-pagination-bx'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport { concatMap, from, mergeMap, of, throwError, toArray } from 'rxjs'\r\nimport clone from 'just-clone'\r\nimport { instanceOfiBXRestAnswerSuccess } from '../../functions/mapResult'\r\nimport { NavvyPagBase } from './extends/navvy-pag-base'\r\nimport { ReturnTypeNavvy } from './navvy-support'\r\nimport * as qs from 'qs'\r\nimport { BXRest } from '../../rest/base'\r\n\r\nexport class NavvyPagNavWithUselessKey<T, R, P extends iBXRestPagination> extends NavvyPagBase<Record<string, T>, R[], P> {\r\n\r\n save: ReturnTypeNavvy<Record<string, T>, R[]> = []\r\n\r\n resAll() {\r\n let BXRestClass = new BXRest()\r\n return this.resVanilla().pipe(\r\n mergeMap(\r\n items => {\r\n if (items && instanceOfiBXRestAnswerSuccess(items)) {\r\n if (items.total && items.next) {\r\n const count = [...Array(Math.floor(items.total / this.pageSize)).keys()]\r\n\r\n // Разделяем массив на блоки\r\n const chunks = []\r\n\r\n for (let i = 0; i < count.length; i += this.pageSize) {\r\n chunks.push(count.slice(i, i + this.pageSize))\r\n }\r\n\r\n const batchRequests = chunks.map(chunk => {\r\n return BXRestClass.batch<Record<string, T>[]>({\r\n halt: 1,\r\n cmd: chunk.map(i => {\r\n const param = clone(this.param)\r\n // Устанавливаем start в зависимости от индекса\r\n param.start = (i + 1) * this.pageSize\r\n\r\n // Формируем строку запроса\r\n return this.http.getNameMethod(this.url)\r\n + '?' + qs.stringify(param, { arrayFormat: 'brackets' })\r\n })\r\n }).pipe(\r\n map(v => {\r\n if (v && instanceOfiBXRestAnswerSuccess(v) && v.result && v.result.result && items.result) {\r\n return Object.assign({}, items.result, v.result.result) as Record<string, T>\r\n }\r\n\r\n throw new Error('wrong batch')\r\n })\r\n )\r\n })\r\n\r\n return from(batchRequests).pipe(\r\n concatMap(request => request), // Выполняет запросы по очереди\r\n toArray()) // Собирает все результаты в массив\r\n /*\r\n return this.getAllTaskElapsedItem(func, param).pipe(\r\n map(vEnd => {\r\n if (vEnd && vEnd.result && items.result) {\r\n return merge(clone(vEnd), {result: [...items.result, ...vEnd.result]})\r\n }\r\n return items\r\n })\r\n )\r\n */\r\n } else {\r\n return of([items.result as Record<string, T>])\r\n }\r\n }\r\n return of(undefined)\r\n // return from([BXRestMapResult(items)])\r\n // as ReturnType<Observable<T | undefined>, Observable<R | undefined>>\r\n }\r\n ),\r\n map(v => {\r\n if (v) {\r\n const mergedObject: Record<string, T> = v.reduce((acc, obj) => {\r\n return { ...acc, ...obj }\r\n }, {})\r\n\r\n if(this.map){\r\n return this.map(mergedObject)\r\n }\r\n this.save.push(...v as ReturnTypeNavvy<Record<string, T>, R[]>)\r\n return this.save\r\n }\r\n return v\r\n }),\r\n catchError(err => {\r\n // this.snackBar.error(\"Проблемы с поточным получение затреканого времени\")\r\n console.error(err)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n}\r\n","import { concatMap, from, last, mergeMap, shareReplay, throwError, toArray } from 'rxjs'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport clone from 'just-clone'\r\nimport { iBXRestPagination } from '../../typification/rest/base/api-pagination-bx'\r\nimport { ReturnTypeNavvy } from './navvy-support'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\nimport { instanceOfiBXRestAnswerSuccess } from '../../functions/mapResult'\r\nimport { NavvyPagBase } from './extends/navvy-pag-base'\r\nimport * as qs from 'qs'\r\nimport { BXRest } from '../../rest/base'\r\n\r\nexport class NavvyPagNavTasks<T, R, P extends iBXRestPagination> extends NavvyPagBase<{tasks: T[] | undefined}, R[], P> {\r\n\r\n save: ReturnTypeNavvy<T, R>[] = []\r\n resAll() {\r\n let save: ReturnTypeNavvy<T, R>[] = []\r\n return this.resultAllEnd()\r\n .pipe(\r\n map(v => {\r\n if (v) {\r\n save.push(...v as ReturnTypeNavvy<T, R>[])\r\n }\r\n return save\r\n }\r\n ),\r\n last(),\r\n shareReplay(1)\r\n )\r\n }\r\n\r\n private resultAllEnd() {\r\n let BXRestClass = new BXRest()\r\n return this.resVanilla().pipe(\r\n mergeMap(\r\n items => {\r\n if (items && instanceOfiBXRestAnswerSuccess(items)) {\r\n this.save = []\r\n // TODO: проверить будет ли быстрее работать метод в случаях когда total < 100 (то есть можно обойтись двумя прямыми запросами)\r\n if (items.total && items.total > 50) {\r\n const count = [...Array(Math.floor(items.total / this.pageSize)).keys()]\r\n\r\n // Разделяем массив на блоки\r\n const chunks = []\r\n\r\n for (let i = 0; i < count.length; i += this.pageSize) {\r\n chunks.push(count.slice(i, i + this.pageSize))\r\n }\r\n\r\n const batchRequests = chunks.map(chunk => {\r\n return BXRestClass.batch<{tasks: T[] | undefined}[]>({\r\n halt: 1,\r\n cmd: chunk.map(i => {\r\n const param = clone(this.param)\r\n // Устанавливаем start в зависимости от индекса\r\n param.start = (i + 1) * this.pageSize\r\n\r\n // Формируем строку запроса\r\n return this.http.getNameMethod(this.url)\r\n + '?' + qs.stringify(param, { arrayFormat: 'brackets' })\r\n })\r\n })\r\n })\r\n\r\n return from(batchRequests).pipe(\r\n concatMap(request => request), // Выполняет запросы по очереди\r\n toArray(), // Собирает все результаты в массив\r\n map(results => {\r\n if(items.result && items.result.tasks) {\r\n const res = items.result.tasks as T[]\r\n\r\n for (let result of results) {\r\n if (result && instanceOfiBXRestAnswerSuccess(result) && result.result && result.result.result) {\r\n res.push(...result.result.result.filter(i => i).map(i => i.tasks).flat() as T[])\r\n }\r\n }\r\n\r\n return (this.map) ?\r\n this.map({tasks: res})\r\n : res\r\n }\r\n\r\n throw new Error('wrong batch')\r\n })\r\n )\r\n }\r\n\r\n return this.mapResForGetAll(items)\r\n }\r\n return this.mapResForGetAll(items)\r\n }\r\n ),\r\n catchError(err => {\r\n console.error(err)\r\n return throwError(() => err)\r\n })\r\n )\r\n }\r\n\r\n private mapResForGetAll(items: iBXRestAnswer<{tasks: T[] | undefined}> | undefined){\r\n return (instanceOfiBXRestAnswerSuccess(items)) ? from([items.result]).pipe(\r\n map(v => (v && this.map) ? this.map(v) : v)\r\n ) : from([])\r\n }\r\n}\r\n","import { concatMap, from, mergeMap, toArray} from 'rxjs'\r\nimport { map } from 'rxjs/operators'\r\nimport clone from 'just-clone'\r\nimport { iBXRestPagination } from '../../typification/rest/base/api-pagination-bx'\r\nimport { ReturnTypeNavvy } from './navvy-support'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\nimport { instanceOfiBXRestAnswerSuccess } from '../../functions/mapResult'\r\nimport { BXRest } from '../../rest/base'\r\nimport { NavvyPagBase } from './extends/navvy-pag-base'\r\nimport * as qs from 'qs'\r\n\r\n\r\nexport class NavvyPag<T, R, P extends iBXRestPagination> extends NavvyPagBase<T[], R[], P> {\r\n\r\n save: ReturnTypeNavvy<T, R>[] = []\r\n\r\n resAll() {\r\n let BXRestClass = new BXRest()\r\n return this.resVanilla().pipe(\r\n mergeMap(\r\n items => {\r\n if (items && instanceOfiBXRestAnswerSuccess(items)) {\r\n this.save = []\r\n // TODO: проверить будет ли быстрее работать метод в случаях когда total < 100 (то есть можно обойтись двумя прямыми запросами)\r\n if (items.total && items.total > 50) {\r\n const mathFloor = Math.floor(items.total / this.pageSize)\r\n const count = (mathFloor === items.total / this.pageSize) // если mathFloor равен обычному делению, значит один запрос будет лишним, так как результат первой страницы уже есть, а последняя в данном случаи будет пустая (или с мусорными аднными)\r\n ? [...Array(mathFloor - 1).keys()]\r\n : [...Array(mathFloor).keys()]\r\n\r\n // Разделяем массив на блоки\r\n const chunks = []\r\n\r\n for (let i = 0; i < count.length; i += this.pageSize) {\r\n chunks.push(count.slice(i, i + this.pageSize))\r\n }\r\n\r\n const batchRequests = chunks.map(chunk => {\r\n return BXRestClass.batch<T[][]>({\r\n halt: 1,\r\n cmd: chunk.map(i => {\r\n const param = clone(this.param)\r\n // Устанавливаем start в зависимости от индекса\r\n param.start = (i + 1) * this.pageSize\r\n\r\n // Формируем строку запроса\r\n return this.http.getNameMethod(this.url)\r\n + '?' + qs.stringify(param, { arrayFormat: 'brackets' })\r\n })\r\n }).pipe(\r\n )\r\n })\r\n\r\n return from(batchRequests).pipe(\r\n concatMap(request => request), // Выполняет запросы по очереди\r\n toArray(), // Собирает все результаты в массив\r\n map(results => {\r\n const res = items.result as T[]\r\n for(let result of results){\r\n if (result && instanceOfiBXRestAnswerSuccess(result) && result.result && result.result.result) {\r\n res.push(...result.result.result.map(i => i).flat())\r\n }\r\n }\r\n\r\n return (this.map) ?\r\n this.map(res)\r\n : res\r\n }),\r\n )\r\n }\r\n\r\n return this.mapResForGetAll(items)\r\n }\r\n return this.mapResForGetAll(items)\r\n }\r\n ),\r\n map(v => {\r\n if (v) {\r\n this.save.push(... v as ReturnTypeNavvy<T, R>[])\r\n }\r\n\r\n return this.save\r\n })\r\n )\r\n }\r\n\r\n private mapResForGetAll(items: iBXRestAnswer<T[]> | undefined) {\r\n return (instanceOfiBXRestAnswerSuccess(items)) ? from([items.result]).pipe(\r\n map(v => (v && this.map) ? this.map(v) : v)\r\n ) : from([])\r\n }\r\n}\r\n","import { Observable } from 'rxjs'\r\nimport { iBXRestAnswer } from '../../typification/rest/base/answer'\r\nimport { catchError, map } from 'rxjs/operators'\r\nimport { BXRestMapResult } from '../../functions/mapResult'\r\n\r\nexport type ReturnTypeNavvy<T, R> = T extends R ? T : R\r\n\r\nexport abstract class NavvySupport<C, T, R> {\r\n\r\n pageSize = 50 // стандартный размер страницы\r\n\r\n protected constructor(\r\n public requestClass: C,\r\n ) {\r\n }\r\n\r\n mapAndError<T>(\r\n request: Observable<iBXRestAnswer<T> | undefined>\r\n ) {\r\n return request.pipe(\r\n map(v => BXRestMapResult(v)),\r\n catchError((err: any) => {\r\n console.error(err)\r\n throw new Error((err.error) ? err.error : err)\r\n })\r\n )\r\n }\r\n\r\n abstract resVanilla(): Observable<iBXRestAnswer<T> | undefined>\r\n\r\n abstract res(): ReturnTypeNavvy<Observable<T | undefined>, Observable<R | undefined>>\r\n}\r\n","import { NavvySimple } from './navvy/navvy-simple'\r\nimport { NavvyAlterPagNav } from './navvy/navvy-alternative-pagination-navigation'\r\nimport { iBXRestAlternativePagination, iBXRestPagination } from '../typification/rest/base/api-pagination-bx'\r\nimport { NavvyPagNavWithUselessKey } from './navvy/navvy-pag-nav-with-useless-key'\r\nimport { NavvyPagNavTasks } from './navvy/navvy-pag-nav-tasks'\r\nimport { NavvyPag } from './navvy/navvy-pag'\r\n\r\nexport * from './navvy/navvy-simple'\r\nexport * from './navvy/navvy-alternative-pagination-navigation'\r\nexport * from './navvy/navvy-pag-nav-with-useless-key'\r\nexport * from './navvy/navvy-pag-nav-tasks'\r\nexport * from './navvy/navvy-pag'\r\nexport * from './navvy/navvy-support'\r\n\r\nexport class Navvy {\r\n\r\n simple<T, R = T, A = undefined>(\r\n url: string[],\r\n arg?: A,\r\n map?: (param: T | undefined) => R | undefined\r\n ) {\r\n return new NavvySimple(\r\n url,\r\n arg !== undefined ? arg : undefined,\r\n map\r\n )\r\n }\r\n\r\n /**\r\n * Новый, пока тестируемый метод для api методов с пагинацией\r\n *\r\n * @param url\r\n * @param arg\r\n * @param map\r\n * @constructor\r\n */\r\n pagNav<T, R, A extends iBXRestPagination>(\r\n url: string[],\r\n arg: A,\r\n map?: (param: T[] | undefined) => R[] | undefined\r\n ) {\r\n return new NavvyPag(url, arg, map)\r\n }\r\n\r\n // old PagNav\r\n // PagNav<T, R, A extends iBXRestPagination>(\r\n // func: (param: A) => Observable<iBXRestAnswer<T[]> | undefined>,\r\n // arg: A,\r\n // map: ((param: T[] | undefined) => R[] | undefined) | undefined) {\r\n // return new NavvyPagNav(this.requestClass, this.mapClass, func, arg, map)\r\n // }\r\n\r\n // Batch<T, R, A extends iBXRestPagination>(\r\n // func: (param: A) => Observable<iBXRestAnswer<T[]> | undefined>,\r\n // arg: A,\r\n // map: ((param: T[] | undefined) => R[] | undefined) | undefined) {\r\n // return new NavvyBatch(this.requestClass, this.mapClass, func, arg, map)\r\n // }\r\n\r\n pagNavTasks<T, R, A extends iBXRestPagination>(\r\n url: string[],\r\n // func: (param: A) => Observable<iBXRestAnswer<{tasks: T[] | undefined}> | undefined>,\r\n arg: A,\r\n map?: (param: { tasks: T[] | undefined } | undefined) => R[] | undefined\r\n ) {\r\n return new NavvyPagNavTasks(url, arg, map)\r\n }\r\n\r\n pagNavWithUselessKey<T, R, A extends iBXRestPagination>(\r\n url: string[],\r\n // func: (param: A) => Observable<iBXRestAnswer<{ [key: string]: T }> | undefined>,\r\n arg: A,\r\n map?: (param: Record<string, T> | undefined) => R[] | undefined\r\n ) {\r\n return new NavvyPagNavWithUselessKey(url, arg, map)\r\n }\r\n\r\n alterPagNav<T, R, A extends iBXRestAlternativePagination>(\r\n url: string[],\r\n // func: (param: A) => Observable<iBXRestAnswer<T[]> | undefined>,\r\n arg: A,\r\n map?: (param: T[] | undefined) => R[] | undefined\r\n ) {\r\n return new NavvyAlterPagNav(url, arg, map)\r\n }\r\n}\r\n","import { Navvy } from '../../services/navvy'\nimport { $add, $delete, $file, $get, $list, $update, $user, $userfield } from '../../consts/part-name-methods'\nimport { iBXRestUserUserField } from '../../typification/rest/user'\n\r\nexport class BXRestNavvyUserUserfield {\r\n private url = {\r\n /**\r\n * Добавляет пользовательское поле\r\n */\r\n add: [$user, $userfield, $add],\r\n /**\r\n * Обновляет пользовательское поле\r\n */\r\n update: [$user, $userfield, $update],\r\n /**\r\n * Удаляет пользовательское поле\r\n */\r\n delete: [$user, $userfield, $delete],\r\n /**\r\n * Получает список пользовательских полей\r\n */\r\n list: [$user, $userfield, $list],\r\n file: {\r\n /**\r\n * Получает файл из пользовательского поля\r\n */\r\n get: [$user, $userfield, $file, $get]\r\n }\r\n }\r\n\r\n private readonly Navvy = new Navvy()\r\n\r\n list() {\n return this.Navvy.simple<iBXRestUserUserField[]>(this.url.list)\n }\n}\n","import clone from 'just-clone'\r\nimport { iBXRestUser, iBXRestUserHttp } from '../typification/rest/user'\r\nimport { toBool, toBXYorN, toDate, toISOStringWithTimezone, toNum, toStr } from '../services/base'\r\n\r\nexport class BXRestMapUser {\r\n\r\n static get(v: iBXRestUserHttp[] | undefined): iBXRestUser[] | undefined {\r\n return (v) ? v.map(i => BXRestMapUser.userHttpToTrace(i)) : undefined\r\n }\r\n\r\n static current(v: iBXRestUserHttp | undefined): iBXRestUser | undefined {\r\n return (v) ? BXRestMapUser.userHttpToTrace(v) : undefined\r\n }\r\n\r\n static userHttpToTrace(user: iBXRestUserHttp): iBXRestUser {\r\n let res: iBXRestUser = Object.assign(\r\n clone(user), {\r\n ID: toNum(user.ID),\r\n IS_ONLINE: toBool(user.IS_ONLINE),\r\n DATE_REGISTER: toDate(user.DATE_REGISTER),\r\n PERSONAL_BIRTHDAY: toDate(user.PERSONAL_BIRTHDAY),\r\n })\r\n if (user.LAST_LOGIN) {\r\n res.LAST_LOGIN = toDate(user.LAST_LOGIN)\r\n }\r\n\r\n return res\r\n }\r\n\r\n static BXtoHttp(user: iBXRestUser): iBXRestUserHttp {\r\n return Object.assign(clone(user), {\r\n ID: toStr(user.ID),\r\n IS_ONLINE: toBXYorN(user.IS_ONLINE),\r\n DATE_REGISTER: toISOStringWithTimezone(user.DATE_REGISTER),\r\n PERSONAL_BIRTHDAY: toStr(user.PERSONAL_BIRTHDAY),\r\n LAST_LOGIN: toStr(user.LAST_LOGIN)\r\n })\r\n }\r\n\r\n static getFIO(user: iBXRestUser): string {\r\n let res = ''\r\n if (!user.LAST_NAME) {\r\n const SECOND_NAME = (user.SECOND_NAME) ? user.SECOND_NAME : ''\r\n const NAME = (user.NAME) ? user.NAME : ''\r\n res = NAME + ' ' + SECOND_NAME\r\n } else if (!user.NAME) {\r\n res = user.LAST_NAME\r\n } else if (!user.SECOND_NAME) {\r\n res = user.LAST_NAME + ' ' + user.NAME\r\n } else {\r\n res = user.LAST_NAME + ' ' + user.NAME + ' ' + user.SECOND_NAME\r\n }\r\n return res.trim()\r\n }\r\n\r\n static getFI(user: iBXRestUser): string {\r\n let res = ''\r\n if (!user.LAST_NAME) {\r\n const NAME = (user.NAME) ? user.NAME : ''\r\n res = NAME\r\n } else if (!user.NAME) {\r\n res = user.LAST_NAME\r\n } else {\r\n res = user.LAST_NAME + ' ' + user.NAME\r\n }\r\n return res.trim()\r\n }\r\n\r\n static getFIOShort(user: iBXRestUser): string {\r\n let res = ''\r\n if (!user.LAST_NAME) {\r\n const SECOND_NAME = (user.SECOND_NAME) ? user.SECOND_NAME : ''\r\n const NAME = (user.NAME) ? user.NAME : ''\r\n res = NAME + ' ' + SECOND_NAME\r\n } else if (!user.NAME) {\r\n res = user.LAST_NAME\r\n } else if (!user.SECOND_NAME) {\r\n res = user.LAST_NAME + ' ' + user.NAME.charAt(0).toUpperCase() + '.'\r\n } else {\r\n res =\r\n user.LAST_NAME + ' ' +\r\n user.NAME.charAt(0).toUpperCase() + '.' +\r\n user.SECOND_NAME.charAt(0).toUpperCase() + '.'\r\n }\r\n return res.trim()\r\n }\r\n}\r\n","import { Navvy } from '../services/navvy'\r\nimport {\n iBXRestParamUserGet,\n iBXRestParamUserSearch,\n iBXRestUser,\n iBXRestUserHttp,\n iBXRestUserHttpField\n} from '../typification/rest/user'\nimport clone from 'just-clone'\r\nimport { BXRestNavvyUserUserfield } from './user/userfield'\r\nimport { BXRestMapUser } from '../map/user'\r\nimport { $get, $search, $update, $user } from '../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyUser {\r\n def: { params: { ACTIVE: boolean, start: 0 } } = {\r\n params: {ACTIVE: true, start: 0}\r\n }\r\n url = {\r\n admin: [$user, 'admin'],\r\n get: [$user, $get],\r\n current: [$user, 'current'],\r\n update: [$user, $update],\r\n search: [$user, $search],\r\n access: [$user, 'access'], // U1 - пользователь с id =1\r\n // AU - все авторизованные пользователи\r\n // D1 - подразделение с id=1\r\n // G1 - группа с id=1\r\n fields: [$user, 'fields'],\r\n }\r\n\r\n public readonly userField = new BXRestNavvyUserUserfield()\r\n private readonly Navvy = new Navvy()\r\n\r\n admin() {\r\n return this.Navvy.simple<boolean>(\r\n this.url.admin\r\n )\r\n }\r\n\r\n get(params: iBXRestParamUserGet = {}) {\r\n let copyParams = clone(params)\r\n this.setDefParam(copyParams)\r\n\r\n return this.Navvy.pagNav(\r\n this.url.get,\r\n copyParams,\r\n BXRestMapUser.get)\r\n }\r\n\r\n current() {\r\n return this.Navvy.simple<iBXRestUserHttp, iBXRestUser>(\r\n this.url.current,\r\n undefined,\r\n BXRestMapUser.current\r\n )\r\n }\r\n\r\n /*\r\n update(user: iBXRestUser, fieldUpdate: string[]) {\r\n\r\n if (fieldUpdate && fieldUpdate.length) {\r\n let sendData: any = {\r\n ID: user.ID,\r\n }\r\n const userBX = this.BXRestUserMap.BXtoHttp(user)\r\n for (const field of fieldUpdate) {\r\n if (userBX[field]) {\r\n sendData[field] = userBX[field]\r\n } else {\r\n return throwError(() => 'One sent field is empty')\r\n }\r\n }\r\n return this.http.post<iBXRestUserHttp[]>(\r\n this.url.update,\r\n sendData\r\n )\r\n } else {\r\n return throwError(() => 'All sent field for edit is empty')\r\n }\r\n return this.Navvy.simple(\r\n this.BXRestUser.update(user, fieldUpdate),\r\n 'Не удалось обновить пользователя с ID' + user.ID\r\n )\r\n }\r\n */\r\n search(params: iBXRestParamUserSearch) {\r\n return this.Navvy.pagNav(\r\n this.url.search,\r\n params,\r\n BXRestMapUser.get\r\n )\r\n }\r\n\r\n access(params: string[]) {\n return this.Navvy.simple<boolean, boolean, string[]>(\n this.url.access,\n params,\n )\n }\n\n fields() {\n return this.Navvy.simple<iBXRestUserHttpField>(this.url.fields)\n }\n\r\n // getAll(params: iBXGetParam = {}): Observable<iBXRestUser [] | undefined> {\r\n // if (!Object.keys(params).length) {\r\n // params = clone(this.def.params)\r\n // }\r\n //\r\n // const saveAllUser = compare(params, this.def.params)\r\n // return this.user$.pipe(\r\n // take(1),\r\n // mergeMap(v => {\r\n // if (v.load.all) {\r\n // if (compare(this.def.params, params)) {\r\n // return of(clone(v.data))\r\n // }\r\n // }\r\n //\r\n // return this.getEndArray(params).pipe(\r\n // take(1),\r\n // map(v => {\r\n // if (v && v.result) {\r\n // let cl = clone(v.result)\r\n // return this.saveArrUser(cl)\r\n // }\r\n // return undefined\r\n // }),\r\n // )\r\n // }),\r\n // tap(v => {\r\n // if (v && v.length && saveAllUser) {\r\n // this.store.dispatch(loadAll({load: true}))\r\n // }\r\n // params.start = this.def.params.start\r\n // })\r\n // )\r\n // }\r\n\r\n // private saveArrUser(users: iBXRestUserHttp[]) {\r\n // let result: iBXRestUser [] = []\r\n // for (const user of users) {\r\n // result.push(this.userMap.HttpToBX(user))\r\n // }\r\n // this.store.dispatch(saveArr({arr: result}))\r\n //\r\n // return result\r\n // }\r\n\r\n // getEndArray(params: UserFilter = {}): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined> {\r\n // return this.get(params).pipe(\r\n // mergeMap(items => {\r\n // if (items && items.result && typeof items.result === 'object') {\r\n // if (items.next) {\r\n // params.start = items.next\r\n // return this.getEndArray(params).pipe(map(vEnd => {\r\n // if (vEnd && items.result && vEnd.result) {\r\n // return {result: [...items.result, ...vEnd.result]}\r\n // }\r\n // return (items) ? items : undefined\r\n // }))\r\n // }\r\n // return of(items)\r\n // } else {\r\n // return of(undefined)\r\n // }\r\n // }),\r\n // )\r\n // }\r\n\r\n private setDefParam(params: iBXRestParamUserGet) {\r\n if (!params.FILTER) {\r\n params.FILTER = {}\r\n }\r\n\r\n if (!Object.prototype.hasOwnProperty.call(params.FILTER, 'ACTIVE')) {\r\n params.FILTER.ACTIVE = this.def.params.ACTIVE\r\n } else if (typeof params.FILTER.ACTIVE !== 'boolean') {\r\n delete params.FILTER.ACTIVE\r\n }\r\n\r\n if (!Object.prototype.hasOwnProperty.call(params, 'start')) {\r\n params.start = this.def.params.start\r\n }\r\n\r\n if (params.FILTER.UF_DEPARTMENT && !params.FILTER.UF_DEPARTMENT.length) {\r\n delete params.FILTER.UF_DEPARTMENT\r\n }\r\n }\r\n\r\n}\r\n\r\n","import {\r\n iBXRestHttpListsElement,\r\n iBXRestListsElement\r\n} from '../../typification/rest/lists/element/get'\r\nimport { toNum } from '../../services/base'\r\n\r\nexport default class BXRestMapListsElement {\r\n\r\n static get(items: iBXRestHttpListsElement[] | undefined): iBXRestListsElement[] | undefined {\r\n return (items)\r\n ? items.map(item => Object.assign(item, {\r\n BP_PUBLISHED: item.BP_PUBLISHED === 'Y',\r\n CREATED_BY: toNum(item.CREATED_BY),\r\n IBLOCK_ID: toNum(item.IBLOCK_ID),\r\n ID: toNum(item.ID)\r\n }))\r\n : undefined\r\n }\r\n\r\n}\r\n","import { iBXRestParamListsElementGet, iBXRestParamListsElementAdd } from '../../typification/rest/lists'\r\nimport BXRestListsElementMap from '../../map/lists/element'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { $add, $element, $get, $lists } from '../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyListsElement {\r\n\r\n url = {\r\n /**\r\n * Метод создаёт элемент списка\r\n */\r\n add: [$lists, $element, $add],\r\n // /**\r\n // * Метод удаляет элемент списка TODO: Реализовать\r\n // */\r\n // delete: [$lists, $element, $delete],\r\n /**\r\n * Метод возвращает список элементов или элемент\r\n */\r\n get: [$lists, $element, $get],\r\n // /**\r\n // * Метод обновляет элемент списка TODO: Реализовать\r\n // */\r\n // update: [$lists, $element, $update],\r\n // /**\r\n // * Метод возвращает путь к файлу TODO: Реализовать\r\n // */\r\n // getFileUrl: [$lists, $element, $get, $file, $url]\r\n }\r\n\r\n private Navvy = new Navvy()\r\n\r\n get(param: iBXRestParamListsElementGet) {\r\n return this.Navvy.pagNav(\r\n this.url.get,\r\n param,\r\n BXRestListsElementMap.get\r\n )\r\n }\r\n\r\n add(param: iBXRestParamListsElementAdd) {\n return this.Navvy.simple<number, number, iBXRestParamListsElementAdd>(this.url.add, param)\n }\n}\n","import { iBXRestFieldItem } from '../../typification/rest/lists/field/get'\r\n\r\nexport class BXRestMapListsField {\r\n static get(v: Record<string, iBXRestFieldItem> | undefined):iBXRestFieldItem[] | undefined {\r\n return (v) ? Object.values(v) : undefined\r\n }\r\n}\r\n","import { iBXRestListItem, iBXRestListItemHttp } from '../typification/rest/lists/get'\r\nimport BXRestMapListsElement from './lists/element'\r\nimport { BXRestMapListsField } from './lists/field'\r\nimport { toNum, toStr } from '../services/base'\r\n\r\nexport class BXRestMapLists {\r\n\r\n public readonly element = new BXRestMapListsElement()\r\n public readonly field = new BXRestMapListsField()\r\n\r\n static get(value: iBXRestListItemHttp[] | undefined): iBXRestListItem[] | undefined {\r\n return (value) ? value.map(i => BXRestMapLists.iBXRestListItemHttpToiBXRestListItem(i)) : undefined\r\n }\r\n\r\n static iBXRestListItemHttpToiBXRestListItem(itemLists: iBXRestListItemHttp): iBXRestListItem\r\n {\r\n return {\r\n ACTIVE: itemLists.ACTIVE === 'Y',\r\n API_CODE: toStr(itemLists.API_CODE),\r\n BIZPROC: itemLists.BIZPROC === 'Y',\r\n CANONICAL_PAGE_URL: toStr(itemLists.CANONICAL_PAGE_URL),\r\n CODE: itemLists.CODE,\r\n DESCRIPTION: toStr(itemLists.DESCRIPTION),\r\n DESCRIPTION_TYPE: itemLists.DESCRIPTION_TYPE,\r\n DETAIL_PAGE_URL: toStr(itemLists.DETAIL_PAGE_URL),\r\n EDIT_FILE_AFTER: toStr(itemLists.EDIT_FILE_AFTER),\r\n EDIT_FILE_BEFORE: toStr(itemLists.EDIT_FILE_BEFORE),\r\n ELEMENTS_NAME: toStr(itemLists.ELEMENTS_NAME),\r\n ELEMENT_NAME: toStr(itemLists.ELEMENT_NAME),\r\n EXTERNAL_ID: toStr(itemLists.EXTERNAL_ID),\r\n IBLOCK_TYPE_ID: toStr(itemLists.IBLOCK_TYPE_ID),\r\n ID: toNum(itemLists.ID),\r\n INDEX_ELEMENT: itemLists.INDEX_ELEMENT === 'Y',\r\n INDEX_SECTION: itemLists.INDEX_SECTION === 'Y',\r\n LANG_DIR: toStr(itemLists.LANG_DIR),\r\n LAST_CONV_ELEMENT: toNum(itemLists.LAST_CONV_ELEMENT),\r\n LID: toStr(itemLists.LID),\r\n LIST_MODE: toStr(itemLists.LIST_MODE),\r\n LIST_PAGE_URL: toStr(itemLists.LIST_PAGE_URL),\r\n NAME: toStr(itemLists.NAME),\r\n PICTURE: toStr(itemLists.PICTURE),\r\n PROPERTY_INDEX: toStr(itemLists.PROPERTY_INDEX),\r\n REST_ON: itemLists.REST_ON === 'Y',\r\n RIGHTS_MODE: toStr(itemLists.RIGHTS_MODE),\r\n RSS_ACTIVE: itemLists.RSS_ACTIVE === 'Y',\r\n RSS_FILE_ACTIVE: itemLists.RSS_FILE_ACTIVE === 'Y',\r\n RSS_FILE_DAYS: toStr(itemLists.RSS_FILE_DAYS),\r\n RSS_FILE_LIMIT: toStr(itemLists.RSS_FILE_LIMIT),\r\n RSS_TTL: toNum(itemLists.RSS_TTL),\r\n RSS_YANDEX_ACTIVE: itemLists.RSS_YANDEX_ACTIVE === 'Y',\r\n SECTIONS_NAME: toStr(itemLists.SECTIONS_NAME),\r\n SECTION_CHOOSER: toStr(itemLists.SECTION_CHOOSER),\r\n SECTION_NAME: toStr(itemLists.SECTION_NAME),\r\n SECTION_PAGE_URL: toStr(itemLists.SECTION_PAGE_URL),\r\n SECTION_PROPERTY: toStr(itemLists.SECTION_PROPERTY),\r\n SERVER_NAME: toStr(itemLists.SERVER_NAME),\r\n SOCNET_GROUP_ID: toStr(itemLists.SOCNET_GROUP_ID),\r\n SORT: toNum(itemLists.SORT),\r\n TIMESTAMP_X: new Date(itemLists.TIMESTAMP_X),\r\n TMP_ID: toStr(itemLists.TMP_ID),\r\n VERSION: toNum(itemLists.VERSION),\r\n WORKFLOW: itemLists.WORKFLOW === 'Y',\r\n XML_ID: toStr(itemLists.XML_ID),\r\n }\r\n }\r\n}\r\n","import { iBXRestFieldItem, iBXRestParamListField } from '../../typification/rest/lists'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestMapListsField } from '../../map/lists/field'\r\nimport { $field, $get, $lists } from '../../consts/part-name-methods'\r\n\r\nexport default class BXRestNavvyListsField {\r\n url = {\r\n // /**\r\n // * Метод создает поле списка\r\n // */\r\n // add: [$lists, $field, $add],\r\n // /**\r\n // * Метод удаляет поле списка\r\n // */\r\n // delete: [$lists, $field, $delete],\r\n /**\r\n * Метод возвращает данные поля\r\n */\r\n get: [$lists, $field, $get],\r\n // type: {\r\n // /**\r\n // * Метод возвращает доступные типа полей для указанного списка\r\n // */\r\n // get: [$lists, $field, $type, $get],\r\n // },\r\n // /**\r\n // * Метод обновляет поле списка\r\n // */\r\n // update: [$lists, $field, $update],\r\n }\r\n\r\n private Navvy = new Navvy()\r\n\r\n get(param: iBXRestParamListField) {\r\n return this.Navvy.pagNavWithUselessKey<iBXRestFieldItem,iBXRestFieldItem,iBXRestParamListField>(\r\n this.url.get,\r\n param,\r\n BXRestMapListsField.get\r\n )\r\n }\r\n}\r\n","import { BXRestNavvyListsElement } from './lists/element'\r\nimport { iBXRestParamListGet } from '../typification/rest/lists'\r\nimport { Navvy } from '../services/navvy'\r\nimport { BXRestMapLists } from '../map/lists'\r\nimport BXRestNavvyListsField from './lists/field'\r\nimport { $add, $element, $field, $get, $lists } from '../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyLists {\r\n\r\n url = {\r\n // /**\r\n // * Метод создаёт список\r\n // */\r\n // add: [$lists, $add],\r\n // /**\r\n // * Метод удаляет список\r\n // */\r\n // delete: [$lists, $delete],\r\n /**\r\n * Метод возвращает данные по спискам\r\n */\r\n get: [$lists, $get],\r\n // /**\r\n // * Метод обновляет существующий список\r\n // */\r\n // update: [$lists, $update],\r\n // /**\r\n // * Метод возвращает id типа инфоблока\r\n // */\r\n // getIBlockTypeId: [$lists, $get, $iblock, $type, $id],\r\n element: {\r\n /**\r\n * Метод создаёт элемент списка\r\n */\r\n add: [$lists, $element, $add],\r\n // /**\r\n // * Метод удаляет элемент списка TODO: Реализовать\r\n // */\r\n // delete: [$lists, $element, $delete],\r\n /**\r\n * Метод возвращает список элементов или элемент\r\n */\r\n get: [$lists, $element, $get],\r\n // /**\r\n // * Метод обновляет элемент списка TODO: Реализовать\r\n // */\r\n // update: [$lists, $element, $update],\r\n // /**\r\n // * Метод возвращает путь к файлу TODO: Реализовать\r\n // */\r\n // getFileUrl: [$lists, $element, $get, $file, $url]\r\n },\r\n field: {\r\n // /**\r\n // * Метод создает поле списка\r\n // */\r\n // add: [$lists, $field, $add],\r\n // /**\r\n // * Метод удаляет поле списка\r\n // */\r\n // delete: [$lists, $field, $delete],\r\n /**\r\n * Метод возвращает данные поля\r\n */\r\n get: [$lists, $field, $get],\r\n // type: {\r\n // /**\r\n // * Метод возвращает доступные типа полей для указанного списка\r\n // */\r\n // get: [$lists, $field, $type, $get],\r\n // },\r\n // /**\r\n // * Метод обновляет поле списка\r\n // */\r\n // update: [$lists, $field, $update],\r\n }\r\n }\r\n public readonly element = new BXRestNavvyListsElement()\r\n public readonly field = new BXRestNavvyListsField()\r\n\r\n protected Navvy = new Navvy()\r\n\r\n get(param: iBXRestParamListGet) {\r\n return this.Navvy.pagNav(this.url.get, param, BXRestMapLists.get)\r\n }\r\n\r\n // getAllWithMap(pram: getListParam): Observable<ItemLists[] | undefined> {\r\n // return this.getAll(pram)\r\n // .pipe(\r\n // map(v => (v && v.length) ? v.map(i => this.listsMap.mapItemLists(i)) : [])\r\n // )\r\n // }\r\n\r\n // getField(pram: getListFieldParam): Observable<iHttpAnswerBX<FieldItemLists[]> | undefined> {\r\n // return this.http.post<iHttpAnswerBX<{ [key: string]: FieldItemLists }>>(this.url.field.get, pram)\r\n // }\r\n}\r\n","import { iBXRestTaskElapsedItem, iBXRestTaskElapsedItemHttp } from '../../typification/rest/task'\r\nimport { toDate, toNum } from '../../services/base'\r\n\r\nexport class BXRestMapTaskElapsedItem {\r\n static update(p: null | undefined) {\r\n return (p == null)\r\n }\r\n\r\n static getList(v: iBXRestTaskElapsedItemHttp[] | undefined) {\r\n return (v) ? v.map(i => BXRestMapTaskElapsedItem.ElapsedItemHttpToElapsedItem(i)) : undefined\r\n }\r\n\r\n static ElapsedItemHttpToElapsedItem(item: iBXRestTaskElapsedItemHttp): iBXRestTaskElapsedItem {\r\n return Object.assign(item, {\r\n ID: toNum(item.ID),\r\n MINUTES: toNum(item.MINUTES),\r\n SECONDS: toNum(item.SECONDS),\r\n TASK_ID: toNum(item.TASK_ID),\r\n USER_ID: toNum(item.USER_ID),\r\n SOURCE: toNum(item.SOURCE),\r\n CREATED_DATE: toDate(item.CREATED_DATE),\r\n DATE_START: toDate(item.DATE_START),\r\n DATE_STOP: toDate(item.DATE_STOP),\r\n })\r\n }\r\n}\r\n","import { iBXRestTasksTaskResult, iBXRestTasksTaskResultHttp } from '../../../typification/rest/tasks/task/result/result'\r\nimport { toDate } from '../../../services/base'\r\n\r\nexport class BXRestMapTasksTaskResult {\r\n\r\n static list(item: iBXRestTasksTaskResultHttp[] | undefined){\r\n return (item) ? item.map(i => BXRestMapTasksTaskResult.iTaskResultHttpToiTaskResult(i)) : undefined\r\n }\r\n\r\n static addFromComment(item: iBXRestTasksTaskResultHttp | undefined){\r\n return (item) ? BXRestMapTasksTaskResult.iTaskResultHttpToiTaskResult(item) : undefined\r\n }\r\n\r\n static iTaskResultHttpToiTaskResult(item: iBXRestTasksTaskResultHttp): iBXRestTasksTaskResult {\r\n return Object.assign(item, {\r\n createdAt: toDate(item.createdAt),\r\n updatedAt: toDate(item.updatedAt)\r\n })\r\n }\r\n}\r\n","import { iBXRestTaskGetAccess } from '../../typification/rest/task/access/getaccess'\r\nimport {\r\n iBXRestTasksTaskList,\r\n iBXRestTasksTaskListHttp,\r\n} from '../../typification/rest/tasks/task/list'\r\nimport {\n iBXRestTasksTaskGet, iBXRestTasksTaskGetHttp, iBXRestTasksTaskGetHttpDefault\n} from '../../typification/rest/tasks/task/get'\nimport { BXRestMapTasksTaskResult } from './task/result'\r\nimport { iBXRestHttpTask, iBXRestTask, iBXRestTaskHttpTag } from '../../typification/rest/tasks/task'\r\nimport { iBXRestTaskFieldsName } from '../../typification/rest/tasks/base/fields-name'\r\nimport values from 'just-values'\r\nimport { toDate, toNum } from '../../services/base'\r\n\r\nexport class BXRestMapTasksTask {\r\n public readonly result = BXRestMapTasksTaskResult\r\n\r\n static getAccess(v: iBXRestTaskGetAccess | undefined) {\r\n return (v && v.allowedActions) ? v.allowedActions : undefined\r\n }\r\n\r\n static add(item: { task: iBXRestTasksTaskGetHttpDefault } | undefined): iBXRestTask | undefined {\r\n return (item) ? BXRestMapTasksTask.TaskBXHttpToTaskBX(item.task) : undefined\r\n }\r\n\r\n static get<S extends iBXRestTaskFieldsName[], CustomFields>(\n item: iBXRestTasksTaskGetHttp<S, CustomFields> | undefined\n ): iBXRestTasksTaskGet<S, CustomFields> | undefined {\n return (item && item.task) ?\n BXRestMapTasksTask.TaskBXHttpToTaskBX<\n CustomFields,\n typeof item.task,\n iBXRestTasksTaskGet<S, CustomFields>\n >(item.task)\n : undefined\n }\n\r\n static list<S extends iBXRestTaskFieldsName[], CustomFields>(item: iBXRestTasksTaskListHttp<S, CustomFields> | undefined) {\r\n return (item && item.tasks)\r\n ? item.tasks.map(i => BXRestMapTasksTask.TaskBXHttpToTaskBX<\r\n CustomFields,\r\n Partial<iBXRestHttpTask> & Partial<CustomFields>,\r\n iBXRestTasksTaskList<S, CustomFields>\r\n >(i))\r\n : undefined\r\n }\r\n\r\n static TaskBXHttpToTaskBX<CustomFields, T extends Partial<iBXRestHttpTask> & Partial<CustomFields>, R>(item: T): R {\r\n let result: any = {}\r\n if (item.id) {\r\n result.id = toNum(item.id)\r\n }\r\n if (item.parentId) {\r\n result.parentId = toNum(item.parentId)\r\n }\r\n if (item.priority) {\r\n result.priority = toNum(item.priority)\r\n }\r\n if (item.status) {\r\n result.status = toNum(item.status)\r\n }\r\n if (item.multitask) {\r\n result.multitask = item.multitask === 'Y'\r\n }\r\n if (item.groupId) {\r\n result.groupId = toNum(item.groupId)\r\n }\r\n if (item.stageId) {\r\n result.stageId = toNum(item.stageId)\r\n }\r\n if (item.createdBy) {\r\n result.createdBy = toNum(item.createdBy)\r\n }\r\n if (item.createdDate) {\r\n result.createdDate = toDate(item.createdDate)\r\n }\r\n if (item.responsibleId) {\r\n result.responsibleId = toNum(item.responsibleId)\r\n }\r\n if (item.changedBy) {\r\n result.changedBy = toNum(item.changedBy)\r\n }\r\n if (item.changedDate) {\r\n result.changedDate = toDate(item.changedDate)\r\n }\r\n if (item.statusChangedBy) {\r\n result.statusChangedBy = toNum(item.statusChangedBy)\r\n }\r\n if (item.statusChangedDate) {\r\n result.statusChangedDate = toDate(item.statusChangedDate)\r\n }\r\n if (item.closedBy) {\r\n result.closedBy = toNum(item.closedBy)\r\n }\r\n if (item.closedDate) {\r\n result.closedDate = toDate(item.closedDate)\r\n }\r\n if (item.dateStart) {\r\n result.dateStart = toDate(item.dateStart)\r\n }\r\n if (item.deadline) {\r\n result.deadline = toDate(item.deadline)\r\n }\r\n if (item.startDatePlan) {\r\n result.startDatePlan = toDate(item.startDatePlan)\r\n }\r\n if (item.endDatePlan) {\r\n result.endDatePlan = toDate(item.endDatePlan)\r\n }\r\n if (item.forumTopicId) {\r\n result.forumTopicId = toNum(item.forumTopicId)\r\n }\r\n if (item.forumId) {\r\n result.forumId = toNum(item.forumId)\r\n }\r\n if (item.viewedDate) {\r\n result.viewedDate = toDate(item.viewedDate)\r\n }\r\n if (item.sorting) {\r\n result.sorting = toNum(item.sorting)\r\n }\r\n if (item.durationPlan) {\r\n result.durationPlan = toNum(item.durationPlan)\r\n }\r\n if (item.descriptionInBbcode) {\r\n result.descriptionInBbcode = item.descriptionInBbcode === 'Y'\r\n }\r\n if (item.accomplices) {\r\n result.accomplices = item.accomplices.map(i => toNum(i))\r\n }\r\n if (item.subStatus) {\r\n result.subStatus = toNum(item.subStatus)\r\n }\r\n if (item.creator) {\r\n result.creator = Object.assign(item.creator, {id: toNum(item.creator.id)})\r\n }\r\n if (item.responsible) {\r\n result.responsible = Object.assign(item.responsible, {id: toNum(item.responsible.id)})\r\n }\r\n if (item.accomplicesData) {\r\n result.accomplicesData =\r\n Object.values(item.accomplicesData).map(i => Object.assign(i, {id: toNum(i.id)}))\r\n }\r\n if (item.allowTimeTracking) {\r\n result.allowTimeTracking = item.allowTimeTracking === 'Y'\r\n }\r\n\r\n if (item.tags) {\r\n result.tags = values<iBXRestTaskHttpTag>(item.tags).map(i => {\r\n return {\r\n id: toNum(i.id),\r\n title: i.title\r\n }\r\n })\r\n }\r\n\r\n return Object.assign(item, result)\r\n }\r\n}\r\n","import { Navvy } from '../../../services/navvy'\r\nimport { BXRestMapTasksTaskResult } from '../../../map/tasks/task/result'\r\nimport {\r\n iBXRestParamTasksTaskResultList, iBXParamRestTasksTaskResultAdd, iBXRestTasksTaskResult,\r\n iBXRestTasksTaskResultHttp\r\n} from '../../../typification/rest/tasks'\r\nimport { $list, $result, $task, $tasks } from '../../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyTasksTaskResult {\r\n\r\n url = {\r\n /**\r\n * Просмотр списка результатов к задаче\r\n */\r\n list: [$tasks, $task, $result, $list],\r\n /**\r\n * Создание результата задачи из комментария\r\n */\r\n addFromComment: [$tasks, $task, $result, 'addFromComment'],\r\n /**\r\n * Удаление результата задачи по комментарию из которого он был создан\r\n */\r\n deleteFromComment: [$tasks, $task, $result, 'deleteFromComment'],\r\n }\r\n\r\n private Navvy = new Navvy()\r\n\r\n deleteFromComment(commentID: { commentId: number }) {\r\n return this.Navvy.simple<null, null, { commentId: number }>(\r\n this.url.deleteFromComment,\r\n commentID,\r\n )\r\n }\r\n\r\n addFromComment(param: iBXParamRestTasksTaskResultAdd) {\r\n return this.Navvy.simple<iBXRestTasksTaskResultHttp, iBXRestTasksTaskResult, iBXParamRestTasksTaskResultAdd>(\r\n this.url.addFromComment,\r\n param,\r\n BXRestMapTasksTaskResult.addFromComment\r\n )\r\n }\r\n\r\n list(param: iBXRestParamTasksTaskResultList) {\r\n return this.Navvy.pagNav<iBXRestTasksTaskResultHttp, iBXRestTasksTaskResult, iBXRestParamTasksTaskResultList>(\r\n this.url.list,\r\n param,\r\n BXRestMapTasksTaskResult.list\r\n )\r\n }\r\n}\r\n","import {\r\n iBXRestParamTaskAdd,\r\n iBXRestParamTasksList,\r\n iBXRestTaskFieldsName,\r\n iBXRestTasksTaskBaseAnswer,\r\n iBXRestTask, iBXRestTasksTaskGetFields, iBXRestTasksTaskDeferHttp,\r\n iBXRestParamTasksTaskGet, iBXRestTasksTaskGet, iBXRestTasksTaskGetHttp, iBXRestTasksTaskGetHttpDefault,\n iBXRestParamTasksTaskUpdateFields,\n iBXRestTasksTaskFieldsCanUpdate,\n iBXRestParamTasksTaskApprove,\n iBXRestTasksTaskApproveHttp,\n iBXRestParamTasksTaskComplete,\n iBXRestTasksTaskCompleteHttp,\n iBXRestParamTasksTaskDefer\n} from '../../typification/rest/tasks'\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestMapTasksTask } from '../../map/tasks/task'\r\nimport { BXRestNavvyTasksTaskResult } from './task/result'\r\nimport camelCase from 'just-camel-case'\r\nimport {\r\n iBXRestParamTaskGetAccess,\r\n iBXRestTaskGetAccess,\r\n iBXRestTaskGetAccessItem\r\n} from '../../typification/rest/task'\r\nimport { ToUpperCaseKeys } from '../../typification/base/upper-case-keys'\r\nimport { ObjectToSnake } from 'ts-case-convert/lib/caseConvert'\r\nimport { AllKeyFree } from '../../typification/base/all-key-free'\r\nimport {\r\n $add,\r\n $approve,\r\n $complete,\r\n $defer,\r\n $delegate,\r\n $get, $getaccess,\r\n $getFields, $list, $result,\r\n $task,\r\n $tasks, $update\r\n} from '../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyTasksTask {\r\n\r\n url = {\r\n /**\r\n * Создает задачу\r\n */\r\n add: [$tasks, $task, $add],\r\n /**\r\n * Позволяет принять задачу\r\n */\r\n approve: [$tasks, $task, $approve],\r\n /**\r\n * Переводит задачу в статус «завершена»\r\n */\r\n complete: [$tasks, $task, $complete],\r\n // counters: {\r\n // /**\r\n // * Получает счетчики пользователя\r\n // */\r\n // get: [$tasks, $task, $counters, $get],\r\n // },\r\n /**\r\n * Переводит задачу в статус «отложена»\r\n */\r\n defer: [$tasks, $task, $defer],\r\n /**\r\n * Метод для делегирования задачи\r\n */\r\n delegate: [$tasks, $task, $delegate],\r\n /**\r\n * Возвращает информацию о конкретной задаче\r\n */\r\n get: [$tasks, $task, $get],\r\n // /**\r\n // * Удаляет задачу\r\n // */\r\n // delete: [$tasks, $task, $delete],\r\n // /**\r\n // * Позволяет отклонить задачу\r\n // */\r\n // disapprove: [$tasks, $task, $disapprove],\r\n // favorite: {\r\n // /**\r\n // * Добавляет задачи в \"Избранное\"\r\n // */\r\n // add: [$tasks, $task, $favorite, $add],\r\n // /**\r\n // * Удаляет задачи из \"Избранного\"\r\n // */\r\n // delete: [$tasks, $task, $favorite, $delete],\r\n // },\r\n // files: {\r\n // /**\r\n // * Прикрепляет загруженный на диск файл к задаче\r\n // */\r\n // attach: [$tasks, $task, $files, $attach],\r\n // },\r\n /**\r\n * Возвращает все доступные поля\r\n */\r\n getFields: [$tasks, $task, $getFields],\r\n /**\r\n * Метод для проверки доступа к задаче\r\n */\r\n getAccess: [$tasks, $task, $getaccess],\r\n // history: {\r\n // /**\r\n // * Получает историю задачи\r\n // */\r\n // list: [$tasks, $task, $history, $list],\r\n // },\r\n /**\r\n * Возвращает массив задач, каждая из которых содержит массив полей\r\n */\r\n list: [$tasks, $task, $list],\r\n // /**\r\n // * Останавливает выполнение задачи, переводя ее в статус \"ждет выполнения\"\r\n // */\r\n // pause: [$tasks, $task, $pause],\r\n // /**\r\n // * Возобновляет задачу после ее завершения\r\n // */\r\n // renew: [$tasks, $task, $renew],\r\n // /**\r\n // * Переводит задачу в статус «выполняется»\r\n // */\r\n // start: [$tasks, $task, $start],\r\n // /**\r\n // * Позволяет наблюдать за задачей\r\n // */\r\n // startWatch: [$tasks, $task, 'startwatch'],\r\n // /**\r\n // * Останавливает наблюдение за задачей\r\n // */\r\n // stopwatch: [$tasks, $task, 'stopwatch'],\r\n /**\r\n * Обновляет задачу\r\n */\r\n update: [$tasks, $task, $update],\r\n result: {\r\n /**\r\n * Просмотр списка результатов к задаче\r\n */\r\n list: [$tasks, $task, $result, $list],\r\n /**\r\n * Создание результата задачи из комментария\r\n */\r\n addFromComment: [$tasks, $task, $result, 'addFromComment'],\r\n /**\r\n * Удаление результата задачи по комментарию из которого он был создан\r\n */\r\n deleteFromComment: [$tasks, $task, $result, 'deleteFromComment'],\r\n }\r\n }\r\n\r\n public readonly result = new BXRestNavvyTasksTaskResult()\r\n\r\n private readonly Navvy = new Navvy()\r\n\r\n add<CustomFields extends object = object>(param: iBXRestParamTaskAdd<CustomFields>) {\r\n return this.Navvy.simple<\r\n iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskGetHttpDefault>,\r\n iBXRestTask,\r\n iBXRestParamTaskAdd<CustomFields>\r\n >(\r\n this.url.add,\r\n param,\r\n BXRestMapTasksTask.add\r\n )\r\n }\r\n\r\n // TODO: переписать нормально\r\n approve(param: iBXRestParamTasksTaskApprove) {\n return this.Navvy.simple<\n iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskApproveHttp>,\n iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskApproveHttp>,\n iBXRestParamTasksTaskApprove\n >(this.url.approve, param)\n }\n\n complete(param: iBXRestParamTasksTaskComplete) {\n return this.Navvy.simple<\n iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskCompleteHttp>,\n iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskCompleteHttp>,\n iBXRestParamTasksTaskComplete\n >(this.url.complete, param)\n }\n\n defer(param: iBXRestParamTasksTaskDefer) {\n return this.Navvy.simple<\n iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskDeferHttp>,\n iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskDeferHttp>,\n iBXRestParamTasksTaskDefer\n >(this.url.defer, param)\n }\n\n update<CustomFields extends object>(\n task: AllKeyFree<iBXRestTasksTaskGet<iBXRestTaskFieldsName[], CustomFields>>,\r\n updateFields: (iBXRestTasksTaskFieldsCanUpdate | keyof ToUpperCaseKeys<ObjectToSnake<CustomFields>>)[]\r\n ) {\r\n\r\n let sendTask: iBXRestParamTasksTaskUpdateFields & AllKeyFree<CustomFields> = {}\r\n let taskTS: Record<string, any> = task\r\n if (updateFields.length) {\r\n for (let updateField of updateFields) {\r\n const key = String(updateField)\r\n if (taskTS[camelCase(key)]) {\r\n // @ts-ignore\r\n sendTask[key] = taskTS[camelCase(key)]\r\n }\r\n }\r\n // @ts-ignore\r\n if (Object.values(sendTask).length && task && task.id) {\r\n return this.Navvy.simple<\r\n iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskDeferHttp>,\r\n iBXRestTasksTaskBaseAnswer<iBXRestTasksTaskDeferHttp>,\r\n any\r\n >(this.url.update, {taskId: task.id, fields: sendTask})\r\n }\r\n }\r\n\r\n throw new Error('updateFields empty')\r\n }\r\n\r\n get<S extends iBXRestTaskFieldsName[], CustomFields extends object = object>(param: iBXRestParamTasksTaskGet<CustomFields>) {\n return this.Navvy.simple<\n iBXRestTasksTaskGetHttp<S, CustomFields>,\n iBXRestTasksTaskGet<S, CustomFields>,\n iBXRestParamTasksTaskGet<CustomFields>\n >(\n this.url.get,\n param,\n BXRestMapTasksTask.get<S, CustomFields>\n )\r\n }\r\n\r\n // Возможно можно обойтись без \"S extends iBXRestTaskFieldsName[]\",\r\n // надо что бы понять то как генерировать интейфейс на лету исходя их входящих данных\r\n list<S extends iBXRestTaskFieldsName[], CustomFields extends object = object>(\r\n param: iBXRestParamTasksList<CustomFields> = {}\r\n ) {\r\n return this.Navvy.pagNavTasks(\r\n this.url.list,\r\n param,\r\n BXRestMapTasksTask.list<S, CustomFields>\r\n )\r\n }\r\n\r\n /*\r\n listArray(requestArray: RequestApiTaskListBX = {}) {\r\n return this.list(requestArray).pipe(\r\n map(v => this.http.mapResult(v)),\r\n map(v => (v && v.tasks) ? v.tasks : [])\r\n )\r\n }\r\n\r\n listAll(requestArray: RequestApiTaskListBX = {}, cache = false): Observable<TaskBX[]> {\r\n if (!requestArray.select) {\r\n requestArray.select = this.def.select\r\n if (cache) {\r\n return this.storeTask$.pipe(\r\n take(1),\r\n mergeMap(tasks => {\r\n if (tasks && tasks.data.http.list && requestArray.filter && requestArray.filter.ID) {\r\n const ids = (typeof requestArray.filter.ID === 'number') ? [requestArray.filter.ID] : requestArray.filter.ID\r\n let filter = tasks.data.http.list.filter(i => (i.id) ? ids.includes(i.id) : false)\r\n if (filter.length === ids.length) {\r\n return of(filter)\r\n }\r\n }\r\n return this.getEndListArray(requestArray)\r\n })\r\n )\r\n }\r\n return this.getEndListArray(requestArray)\r\n }\r\n return this.getEndListArray(requestArray)\r\n }\r\n\r\n getEndListArray(requestArray: RequestApiTaskListBX): Observable<TaskBX[]> {\r\n return this.list(requestArray).pipe(\r\n mergeMap((items: AnswerApiTaskBX | undefined): ObservableInput<any> | Observable<AnswerApiTaskBX[]> => {\r\n if (items && items.result && typeof items.result.tasks === 'object') {\r\n const items$ = of(items.result.tasks)\r\n if (items.next) {\r\n this.nowLoad$.next({\r\n total: (items.total) ? items.total : 0,\r\n next: items.next\r\n })\r\n requestArray.start = items.next\r\n return this.getEndListArray(requestArray).pipe(\r\n map(vEnd => {\r\n if (vEnd && items.result.tasks) {\r\n return [...items.result.tasks, ...vEnd]\r\n }\r\n return (items.result.tasks) ? items.result.tasks : []\r\n }))\r\n }\r\n this.nowLoad$.next({\r\n total: 0,\r\n next: 0\r\n })\r\n return items$\r\n } else {\r\n return of([])\r\n }\r\n })\r\n )\r\n }\r\n */\r\n\r\n getFields() {\r\n return this.Navvy.simple<iBXRestTasksTaskGetFields>(\r\n this.url.getFields\r\n )\r\n }\r\n\r\n getAccess(param: iBXRestParamTaskGetAccess) {\r\n return this.Navvy.simple<iBXRestTaskGetAccess, {\r\n [key: number]: iBXRestTaskGetAccessItem\r\n }, iBXRestParamTaskGetAccess>(\r\n this.url.getAccess,\r\n param,\r\n BXRestMapTasksTask.getAccess\r\n )\r\n }\r\n\r\n}\r\n","import { BXRestNavvyTasksTask } from './tasks/task'\r\n\r\nexport class BXRestNavvyTasks {\r\n public readonly task = new BXRestNavvyTasksTask()\r\n}\r\n","import { iBXRestParamElapseditemGet } from '../../../typification/rest/task'\r\nimport { Navvy } from '../../../services/navvy'\r\nimport { BXRestMapTaskElapsedItem } from '../../../map/task/elapseditem'\r\nimport { $elapseditem, $getlist, $task } from '../../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyDelegateElapsedItem {\r\n\r\n private Navvy = new Navvy()\r\n\r\n getList(\r\n param: iBXRestParamElapseditemGet = {}\r\n ) {\r\n if (param) {\r\n if (!param.TASKID && !param.SELECT) {\r\n param.SELECT = ['*']\r\n }\r\n if (!param.TASKID && !param.PARAMS) {\r\n param.PARAMS = {\r\n NAV_PARAMS: {\r\n nPageSize: 50,\r\n iNumPage: 1\r\n }\r\n }\r\n }\r\n }\r\n return this.Navvy.alterPagNav(\r\n [$task, $elapseditem, $getlist],\r\n param,\r\n BXRestMapTaskElapsedItem.getList\r\n )\r\n }\r\n\r\n}\r\n","import {\r\n iBXRestParamElapseditemGet,\r\n iBXRestTaskElapsedItemHttp,\r\n iBXRestParamTaskGetAccess,\r\n iBXRestTaskGetAccess,\r\n iIsActionAllowedParam,\r\n iBXRestParamAddElapseditem,\r\n iBXRestParamUpdateElapseditem,\r\n iBXRestParamDelElapseditem\r\n} from '../../../typification/rest/task'\r\nimport { HttpBXServices } from '../../../services/http/HttpBX'\r\nimport { $elapseditem, $getaccess, $getlist, $isactionallowed, $task, $tasks } from '../../../consts/part-name-methods'\r\nimport { map, take } from 'rxjs/operators'\r\nimport { BXRestMapTaskElapsedItem } from '../../../map/task/elapseditem'\r\nimport { mergeMap, of, throwError } from 'rxjs'\r\nimport { BXRestNavvyUser } from '../../user'\r\nimport { BXRestNavvyTasks } from '../../tasks'\r\nimport { BXRestNavvyDelegateElapsedItem } from '../delegate/elapseditem'\r\nimport { iBXRestUser } from '../../../typification/rest/user'\r\nimport { BXRestNavvyElapsedItem } from '../elapseditem'\r\n\r\nexport class BXRestNavvyOperationElapsedItem {\r\n\r\n private readonly http = new HttpBXServices()\r\n private readonly delegate = new BXRestNavvyDelegateElapsedItem()\r\n private readonly BXRestNavvyUser = new BXRestNavvyUser()\r\n private readonly BXRestNavvyTasks = new BXRestNavvyTasks()\r\n\r\n constructor(private BXRestNavvyElapsedItem: BXRestNavvyElapsedItem) {\r\n }\r\n\r\n getByInterval(idsUsers: number[], dateStart: Date, dateEnd: Date) {\r\n const param: iBXRestParamElapseditemGet = {\r\n ORDER: {\r\n ID: 'DESC'\r\n },\r\n FILTER: {\r\n USER_ID: idsUsers,\r\n '>=CREATED_DATE': dateStart.toLocaleString('ru-Ru', {\r\n timeZoneName: 'short'\r\n }),\r\n '<=CREATED_DATE': dateEnd.toLocaleString('ru-Ru', {\r\n timeZoneName: 'short'\r\n }),\r\n }\r\n }\r\n return this.delegate.getList(param)\r\n }\r\n\r\n // TODO: Сделать нормально\r\n getListByIDTask(ids: number[]) {\r\n // Работает только потому что \"nPageSize: 99999\"\r\n return this.http.branch<iBXRestParamElapseditemGet, iBXRestTaskElapsedItemHttp>\r\n (\r\n ids.map(i => {\r\n return {\r\n name: this.http.getNameMethod([$task, $elapseditem, $getlist]),\r\n param: {\r\n TASKID: i,\r\n PARAMS: {\r\n NAV_PARAMS: {\r\n nPageSize: 99999,\r\n iNumPage: 1\r\n }\r\n }\r\n }\r\n }\r\n })\r\n ).pipe(\r\n map(v => {\r\n if (v && v.length) {\r\n const res = this.http.mapBranchResultWithoutKey(v)\r\n return BXRestMapTaskElapsedItem.getList(res)\r\n }\r\n return undefined\r\n })\r\n )\r\n }\r\n\r\n checkPermissionAddElapsedTimeToTaskArr(tasks: number[], userCurrent: iBXRestUser | undefined = undefined) {\r\n // Убираем дубли, чтобы не проверять права по одной задаче несколько раз.\r\n const ids = [...new Set(tasks.filter(i => !!i))]\r\n // Если текущий пользователь не передан снаружи, запрашиваем его один раз на весь набор задач.\r\n const user$ = userCurrent ? of(userCurrent) : this.BXRestNavvyUser.current().res()\r\n\r\n // Старый batch через task.elapseditem.isactionallowed.\r\n // Вызываем его ниже только для задач, по которым getaccess не вернул ELAPSEDTIME.ADD.\r\n const loadMissingByActionAllowed = (missingIds: number[], resolved: { id: number, value: boolean }[]) => {\r\n return this.http.branch<iIsActionAllowedParam, boolean>(\r\n Object.assign({}, ...missingIds.map(i => {\r\n return {\r\n [i]: {\r\n name: this.http.getNameMethod([$task, $elapseditem, $isactionallowed]),\r\n param: {\r\n TASKID: i,\r\n ITEMID: 1,\r\n ACTIONID: 1\r\n }\r\n }\r\n }\r\n }))\r\n ).pipe(\r\n map(v => {\r\n if (v && v.length) {\r\n const res: Record<number, boolean> = this.http.mapBranchResult(v)\r\n const loaded = Object.entries(res).map(([key, value]) => {\r\n return {id: Number(key), value}\r\n })\r\n\r\n return [...resolved, ...loaded]\r\n }\r\n\r\n return undefined\r\n })\r\n )\r\n }\r\n\r\n if (!ids.length) {\r\n return of([])\r\n }\r\n\r\n return user$.pipe(\r\n take(1),\r\n mergeMap(self => {\r\n if (!self) {\r\n // Страховочная ветка: если user.current не вернулся, getaccess вызвать нельзя.\r\n return loadMissingByActionAllowed(ids, [])\r\n }\r\n\r\n // Основной путь: одним batch-запросом получаем права ELAPSEDTIME.ADD по всем задачам.\r\n return this.http.branch<iBXRestParamTaskGetAccess, iBXRestTaskGetAccess>(\r\n Object.assign({}, ...ids.map(id => {\r\n return {\r\n [id]: {\r\n name: this.http.getNameMethod([$tasks, $task, $getaccess]),\r\n param: {\r\n id,\r\n users: [self.ID]\r\n }\r\n }\r\n }\r\n }))\r\n ).pipe(\r\n mergeMap(v => {\r\n if (v && v.length) {\r\n const res = this.http.mapBranchResult<iBXRestTaskGetAccess>(v)\r\n const permissions = ids.map(id => ({\r\n id,\r\n value: res[id]?.allowedActions?.[self.ID]?.['ELAPSEDTIME.ADD']\r\n }))\r\n\r\n // getaccess может вернуть true или false - оба значения считаем готовым ответом.\r\n // В старый isactionallowed отправляем только задачи без явного ELAPSEDTIME.ADD.\r\n const resolved = permissions.filter(i => i.value !== undefined) as { id: number, value: boolean }[]\r\n const missingIds = permissions.filter(i => i.value === undefined).map(i => i.id)\r\n\r\n if (missingIds.length) {\r\n return loadMissingByActionAllowed(missingIds, resolved)\r\n }\r\n\r\n return of(permissions)\r\n }\r\n\r\n // Если batch getaccess не вернулся, сохраняем поведение старого fallback.\r\n return loadMissingByActionAllowed(ids, [])\r\n })\r\n )\r\n })\r\n )\r\n }\r\n /**\r\n * Проверка на возможность добавление записи трека в таску\r\n *\r\n * @param idTask\r\n * @param userCurrent\r\n */\r\n checkPermissionAddElapsedTimeToTask(idTask: number, userCurrent: iBXRestUser | undefined = undefined) {\r\n // let permission = Permission.get()\r\n // if (permission?.tasks?.length) {\r\n // let findTask = permission.tasks.find(i => i.id === idTask)\r\n // if (findTask?.permission) {\r\n // return of(findTask.permission['ELAPSEDTIME.ADD'])\r\n // }\r\n return ((userCurrent) ? of(userCurrent) : this.BXRestNavvyUser.current().res()).pipe(\r\n mergeMap(self => {\r\n if (self) {\r\n return this.BXRestNavvyTasks.task.getAccess(\r\n {\r\n id: idTask,\r\n users: [self.ID]\r\n }).res().pipe(\r\n // tap(v => {\r\n // if (v && v[self.ID]) {\r\n // Permission.set({\r\n // tasks: [{id: idTask, permission: v[self.ID], elapsedItem: []}]\r\n // })\r\n // }\r\n // }),\r\n map(v => {\r\n return (v && v[self.ID]) ? v[self.ID]['ELAPSEDTIME.ADD'] : false\r\n }),\r\n )\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n // }\r\n\r\n // return of(undefined)\r\n }\r\n\r\n /**\r\n * Проверка на возможность прочтения такски\r\n *\r\n * @param idTask\r\n * @param userCurrent\r\n */\r\n checkPermissionReadTask(idTask: number, userCurrent: iBXRestUser | undefined = undefined) {\r\n // let permission = Permission.get()\r\n // if (permission?.tasks?.length) {\r\n // let findTask = permission.tasks.find(i => i.id === idTask)\r\n // if (findTask?.permission) {\r\n // return of(findTask.permission.ACCEPT)\r\n // }\r\n // console.log('idTask', idTask)\r\n return ((userCurrent) ? of(userCurrent) : this.BXRestNavvyUser.current().res()).pipe(\r\n mergeMap(self => {\r\n if (self) {\r\n return this.BXRestNavvyTasks.task.getAccess(\r\n {\r\n id: idTask,\r\n users: [self.ID]\r\n }).res().pipe(\r\n // tap(v => {\r\n // if (v && v[self.ID]) {\r\n // Permission.set({\r\n // tasks: [{id: idTask, permission: v[self.ID], elapsedItem: []}]\r\n // })\r\n // }\r\n // }),\r\n map(v => {\r\n return (v && v[self.ID]) ? !!v[self.ID] : false // отдельного флага на чтение нет, выходит что если права отдались то и права есть\r\n }),\r\n )\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n // }\r\n //\r\n // return of(undefined)\r\n }\r\n\r\n /**\r\n * Законченный метод добавления записи с предварительной проверкой прав\r\n *\r\n * TODO: добавить сохранение предварительно проверенных записей\r\n * @param param\r\n */\r\n add(param: iBXRestParamAddElapseditem) {\r\n return this.checkPermissionReadTask(param.TASKID).pipe(\r\n mergeMap(allowedReadTask => {\r\n if (allowedReadTask) {\r\n return this.checkPermissionAddElapsedTimeToTask(param.TASKID).pipe(\r\n mergeMap(allowed => {\r\n if (allowed) {\r\n return this.BXRestNavvyElapsedItem.add(param).res()\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права добавление записи затраченного времени'))\r\n }\r\n }))\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права на чтение задачи'))\r\n }\r\n }))\r\n }\r\n\r\n /**\r\n * Законченный метод обновления записи с предварительной проверкой прав\r\n *\r\n * TODO: добавить сохранение предварительно проверенных записей\r\n * @param param\r\n */\r\n update(param: iBXRestParamUpdateElapseditem) {\r\n return this.checkPermissionReadTask(param.TASKID).pipe(\r\n mergeMap((allowedReadTask) => {\r\n if (allowedReadTask) {\r\n return this.isAllowedModify(param.TASKID, param.ITEMID).pipe(\r\n mergeMap(allowed => {\r\n if (allowed) {\r\n return this.BXRestNavvyElapsedItem.update(param).res()\r\n }\r\n return throwError(() => new Error('Отсутствуют права на изменение записи затраченного времени'))\r\n }))\r\n }\r\n return throwError(() => new Error('Отсутствуют права на чтение задачи'))\r\n }))\r\n }\r\n\r\n // TODO: разобраться что это за ебатня в комментах и вписать нормальной комент если она нужна\r\n isAllowedModify(idTask: number, idItem: number) {\r\n // let permission = Permission.get()\r\n // if (permission?.tasks?.length) {\r\n // let findTask = permission.tasks.find(i => i.id === idTask)\r\n // if (findTask) {\r\n // let find = findTask.elapsedItem.find(i => i.id === idItem)\r\n // if (find && find.verified.edit) {\r\n // return of(find.edit)\r\n // }\r\n // }\r\n // }\r\n\r\n return this.BXRestNavvyElapsedItem.isActionAllowed({\r\n TASKID: idTask,\r\n ITEMID: idItem,\r\n ACTIONID: 2\r\n }).res()\r\n // .pipe(\r\n // tap(v => {\r\n // if (v !== undefined) {\r\n // Permission.setTaskElapsedItem(idTask,\r\n // {\r\n // id: idItem,\r\n // edit: v,\r\n // del: false,\r\n // verified: {\r\n // edit: true,\r\n // del: false,\r\n // }\r\n // })\r\n // }\r\n // })\r\n // )\r\n }\r\n\r\n /**\r\n * isActionAllowed с фиксом на проверку возможности чтения задачи записи\r\n * (без проверки даёт ошибку)\r\n *\r\n * idAction:\r\n * 1 - ACTION_ELAPSED_TIME_ADD\r\n * 2 - ACTION_ELAPSED_TIME_MODIFY\r\n * 3 - ACTION_ELAPSED_TIME_REMOVE\r\n * @param param\r\n */\r\n isActionAllowed(param: iIsActionAllowedParam) {\r\n return this.checkPermissionReadTask(param.TASKID).pipe(\r\n mergeMap(canRead => {\r\n if (canRead) {\r\n return this.BXRestNavvyElapsedItem.isActionAllowed(param).res()\r\n }\r\n return throwError(() => new Error('Отсутствуют права на чтение задачи'))\r\n })\r\n )\r\n }\r\n\r\n\r\n /**\r\n * Полноценный метод удаления\r\n *\r\n * @param param\r\n */\r\n del(param: iBXRestParamDelElapseditem) {\r\n return this.checkPermissionReadTask(param.TASKID).pipe(\r\n mergeMap(allowedReadTask => {\r\n if (allowedReadTask) {\r\n return this.isAllowedRemove(param.TASKID, param.ITEMID).pipe(\r\n mergeMap(allowed => {\r\n if (allowed) {\r\n return this.BXRestNavvyElapsedItem.delete(param).res()\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права на удаление записи затраченного времени'))\r\n }\r\n }))\r\n } else {\r\n return throwError(() => new Error('Отсутствуют права на чтение задачи'))\r\n }\r\n })\r\n )\r\n }\r\n\r\n private isAllowedRemove(idTask: number, idItem: number) {\r\n return this.isActionAllowed(\r\n {\r\n TASKID: idTask,\r\n ITEMID: idItem,\r\n ACTIONID: 3\r\n })\r\n }\r\n}\r\n","import {\r\n iBXRestParamElapseditemGet,\r\n iBXRestParamAddElapseditem,\r\n iBXRestParamUpdateElapseditem,\r\n iBXRestParamDelElapseditem,\r\n iIsActionAllowedParam\r\n} from '../../typification/rest/task'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestNavvyOperationElapsedItem } from './operation/elapseditem'\r\nimport { BXRestNavvyDelegateElapsedItem } from './delegate/elapseditem'\r\nimport { $add, $delete, $elapseditem, $getlist, $isactionallowed, $task, $update } from '../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyElapsedItem {\r\n protected url = {\r\n // /**\r\n // * Возвращает список методов и их описание\r\n // */\r\n // getManifest: [$task, $elapseditem, $getmanifest],\r\n /**\r\n * Возвращает список записей о затраченном времени по задаче\r\n */\r\n getList: [$task, $elapseditem, $getlist],\r\n // /**\r\n // * Возвращает запись о затраченном времени по ее идентификатору\r\n // */\r\n // get: [$task, $elapseditem, $get],\r\n /**\r\n * Добавляет затраченное время к задаче\r\n */\r\n add: [$task, $elapseditem, $add],\r\n /**\r\n * Удаляет запись о затраченном времени\r\n */\r\n delete: [$task, $elapseditem, $delete],\r\n /**\r\n * Проверяет разрешено ли действие\r\n */\r\n isActionAllowed: [$task, $elapseditem, $isactionallowed],\r\n /**\r\n * Изменяет параметры записи о затраченном времени\r\n */\r\n update: [$task, $elapseditem, $update],\r\n }\r\n private readonly delegate = new BXRestNavvyDelegateElapsedItem()\r\n public readonly operation = new BXRestNavvyOperationElapsedItem(this)\r\n\r\n private readonly Navvy = new Navvy()\r\n\r\n getList(\r\n param: iBXRestParamElapseditemGet = {}\r\n ) {\r\n return this.delegate.getList(param)\r\n }\r\n\r\n add(param: iBXRestParamAddElapseditem) {\r\n return this.Navvy.simple<number, number, iBXRestParamAddElapseditem>(this.url.add, param)\r\n }\r\n\r\n /**\r\n * Обновление записи рабочего времени\r\n *\r\n * @param param\r\n */\r\n update(param: iBXRestParamUpdateElapseditem) {\r\n return this.Navvy.simple<null, null, iBXRestParamUpdateElapseditem>(this.url.update, param)\r\n }\r\n\r\n /**\r\n * idAction:\r\n * 1 - ACTION_ELAPSED_TIME_ADD\r\n * 2 - ACTION_ELAPSED_TIME_MODIFY\r\n * 3 - ACTION_ELAPSED_TIME_REMOVE\r\n * @param param\r\n */\r\n isActionAllowed(param: iIsActionAllowedParam) {\r\n return this.Navvy.simple<boolean, boolean, iIsActionAllowedParam>(this.url.isActionAllowed, param)\r\n }\r\n\r\n delete(param: iBXRestParamDelElapseditem) {\r\n return this.Navvy.simple<null, null, iBXRestParamDelElapseditem>(this.url.delete, param)\r\n }\r\n\r\n}\r\n","import { iBXRestTaskComment, iBXRestTaskCommentHtml } from '../../typification/rest/task/commentitem/commentitem'\r\nimport { toDate, toNum } from '../../services/base'\r\n\r\nexport class BXRestMapTaskCommentItem {\r\n\r\n static getlist(value: iBXRestTaskCommentHtml[] | undefined): iBXRestTaskComment[] | undefined {\r\n return value ? value.map(i => BXRestMapTaskCommentItem.iCommentTaskHtmlToiCommentTask(i)) : undefined\r\n }\r\n\r\n static get(value: iBXRestTaskCommentHtml | undefined): iBXRestTaskComment | undefined {\r\n return value ? BXRestMapTaskCommentItem.iCommentTaskHtmlToiCommentTask(value) : undefined\r\n }\r\n\r\n static iCommentTaskHtmlToiCommentTask(item: iBXRestTaskCommentHtml): iBXRestTaskComment {\r\n if (item.ATTACHED_OBJECTS) {\r\n return {\r\n ATTACHED_OBJECTS: Object.values(item.ATTACHED_OBJECTS).map(i => {\r\n return {\r\n ATTACHMENT_ID: toNum(i.ATTACHMENT_ID),\r\n FILE_ID: toNum(i.FILE_ID),\r\n SIZE: toNum(i.SIZE),\r\n DOWNLOAD_URL: i.DOWNLOAD_URL,\r\n NAME: i.NAME,\r\n VIEW_URL: i.VIEW_URL\r\n }\r\n }),\r\n AUTHOR_ID: toNum(item.AUTHOR_ID),\r\n ID: toNum(item.ID),\r\n POST_DATE: toDate(item.POST_DATE),\r\n AUTHOR_EMAIL: item.AUTHOR_EMAIL,\r\n AUTHOR_NAME: item.AUTHOR_NAME,\r\n POST_MESSAGE: item.POST_MESSAGE,\r\n POST_MESSAGE_HTML: item.POST_MESSAGE_HTML\r\n }\r\n } else {\r\n return {\r\n AUTHOR_ID: toNum(item.AUTHOR_ID),\r\n ID: toNum(item.ID),\r\n POST_DATE: toDate(item.POST_DATE),\r\n AUTHOR_EMAIL: item.AUTHOR_EMAIL,\r\n AUTHOR_NAME: item.AUTHOR_NAME,\r\n POST_MESSAGE: item.POST_MESSAGE,\r\n POST_MESSAGE_HTML: item.POST_MESSAGE_HTML\r\n }\r\n }\r\n }\r\n}\r\n","import { Navvy } from '../../services/navvy'\r\nimport { BXRestMapTaskCommentItem } from '../../map/task/commentitem'\r\nimport {\r\n iBXRestParamTaskCommentItemGet,\r\n iBXRestTaskCommentItemUpdate,\r\n iBXRestCommentTaskAdd,\r\n BXRestTaskCommentItemGetList,\r\n BXRestTaskCommentItemDelete,\r\n iBXRestTaskComment,\r\n iBXRestTaskCommentHtml\r\n} from '../../typification/rest/task'\nimport { mergeMap, of } from 'rxjs'\nimport {\n $add,\n $commentitem,\n $delete,\n $get,\n $getlist,\n $task,\n $update\n} from '../../consts/part-name-methods'\n\nexport class BXRestNavvyTaskCommentItem {\n protected url = {\n getList: [$task, $commentitem, $getlist],\n get: [$task, $commentitem, $get],\n add: [$task, $commentitem, $add],\n update: [$task, $commentitem, $update],\n delete: [$task, $commentitem, $delete],\n }\n\r\n private readonly Navvy = new Navvy()\r\n\r\n add(param: iBXRestCommentTaskAdd) {\r\n return this.Navvy.simple<number, number, iBXRestCommentTaskAdd>(\r\n this.url.add, param\r\n )\r\n }\r\n\r\n update(param: iBXRestTaskCommentItemUpdate) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestTaskCommentItemUpdate>(\r\n this.url.update, param\r\n )\r\n }\r\n\r\n get(param: iBXRestParamTaskCommentItemGet) {\r\n return this.Navvy.simple<iBXRestTaskCommentHtml, iBXRestTaskComment, iBXRestParamTaskCommentItemGet>(\r\n this.url.get, param,\r\n BXRestMapTaskCommentItem.get\r\n )\r\n }\r\n\r\n getlist(param: BXRestTaskCommentItemGetList = {\r\n FILTER: {},\r\n ORDER: {\r\n POST_DATE: 'asc'\r\n }\r\n }) {\r\n return this.Navvy.simple(\r\n this.url.getList, param,\r\n BXRestMapTaskCommentItem.getlist\r\n )\r\n }\r\n\r\n del(param: BXRestTaskCommentItemDelete) {\r\n if (param.ITEMID > 0) {\r\n return this.get(param).res().pipe(\r\n mergeMap(v => {\r\n if (v) {\r\n return this.Navvy.simple<boolean, boolean, BXRestTaskCommentItemDelete>(\r\n this.url.delete, param\r\n ).res()\r\n }\r\n return of(false)\r\n })\r\n )\r\n } else {\r\n return of(false)\r\n }\r\n }\r\n}\r\n","import { toNum } from '../../services/base'\r\n\r\nexport class BXRestMapTaskPlaner {\r\n\r\n static getList(v: (string | number)[] | undefined) {\r\n return (v) ? v.map(i => toNum(i)) : undefined\r\n }\r\n\r\n}\r\n","import { BXRestMapTaskPlaner } from '../../map/task/planner'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { $getlist, $planner, $task } from '../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyTaskPlanner {\r\n\r\n url = {\r\n getList: [$task, $planner, $getlist]\r\n }\r\n\r\n private readonly Navvy = new Navvy()\r\n \r\n getList() {\r\n return this.Navvy.simple<(string | number)[], (string | number)[], undefined>(\r\n this.url.getList,\r\n undefined,\r\n BXRestMapTaskPlaner.getList\r\n )\r\n }\r\n}\r\n","import {\r\n iBXRestTaskItemUserFieldGetlist, iBXRestTaskItemUserFieldGetlistHttp,\r\n} from '../../../typification/rest/task/item/userfield/getlist'\r\nimport { toNum } from '../../../services/base'\r\n\r\nexport class BXRestMapTaskUserField {\r\n\r\n static getList(value: iBXRestTaskItemUserFieldGetlistHttp[] | undefined): iBXRestTaskItemUserFieldGetlist[] | undefined{\r\n if(value && value.length){\r\n return value.map( i => { return {\r\n ID: toNum(i.ID),\r\n ENTITY_ID: 'TASKS_TASK',\r\n FIELD_NAME: i.FIELD_NAME,\r\n USER_TYPE_ID: i.USER_TYPE_ID,\r\n XML_ID: i.XML_ID,\r\n SORT: i.SORT,\r\n MULTIPLE: i.MULTIPLE === 'Y',\r\n MANDATORY: i.MULTIPLE === 'Y',\r\n SHOW_FILTER: i.SHOW_FILTER,\r\n SHOW_IN_LIST: i.MULTIPLE === 'Y',\r\n EDIT_IN_LIST: i.MULTIPLE === 'Y',\r\n IS_SEARCHABLE: i.MULTIPLE === 'Y',\r\n SETTINGS: i.SETTINGS,\r\n LIST: i.LIST,\r\n }})\r\n }\r\n return undefined\r\n }\r\n\r\n}","import { Navvy } from '../../../services/navvy'\r\nimport { BXRestMapTaskUserField } from '../../../map/task/item/userfield'\r\nimport {\r\n iBXRestParamTaskItemUserFieldGetlist, iBXRestTaskItemUserFieldGetlist, iBXRestTaskItemUserFieldGetlistHttp\r\n} from '../../../typification/rest/task'\r\nimport { $item, $task, $userfield } from '../../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyTaskItemUserField {\r\n\r\n protected url = {\r\n /**\r\n * Получение всех доступных полей свойства\r\n */\r\n getFields: [$task, $item, $userfield, 'getfields'],\r\n // /**\r\n // * Получение всех доступных типов данных\r\n // */\r\n // getTypes: [$task, $item, $userfield, 'gettypes'],\r\n // /**\r\n // * Создание нового свойства\r\n // */\r\n // add: [$task, $item, $userfield, $add],\r\n // /**\r\n // * Получение свойства по идентификатору\r\n // */\r\n // get: [$task, $item, $userfield, $get],\r\n /**\r\n * Получение списка свойств\r\n */\r\n getList: [$task, $item, $userfield, 'getlist'],\r\n // /**\r\n // * Редактирование параметров свойства\r\n // */\r\n // update: [$task, $item, $userfield, $update],\r\n // /**\r\n // * Удаление свойства\r\n // */\r\n // delete: [$task, $item, $userfield, $delete]\r\n }\r\n\r\n private readonly Navvy = new Navvy()\r\n\r\n getList(param: iBXRestParamTaskItemUserFieldGetlist = {}){\r\n return this.Navvy.pagNav<iBXRestTaskItemUserFieldGetlistHttp, iBXRestTaskItemUserFieldGetlist, iBXRestParamTaskItemUserFieldGetlist>(\r\n this.url.getList,\r\n param,\r\n BXRestMapTaskUserField.getList\r\n )\r\n }\r\n}","import { BXRestNavvyTaskItemUserField } from './item/userfield'\r\n\r\nexport class BXRestNavvyTaskItem {\r\n public readonly userField = new BXRestNavvyTaskItemUserField()\r\n}","import { BXRestNavvyElapsedItem } from './task/elapseditem'\r\nimport { BXRestNavvyTaskCommentItem } from './task/commentitem'\r\nimport { BXRestNavvyTaskPlanner } from './task/planner'\r\nimport { BXRestNavvyTaskItem } from './task/item'\r\n\r\nexport class BXRestNavvyTask {\r\n public readonly elapsedItem = new BXRestNavvyElapsedItem()\r\n public readonly commentItem = new BXRestNavvyTaskCommentItem()\r\n public readonly planner = new BXRestNavvyTaskPlanner()\r\n public readonly item = new BXRestNavvyTaskItem()\r\n}\r\n","import { iBXRestDiskFile, iBXRestDiskFileHttp } from '../../typification/rest/disk/file'\r\nimport { toDate, toNum } from '../../services/base'\r\n\r\nexport class BXRestMapDiskFile {\r\n\r\n static get(v: iBXRestDiskFileHttp | undefined): iBXRestDiskFile | undefined {\r\n return (v) ? {\r\n ...v,\r\n ...{\r\n ID: toNum(v.ID),\r\n FILE_ID: toNum(v.ID),\r\n SIZE: toNum(v.SIZE),\r\n CREATED_BY: toNum(v.CREATED_BY),\r\n CREATE_TIME: toDate(v.CREATE_TIME),\r\n DELETED_BY: toNum(v.DELETED_BY),\r\n DELETED_TYPE: toNum(v.DELETED_BY),\r\n DELETE_TIME: v.DELETE_TIME ? toDate(v.CREATE_TIME) : null,\r\n PARENT_ID: toNum(v.PARENT_ID),\r\n STORAGE_ID: toNum(v.STORAGE_ID),\r\n UPDATED_BY: toNum(v.UPDATED_BY),\r\n UPDATE_TIME: toDate(v.UPDATE_TIME)\r\n }\r\n } : undefined\r\n }\r\n}\r\n","import { Navvy } from '../../services/navvy'\r\nimport { BXRestMapDiskFile } from '../../map/disk/file'\r\nimport { iBXRestParamDiskFileGet, iBXRestParamDiskFileMarkDeleted } from '../../typification/rest/disk'\r\nimport { $disk, $file, $get, $markdeleted } from '../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyDiskFile {\r\n url = {\r\n // /**\r\n // * Возвращает описание полей файла\r\n // */\r\n // getFields: [$disk, $file, $getFields],\r\n /**\r\n * Возвращает файл по идентификатору\r\n */\r\n get: [$disk, $file, $get], //\r\n // /**\r\n // * Переименовывает файл\r\n // */\r\n // rename: [$disk, $file, $rename],\r\n // /**\r\n // * Копирует файл в указанную папку\r\n // */\r\n // copyTo: [$disk, $file, $copyto],\r\n // /**\r\n // * Перемещает файл в указанную папку\r\n // */\r\n // moveto: [$disk, $file, $moveto],\r\n // /**\r\n // * Уничтожает файл навсегда\r\n // */\r\n // delete: [$disk, $file, $delete],\r\n /**\r\n * Перемещает файл в корзину\r\n */\r\n markDeleted: [$disk, $file, $markdeleted],\r\n // /**\r\n // * Восстанавливает файл из корзины\r\n // */\r\n // restore: [$disk, $file, $restore],\r\n // /**\r\n // * Загружает новую версию файла\r\n // */\r\n // uploadVersion: [$disk, $file, 'uploadversion'],\r\n // /**\r\n // * Возвращает список версий файла\r\n // */\r\n // getVersions: [$disk, $file, 'getVersions'],\r\n // /**\r\n // * Восстанавливает файл из конкретной версии\r\n // */\r\n // restoreFromVersion: [$disk, $file, 'restoreFromVersion'],\r\n // /**\r\n // * Возвращает публичную ссылку на файл\r\n // */\r\n // getExternalLink: [$disk, $file, 'getexternallink']\r\n }\r\n\r\n private Navvy = new Navvy()\r\n\r\n get(param: iBXRestParamDiskFileGet) {\r\n return this.Navvy.simple(\r\n this.url.get,\r\n param,\r\n BXRestMapDiskFile.get\r\n )\r\n }\r\n\r\n markDeleted(param: iBXRestParamDiskFileMarkDeleted) {\r\n return this.Navvy.simple(\r\n this.url.markDeleted,\r\n param,\r\n BXRestMapDiskFile.get\r\n )\r\n }\r\n}\r\n","import { iBXRestDiskFile, iBXRestDiskFileHttp } from '../../typification/rest/disk/file'\r\nimport { iBXRestFolder, iBXRestFolderHttp } from '../../typification/rest/disk/folder'\r\nimport { iBXRestDiskFileAndFolderMap } from '../../typification/rest/disk/map'\r\nimport { toDate, toNum } from '../../services/base'\r\n\r\nexport class BXRestMapDiskBase {\r\n\r\n static separationFoldersAndFiles(arr: (iBXRestFolderHttp | iBXRestDiskFileHttp)[]) {\r\n const result: iBXRestDiskFileAndFolderMap = {file: [], folder: []}\r\n for (const i of arr) {\r\n if (BXRestMapDiskBase.instanceOfiFile(i)) {\r\n result.file.push(\r\n Object.assign(\r\n i,\r\n {\r\n CREATED_BY: toNum(i.CREATED_BY),\r\n CREATE_TIME: toDate(i.CREATE_TIME),\r\n DELETED_BY: toNum(i.DELETED_BY),\r\n DELETED_TYPE: toNum(i.DELETED_TYPE),\r\n DELETE_TIME: (i.DELETE_TIME) ? toDate(i.DELETE_TIME) : null,\r\n ID: toNum(i.ID),\r\n PARENT_ID: toNum(i.PARENT_ID),\r\n REAL_OBJECT_ID: toNum(i.REAL_OBJECT_ID),\r\n STORAGE_ID: toNum(i.STORAGE_ID),\r\n UPDATED_BY: toNum(i.UPDATED_BY),\r\n UPDATE_TIME: toDate(i.UPDATE_TIME),\r\n SIZE: toNum(i.SIZE),\r\n }\r\n )\r\n )\r\n } else if (BXRestMapDiskBase.instanceOfiFolder(i)) {\r\n result.folder.push(\r\n Object.assign(\r\n i,\r\n {\r\n CREATED_BY: toNum(i.CREATED_BY),\r\n CREATE_TIME: toDate(i.CREATE_TIME),\r\n DELETED_BY: toNum(i.DELETED_BY),\r\n DELETED_TYPE: toNum(i.DELETED_TYPE),\r\n DELETE_TIME: (i.DELETE_TIME) ? toDate(i.DELETE_TIME) : null,\r\n ID: toNum(i.ID),\r\n PARENT_ID: toNum(i.PARENT_ID),\r\n REAL_OBJECT_ID: toNum(i.REAL_OBJECT_ID),\r\n STORAGE_ID: toNum(i.STORAGE_ID),\r\n UPDATED_BY: toNum(i.UPDATED_BY),\r\n UPDATE_TIME: toDate(i.UPDATE_TIME),\r\n }\r\n )\r\n )\r\n }\r\n }\r\n return result\r\n }\r\n\r\n static instanceOfiFile(object: any): object is iBXRestDiskFile {\r\n return object && object.TYPE && object.TYPE === 'file'\r\n }\r\n\r\n static instanceOfiFolder(object: any): object is iBXRestFolder {\r\n return object && object.TYPE && object.TYPE === 'folder'\r\n }\r\n\r\n\r\n static FolderHttpToFolder(value: iBXRestFolderHttp | undefined): iBXRestFolder | undefined {\r\n return (value)\r\n ? {\r\n ...value,\r\n ...{\r\n CREATED_BY: toNum(value.CREATED_BY),\r\n CREATE_TIME: toDate(value.CREATE_TIME),\r\n DELETED_BY: toNum(value.DELETED_BY),\r\n DELETED_TYPE: toNum(value.DELETED_TYPE),\r\n DELETE_TIME: toDate(value.CREATE_TIME),\r\n ID: toNum(value.ID),\r\n PARENT_ID: toNum(value.PARENT_ID),\r\n REAL_OBJECT_ID: toNum(value.REAL_OBJECT_ID),\r\n STORAGE_ID: toNum(value.STORAGE_ID),\r\n UPDATED_BY: toNum(value.UPDATED_BY),\r\n UPDATE_TIME: toDate(value.CREATE_TIME)\r\n }\r\n }\r\n : undefined\r\n }\r\n}\r\n","import { iBXRestFolderHttp } from '../../typification/rest/disk/folder'\r\nimport { iBXRestDiskFileHttp } from '../../typification/rest/disk/file'\r\nimport { BXRestMapDiskBase } from './base'\r\n\r\nexport class BXRestMapDiskFolder extends BXRestMapDiskBase {\r\n\r\n static getChildren(arr: (iBXRestFolderHttp | iBXRestDiskFileHttp)[] | undefined){\r\n return (arr) ? BXRestMapDiskBase.separationFoldersAndFiles(arr) : {file: [], folder: []}\r\n }\r\n}\r\n","import { BXRestMapDiskFolder } from '../../map/disk/folder'\r\nimport { Navvy } from '../../services/navvy'\r\nimport {\r\n iBXRestDiskFolderAddSubFolderParam,\r\n iBXRestDiskFolderCopyToParam,\r\n iBXRestDiskFolderMoveToParam,\r\n iBXRestDiskFolderRenameParam,\r\n iBXRestDiskFolderUploadFileParam,\r\n iBXRestParamDiskFileGet,\r\n iBXRestParamDiskFileMarkDeleted,\r\n iBXRestParamFolderDeleteTree,\r\n iBXRestParamFolderGetChildren,\n iBXRestParamFolderGetExternalLink,\n iBXRestParamFolderRestore,\n iBXRestDiskFolderGetFieldsHttp\n} from '../../typification/rest/disk'\r\n\r\nimport {\r\n $copyto,\r\n $disk,\r\n $folder,\r\n $get,\r\n $getchildren,\r\n $getFields, $markdeleted,\r\n $moveto,\r\n $rename, $restore, $uploadfile\r\n} from '../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyDiskFolder {\r\n protected url = {\r\n getFields: [$disk, $folder, $getFields],\r\n get: [$disk, $folder, $get],\r\n getChildren: [$disk, $folder, $getchildren],\r\n addSubFolder: [$disk, $folder, 'addsubfolder'],\r\n copyTo: [$disk, $folder, $copyto],\r\n moveTo: [$disk, $folder, $moveto],\r\n rename: [$disk, $folder, $rename],\r\n deleteTree: [$disk, $folder, 'deletetree'],\r\n markDeleted: [$disk, $folder, $markdeleted],\r\n restore: [$disk, $folder, $restore],\r\n uploadFile: [$disk, $folder, $uploadfile],\r\n getExternalLink: [$disk, $folder, 'getExternalLink']\r\n }\r\n private Navvy = new Navvy()\r\n\r\n /**\r\n * Возвращает папку по идентификатору\r\n *\r\n * @param param\r\n */\r\n get(param: iBXRestParamDiskFileGet) {\r\n return this.Navvy.simple(\r\n this.url.get,\r\n param,\r\n BXRestMapDiskFolder.FolderHttpToFolder\r\n )\r\n }\r\n\r\n /**\r\n * Создает дочернюю папку\r\n *\r\n * @param param\r\n */\r\n addSubFolder(param: iBXRestDiskFolderAddSubFolderParam) {\r\n return this.Navvy.simple(\r\n this.url.addSubFolder,\r\n param,\r\n BXRestMapDiskFolder.FolderHttpToFolder\r\n )\r\n }\r\n\r\n /**\r\n * Копирует папку в указанную папку\r\n *\r\n * @param param\r\n */\r\n copyTo(param: iBXRestDiskFolderCopyToParam) {\r\n return this.Navvy.simple(\r\n this.url.copyTo,\r\n param,\r\n BXRestMapDiskFolder.FolderHttpToFolder\r\n )\r\n }\r\n\r\n /**\r\n * Перемещает папку в указанную папку\r\n *\r\n * @param param\r\n */\r\n moveTo(param: iBXRestDiskFolderMoveToParam) {\r\n return this.Navvy.simple(\r\n this.url.moveTo,\r\n param,\r\n BXRestMapDiskFolder.FolderHttpToFolder\r\n )\r\n }\r\n\r\n /**\r\n * Переименовывает папку\r\n *\r\n * @param param\r\n */\r\n rename(param: iBXRestDiskFolderRenameParam) {\r\n return this.Navvy.simple(\r\n this.url.rename,\r\n param,\r\n BXRestMapDiskFolder.FolderHttpToFolder\r\n )\r\n }\r\n\r\n /**\r\n * Уничтожает папку и всё её дочерние элементы навсегда\r\n * В ответе 'result': true - успешное уничтожение папки\r\n *\r\n * @param param\r\n */\r\n deleteTree(param: iBXRestParamFolderDeleteTree) {\n return this.Navvy.simple<boolean, boolean, iBXRestParamFolderDeleteTree>(\n this.url.deleteTree,\n param\n )\r\n }\r\n\r\n /**\r\n * Перемещает папку в корзину\r\n *\r\n * @param param\r\n */\r\n markDeleted(param: iBXRestParamDiskFileMarkDeleted) {\r\n return this.Navvy.simple(\r\n this.url.markDeleted,\r\n param,\r\n BXRestMapDiskFolder.FolderHttpToFolder\r\n )\r\n }\r\n\r\n /**\r\n * Восстанавливает папку из корзины\r\n *\r\n * @param param\r\n */\r\n restore(param: iBXRestParamFolderRestore) {\r\n return this.Navvy.simple(\r\n this.url.restore,\r\n param,\r\n BXRestMapDiskFolder.FolderHttpToFolder\r\n )\r\n }\r\n\r\n /**\r\n * Метод возвращает публичную ссылку\r\n *\r\n * @param param\r\n */\r\n getExternalLink(param: iBXRestParamFolderGetExternalLink) {\n return this.Navvy.simple<string, string, iBXRestParamFolderGetExternalLink>(\n this.url.getExternalLink,\n param\n )\r\n }\r\n\r\n /**\r\n * Возвращает описание полей папки\r\n */\r\n getFields() {\n return this.Navvy.simple<iBXRestDiskFolderGetFieldsHttp>(\n this.url.getFields\n )\n }\r\n\r\n /**\r\n * Загружает новый файл в указанную папку\r\n *\r\n * @param param\r\n */\r\n uploadFile(param: iBXRestDiskFolderUploadFileParam) {\r\n return this.Navvy.simple(\r\n this.url.uploadFile,\r\n param,\r\n BXRestMapDiskFolder.FolderHttpToFolder\r\n )\r\n }\r\n\r\n /**\r\n * Возвращает список файлов и папок, которые находятся непосредственно в папке\r\n *\r\n * @param param\r\n */\r\n getChildren(param: iBXRestParamFolderGetChildren) {\r\n return this.Navvy.simple(\r\n this.url.getChildren,\r\n param,\r\n BXRestMapDiskFolder.getChildren\r\n )\r\n }\r\n\r\n}\r\n","import { BXRestMapDiskBase } from './base'\r\nimport { iBXRestFolder, iBXRestFolderHttp } from '../../typification/rest/disk/folder'\r\nimport { iBXRestDiskFileHttp } from '../../typification/rest/disk/file'\r\n\r\nexport class BXRestMapDiskStorage extends BXRestMapDiskBase {\r\n\r\n static getChildren(arr: (iBXRestFolderHttp | iBXRestDiskFileHttp)[] | undefined) {\r\n return (arr) ? BXRestMapDiskBase.separationFoldersAndFiles(arr) : {file: [], folder: []}\r\n }\r\n\r\n static addFolder(value: iBXRestFolderHttp | undefined): iBXRestFolder | undefined {\r\n return (value) ? BXRestMapDiskBase.FolderHttpToFolder(value) : undefined\r\n }\r\n}\r\n","import {\r\n $disk, $get, $getchildren, $getFields, $getlist, $getTypes, $rename, $storage, $uploadfile\r\n} from '../../consts/part-name-methods'\r\nimport { HttpBXServices } from '../../services/http/HttpBX'\r\nimport { iBXRestDiskFile, iBXRestDiskFileHttp } from '../../typification/rest/disk/file'\r\nimport { iBXRestFolderHttp, iBXRestFolderInfo } from '../../typification/rest/disk/folder'\r\nimport { iBXRestParamUploadFile } from '../../typification/rest/disk/storage/uploadfile'\r\nimport { iBXRestParamGetchildren } from '../../typification/rest/disk/storage/getchildren'\r\n\r\nexport class BXRestDiskStorage {\r\n protected url = {\r\n getFields: [$disk, $storage, $getFields], // Возвращает описание полей хранилища\r\n get: [$disk, $storage, $get], //\tВозвращает хранилище по идентификатору\r\n rename: [$disk, $storage, $rename], // Переименовывает хранилище.\r\n // Допустимо переименование только хранилища приложения (см. disk.storage.getforapp)\r\n getList: [$disk, $storage, $getlist], //\tВозвращает список доступных хранилищ\r\n getTypes: [$disk, $storage, $getTypes], // Возвращает список типов хранилищ\r\n addFolder: [$disk, $storage, 'addfolder'], // Создает папку в корне хранилища\r\n getChildren: [$disk, $storage, $getchildren], //\tВозвращает список файлов и папок,\r\n // которые находятся непосредственно в корне хранилища\r\n uploadFile: [$disk, $storage, $uploadfile], //\tЗагружает новый файл в корне хранилища\r\n getForApp: [$disk, $storage, 'getforapp'] //\tВозвращает описание хранилища,\r\n // с которым может работать приложение для хранения своих данных (файлов и папок)\r\n }\r\n\r\n private readonly http = new HttpBXServices()\r\n\r\n getForApp() {\r\n return this.http.post<iBXRestFolderInfo>(\r\n this.url.getForApp, {}\r\n )\r\n }\r\n\r\n getChildren(param: iBXRestParamGetchildren) {\r\n return this.http.post<(iBXRestFolderHttp | iBXRestDiskFileHttp)[]>(\r\n this.url.getChildren,\r\n param\r\n )\r\n }\r\n\r\n // TODO: Сделать нормальное описание параметров\r\n addFolder(param: {id: number, data: {NAME: string}}) {\r\n return this.http.post<iBXRestFolderHttp>(this.url.addFolder, param)\r\n }\r\n\r\n uploadFile(param: iBXRestParamUploadFile) {\r\n return this.http.post<iBXRestDiskFile>(this.url.uploadFile, param)\r\n }\r\n\r\n}\r\n","import { BXRestDiskStorage } from '../../../request/disk/storage'\r\nimport { iBXRestParamUploadFile, iBXRestParamGetchildren, iBXRestFolderInfo } from '../../../typification/rest/disk'\r\nimport { of, shareReplay, tap } from 'rxjs'\r\nimport { SessionStorage } from '../../../services/vanilla/sessionStorage'\r\nimport { iBXRestAnswer } from '../../../typification/rest/base'\r\n\r\n/**\r\n * В будущем будет реализовано сохранение на уровне класса navvy, пока оставим так, чтобы не дропать фичу\r\n *\r\n * @deprecated\r\n */\r\nexport class BXRestNavvyOperationDiskStorage {\r\n\r\n private readonly BXRestDiskStorage = new BXRestDiskStorage()\r\n\r\n getForApp() {\r\n let res = SessionStorage.getItem<iBXRestAnswer<iBXRestFolderInfo>>(this.constructor.name + this.getForApp.name)\r\n if (res) {\r\n return of(res)\r\n } else {\r\n return this.BXRestDiskStorage.getForApp().pipe(\r\n tap(v => {\r\n if (v) {\r\n SessionStorage.setItem(this.constructor.name + this.getForApp.name, v)\r\n }\r\n }),\r\n shareReplay(1)\r\n )\r\n }\r\n }\r\n\r\n /*\r\n private getforappEnd(){\r\n console.log('this.BXRestDiskStorage.getforapp()', this.BXRestDiskStorage.getforapp())\r\n let res = SessionStorage.getItem<iBXRestFolderInfo>(this.constructor.name + this.getforapp.name)\r\n if(res){\r\n return of({result: res})\r\n } else {\r\n console.log('this.BXRestDiskStorage.getforapp()', this.BXRestDiskStorage, this.BXRestDiskStorage.getforapp())\r\n return this.BXRestDiskStorage.getforapp().pipe(\r\n tap(v => {\r\n if(v){\r\n SessionStorage.setItem(this.constructor.name + this.getforapp.name, v)\r\n }\r\n })\r\n )\r\n }\r\n }\r\n */\r\n\r\n getChildren(param: iBXRestParamGetchildren) {\r\n return this.BXRestDiskStorage.getChildren(param)\r\n }\r\n\r\n // TODO: разобраться что возвращает и что вставлять\r\n addFolder(param: { id: number, data: { NAME: string } }) {\r\n return this.BXRestDiskStorage.addFolder(param)\r\n }\r\n\r\n uploadFile(param: iBXRestParamUploadFile) {\r\n return this.BXRestDiskStorage.uploadFile(param)\r\n }\r\n}\r\n","import { BXRestMapDiskStorage } from '../../map/disk/storage'\r\nimport {\r\n iBXRestParamUploadFile, iBXRestParamGetchildren,\r\n iBXRestFolderInfo, iBXRestFolder,\r\n iBXRestFolderHttp,\r\n iBXRestDiskFile,\r\n iBXRestDiskFileHttp,\r\n iBXRestDiskFileAndFolderMap\r\n} from '../../typification/rest/disk'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestNavvyOperationDiskStorage } from './operation/storage'\r\nimport {\r\n $disk,\r\n $get,\r\n $getchildren,\r\n $getFields,\r\n $getlist,\r\n $getTypes,\r\n $rename,\r\n $storage, $uploadfile\r\n} from '../../consts/part-name-methods'\r\nimport { BXRestMapDiskFile } from '../../map/disk/file'\r\n\r\nexport class BXRestNavvyDiskStorage {\r\n\r\n protected url = {\r\n getFields: [$disk, $storage, $getFields], // Возвращает описание полей хранилища\r\n get: [$disk, $storage, $get], //\tВозвращает хранилище по идентификатору\r\n rename: [$disk, $storage, $rename], // Переименовывает хранилище.\r\n // Допустимо переименование только хранилища приложения (см. disk.storage.getforapp)\r\n getList: [$disk, $storage, $getlist], //\tВозвращает список доступных хранилищ\r\n getTypes: [$disk, $storage, $getTypes], // Возвращает список типов хранилищ\r\n addFolder: [$disk, $storage, 'addfolder'], // Создает папку в корне хранилища\r\n getChildren: [$disk, $storage, $getchildren], //\tВозвращает список файлов и папок,\r\n // которые находятся непосредственно в корне хранилища\r\n uploadFile: [$disk, $storage, $uploadfile], //\tЗагружает новый файл в корне хранилища\r\n getForApp: [$disk, $storage, 'getforapp'] //\tВозвращает описание хранилища,\r\n // с которым может работать приложение для хранения своих данных (файлов и папок)\r\n }\r\n\r\n public operation = new BXRestNavvyOperationDiskStorage()\r\n private Navvy = new Navvy()\r\n\r\n getForApp() {\r\n return this.Navvy.simple<iBXRestFolderInfo>(this.url.getForApp)\r\n }\r\n\r\n /*\r\n private getforappEnd(){\r\n console.log('this.BXRestDiskStorage.getforapp()', this.BXRestDiskStorage.getforapp())\r\n let res = SessionStorage.getItem<iBXRestFolderInfo>(this.constructor.name + this.getforapp.name)\r\n if(res){\r\n return of({result: res})\r\n } else {\r\n console.log('this.BXRestDiskStorage.getforapp()', this.BXRestDiskStorage, this.BXRestDiskStorage.getforapp())\r\n return this.BXRestDiskStorage.getforapp().pipe(\r\n tap(v => {\r\n if(v){\r\n SessionStorage.setItem(this.constructor.name + this.getforapp.name, v)\r\n }\r\n })\r\n )\r\n }\r\n }\r\n */\r\n\r\n getChildren(param: iBXRestParamGetchildren) {\r\n return this.Navvy.simple<(iBXRestFolderHttp | iBXRestDiskFileHttp)[], iBXRestDiskFileAndFolderMap, iBXRestParamGetchildren>(\r\n this.url.getChildren,\r\n param,\r\n BXRestMapDiskStorage.getChildren\r\n )\r\n }\r\n\r\n addFolder(param: { id: number, data: { NAME: string } }) {\r\n return this.Navvy.simple<iBXRestFolderHttp, iBXRestFolder, { id: number, data: { NAME: string } }>(\r\n this.url.addFolder,\r\n param,\r\n BXRestMapDiskStorage.addFolder\r\n )\r\n }\r\n\r\n uploadFile(param: iBXRestParamUploadFile) {\r\n return this.Navvy.simple<iBXRestDiskFileHttp, iBXRestDiskFile, iBXRestParamUploadFile>(\r\n this.url.uploadFile,\r\n param,\r\n BXRestMapDiskFile.get\r\n )\r\n }\r\n}\r\n","import { BXRestNavvyDiskFolder } from './folder'\r\nimport { mergeMap } from 'rxjs/operators'\r\nimport { BXRestNavvyDiskFile } from './file'\r\nimport { BXRestNavvyDiskStorage } from './storage'\r\nimport { of, throwError } from 'rxjs'\r\n\r\nexport class BXRestNavvyDiskOperation {\r\n\r\n public readonly folder = new BXRestNavvyDiskFolder()\r\n public readonly disk = new BXRestNavvyDiskFile()\r\n private readonly storage = new BXRestNavvyDiskStorage()\r\n\r\n // данные файла в base64\r\n loadFileInAppFolder(file: {\r\n name: string,\r\n val: string\r\n }) {\r\n return this.storage.getForApp().res().pipe(\r\n mergeMap(infoFolder => {\r\n if (infoFolder) {\r\n return this.storage.uploadFile(\r\n {\r\n id: infoFolder.ID,\r\n fileContent: [file.name, file.val],\r\n data: {\r\n NAME: file.name\r\n },\r\n generateUniqueName: true\r\n }).res()\r\n }\r\n return throwError(() => new Error('Отсутствует общее хранилище для приложения'))\r\n })\r\n )\r\n }\r\n\r\n getOfCreateRootContentFolderApp(folderName: string) {\r\n return this.getOfCreateRootFolderApp(folderName).pipe(\r\n mergeMap(v => {\r\n if (v) {\r\n return this.folder.getChildren({id: v.ID}).res()\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n\r\n }\r\n\r\n getRootFoldersApp() {\r\n // return this.BXDiskFolder$.pipe(\r\n // take(1),\r\n // mergeMap(\r\n // saveData => {\r\n // if (saveData.content.root.app) {\r\n // return of(saveData.content.root.app)\r\n // }\r\n\r\n\r\n return this.storage.getForApp().res().pipe(\r\n mergeMap(v => {\r\n if (v && v.ID) {\r\n return this.storage.getChildren({id: v.ID}).res()\r\n }\r\n return of(undefined)\r\n })\r\n )\r\n }\r\n\r\n /**\r\n * Получать или создать папку, если её нет, с определенным именем для приложения\r\n * @param folderName\r\n */\r\n getOfCreateRootFolderApp(folderName: string) {\r\n return this.getRootFoldersApp().pipe(\r\n mergeMap(v => {\r\n if (v) {\r\n if (v.folder.length) {\r\n let find = v.folder.find(i => i.NAME === folderName)\r\n if (find) {\r\n return of(find)\r\n }\r\n }\r\n }\r\n return this.storage.getForApp().res().pipe(\r\n mergeMap(v => {\r\n if (v && v.ID) {\r\n return this.storage.addFolder({id: v.ID, data: {NAME: folderName}}).res()\r\n }\r\n return throwError(() => new Error('Отсутствуют права добавление записи затраченного времени'))\r\n })\r\n )\r\n }\r\n ))\r\n }\r\n\r\n}\r\n","import { BXRestMapDiskBase } from './base'\r\nimport {iBXRestDiskAttachedObject, iBXRestDiskAttachedObjectHttp} from '../../typification/rest/disk/AttachedObject'\r\nimport { toDate, toNum } from '../../services/base'\r\n\r\nexport class BXRestMapDiskAttachedObject extends BXRestMapDiskBase {\r\n\r\n static get(v: iBXRestDiskAttachedObjectHttp | undefined): iBXRestDiskAttachedObject | undefined {\r\n return (v) ? BXRestMapDiskAttachedObject.iBXRestDiskAttachedObjectHttpToiBXRestDiskAttachedObject(v) : undefined\r\n }\r\n\r\n static iBXRestDiskAttachedObjectHttpToiBXRestDiskAttachedObject(v: iBXRestDiskAttachedObjectHttp): iBXRestDiskAttachedObject {\r\n return Object.assign(v, {\r\n ID: toNum(v.ID),\r\n OBJECT_ID: toNum(v.OBJECT_ID),\r\n ENTITY_ID: toNum(v.ENTITY_ID),\r\n CREATE_TIME: toDate(v.CREATE_TIME),\r\n CREATED_BY: toNum(v.CREATED_BY),\r\n SIZE: toNum(v.SIZE)\r\n })\r\n }\r\n}\r\n","import { BXRestMapDiskAttachedObject } from '../../map/disk/attachedObject'\nimport { Navvy } from '../../services/navvy'\nimport { iBXRestParamRestDiskAttachedObject } from '../../typification/rest/disk'\nimport { $disk, $get } from '../../consts/part-name-methods'\n\r\nexport class BXRestNavvyDiskAttachedObject {\r\n\r\n private Navvy = new Navvy()\n\n get(param: iBXRestParamRestDiskAttachedObject) {\n return this.Navvy.simple(\n [$disk, 'attachedObject', $get],\n param,\n BXRestMapDiskAttachedObject.get)\n }\n}\n","import { BXRestNavvyDiskFile } from './disk/file'\r\nimport { BXRestNavvyDiskFolder } from './disk/folder'\r\nimport { BXRestNavvyDiskOperation } from './disk/operation'\r\nimport { BXRestNavvyDiskAttachedObject } from './disk/attachedObject'\r\n\r\nexport class BXRestNavvyDisk {\r\n public readonly operation = new BXRestNavvyDiskOperation()\r\n public readonly file = new BXRestNavvyDiskFile()\r\n public readonly folder = new BXRestNavvyDiskFolder()\r\n public readonly attachedObject = new BXRestNavvyDiskAttachedObject()\r\n}\r\n","import {\n iBXRestBizprocTask,\n iBXRestParamBizprocTaskComplete,\n iBXRestParamBizprocTaskDelegate,\n iBXRestParamBizprocTaskList\n} from '../../typification/rest/bizproc'\nimport { Navvy } from '../../services/navvy'\nimport {\n $bizproc,\n $complete,\n $delegate,\n $list,\n $task\n} from '../../consts/part-name-methods'\n\nexport class BXRestNavvyBizProcTask {\n private readonly Navvy = new Navvy()\n\n /**\n * Возвращает список заданий бизнес-процессов\n */\n list(param: iBXRestParamBizprocTaskList = {}) {\n return this.Navvy.pagNav<\n iBXRestBizprocTask,\n iBXRestBizprocTask,\n iBXRestParamBizprocTaskList\n >([$bizproc, $task, $list], param)\n }\n\n /**\n * Выполняет задание бизнес-процесса\n */\n complete(param: iBXRestParamBizprocTaskComplete) {\n return this.Navvy.simple<boolean, boolean, iBXRestParamBizprocTaskComplete>(\n [$bizproc, $task, $complete],\n param\n )\n }\n\n /**\n * Делегирует задания бизнес-процесса другому пользователю\n */\n delegate(param: iBXRestParamBizprocTaskDelegate) {\n return this.Navvy.simple<boolean, boolean, iBXRestParamBizprocTaskDelegate>(\n [$bizproc, $task, $delegate],\n param\n )\n }\n}\n","import {\n iBXRestBizprocWorkflowInstance,\n iBXRestParamBizprocWorkflowInstances,\n iBXRestParamBizprocWorkflowKill,\n iBXRestParamBizprocWorkflowStart,\n iBXRestParamBizprocWorkflowTerminate\n} from '../../typification/rest/bizproc'\nimport { Navvy } from '../../services/navvy'\nimport {\n $bizproc,\n $instances,\n $kill,\n $start,\n $terminate,\n $workflow\n} from '../../consts/part-name-methods'\n\r\nexport class BXRestNavvyBXRestBizProcWorkflow {\r\n private readonly Navvy = new Navvy()\r\n\r\n /**\r\n * Запускает Бизнес-процесс\r\n */\r\n start(param: iBXRestParamBizprocWorkflowStart) {\n return this.Navvy.simple<string, string, iBXRestParamBizprocWorkflowStart>(\n [$bizproc, $workflow, $start],\n param\n )\n }\n\n /**\n * Возвращает список запущенных бизнес-процессов\n */\n instances(param: iBXRestParamBizprocWorkflowInstances = {}) {\n return this.Navvy.pagNav<\n iBXRestBizprocWorkflowInstance,\n iBXRestBizprocWorkflowInstance,\n iBXRestParamBizprocWorkflowInstances\n >([$bizproc, $workflow, $instances], param)\n }\n\n /**\n * Останавливает активный бизнес-процесс с сохранением его данных\n */\n terminate(param: iBXRestParamBizprocWorkflowTerminate) {\n return this.Navvy.simple<boolean, boolean, iBXRestParamBizprocWorkflowTerminate>(\n [$bizproc, $workflow, $terminate],\n param\n )\n }\n\n /**\n * Удаляет запущенный бизнес-процесс вместе со всеми его данными\n */\n kill(param: iBXRestParamBizprocWorkflowKill) {\n return this.Navvy.simple<boolean, boolean, iBXRestParamBizprocWorkflowKill>(\n [$bizproc, $workflow, $kill],\n param\n )\n }\n}\n","import { BXRestNavvyLists } from './lists'\r\nimport { forkJoin, mergeMap, Observable, of, throwError } from 'rxjs'\r\nimport { BXRestNavvyBizProcTask } from './bizproc/task'\r\nimport { BXRestNavvyBXRestBizProcWorkflow } from './bizproc/workflow'\r\n\r\nexport class BXRestNavvyBizProc {\r\n\r\n public readonly task = new BXRestNavvyBizProcTask()\r\n public readonly workflow = new BXRestNavvyBXRestBizProcWorkflow()\r\n private readonly BXRestNavvyLists = new BXRestNavvyLists()\r\n\r\n /**\r\n * Метод по запуску бизнес процессов из ленты\r\n * TODO: продумать работу с такими методами-исключениями\r\n *\r\n * templateIDs - id бизнес процессов которые хотим принудительно запустить\r\n * @param id\r\n * @param parametersElement\r\n * @param parametersBizProc\r\n * @param templateIDs\r\n */\r\n startProcFormNewsFeed(\r\n id: number,\r\n parametersElement: Record<string, string | Date>,\r\n parametersBizProc: Record<string, string>,\r\n templateIDs: number[] = []\r\n ) {\r\n // Не понимаю почему DATE_CREATE указывается не на сервере\r\n // но если пользователь не указал, надо указать\r\n const value: any = parametersElement['DATE_CREATE']\r\n if (value === null || value === undefined || (typeof value === 'string' || value.trim() === '')) {\r\n parametersElement['DATE_CREATE'] = new Date()\r\n }\r\n\r\n return this.BXRestNavvyLists.element.add(\r\n {\r\n IBLOCK_TYPE_ID: 'bitrix_processes',\r\n IBLOCK_ID: id,\r\n ELEMENT_CODE: 'trace_studio_' + Date.now() + '_' + Math.random(),\r\n // тут должно быть уникально значение (генерация уникальных значений на фронте лол),\r\n // как ещё уникальнее сделать я просто не знаю\r\n // это поле обязательно без него не работает\r\n FIELDS: {\r\n NAME: String(parametersElement['NAME']),\r\n ...parametersElement\r\n }\r\n }\r\n ).res().pipe(\r\n mergeMap(v => {\r\n if (v) {\r\n if (Object.keys(parametersBizProc).length && templateIDs.length) {\r\n let request: Observable<any | undefined>[] = []\r\n for (let templateID of templateIDs) {\r\n request.push(this.workflow.start(\r\n {\r\n TEMPLATE_ID: templateID,\r\n DOCUMENT_ID: ['lists', 'BizprocDocument', String(v)],\r\n PARAMETERS: parametersBizProc\r\n }).res())\r\n }\r\n return forkJoin(request)\r\n } else {\r\n return of(true)\r\n }\r\n }\r\n return throwError(() => new Error('Не удалось запустить бизнес процесс'))\r\n })\r\n )\r\n }\r\n}\r\n","import { iBXRestBlogPost, iBXRestBlogPostHttp } from '../../typification/rest/log/blogpost/get'\r\nimport { iBXRestBlogPostEssence, iBXRestBlogPostEssenceHttp } from '../../typification/rest/log/blogpost/essence'\r\nimport { toDate, toNum } from '../../services/base'\r\n\r\nexport class BXRestMapLogBlogPost {\r\n\r\n static get(item: iBXRestBlogPostHttp[] | undefined): iBXRestBlogPost[] | undefined {\r\n return (item) ? item.map(i => BXRestMapLogBlogPost.iBlogPostBXHttpToiBlogPostBX(i)) : undefined\r\n }\r\n\r\n static iBlogPostBXHttpToiBlogPostBX(item: iBXRestBlogPostHttp): iBXRestBlogPost {\r\n return {\r\n AUTHOR_ID: toNum(item.AUTHOR_ID),\r\n BLOG_ID: toNum(item.BLOG_ID),\r\n CATEGORY_ID: toNum(item.CATEGORY_ID),\r\n DATE_PUBLISH: toDate(item.DATE_PUBLISH),\r\n ENABLE_COMMENTS: item.ENABLE_COMMENTS === 'Y',\r\n HAS_COMMENT_IMAGES: item.HAS_COMMENT_IMAGES === 'Y',\r\n HAS_SOCNET_ALL: item.HAS_SOCNET_ALL === 'Y',\r\n HAS_IMAGES: item.HAS_IMAGES === 'Y',\r\n HAS_PROPS: item.HAS_PROPS === 'Y',\r\n HAS_TAGS: item.HAS_TAGS === 'Y',\r\n TITLE: item.TITLE,\r\n ID: toNum(item.ID),\r\n MICRO: item.MICRO === 'Y',\r\n PUBLISH_STATUS: item.PUBLISH_STATUS,\r\n NUM_COMMENTS: toNum(item.NUM_COMMENTS),\r\n UF_ANSWER_ID: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_ANSWER_ID),\r\n UF_BLOG_POST_DOC: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_DOC),\r\n UF_BLOG_POST_FILE: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_FILE),\r\n UF_BLOG_POST_F_EDIT: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_F_EDIT),\r\n UF_BLOG_POST_IMPRTNT: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_IMPRTNT),\r\n UF_BLOG_POST_URL_PRV: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_URL_PRV),\r\n UF_BLOG_POST_VOTE: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_BLOG_POST_VOTE),\r\n UF_CATEGORY_CODE: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_CATEGORY_CODE),\r\n UF_GRATITUDE: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_GRATITUDE),\r\n UF_IMPRTANT_DATE_END: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_IMPRTANT_DATE_END),\r\n UF_MAIL_MESSAGE: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_MAIL_MESSAGE),\r\n UF_ORIGINAL_ID: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_ORIGINAL_ID),\r\n UF_STATUS: BXRestMapLogBlogPost.iBlogPostEssenceHttpToiBlogPostEssence(item.UF_STATUS),\r\n CODE: item.CODE,\r\n DETAIL_TEXT: item.DETAIL_TEXT,\r\n FILES: (item.FILES) ? item.FILES.map(i => toNum(i)) : []\r\n }\r\n }\r\n\r\n static iBlogPostEssenceHttpToiBlogPostEssence(item: iBXRestBlogPostEssenceHttp | undefined): iBXRestBlogPostEssence | undefined {\r\n if(item) {\r\n return {\r\n EDIT_IN_LIST: item.EDIT_IN_LIST === 'Y',\r\n ID: toNum(item.ID),\r\n IS_SEARCHABLE: item.IS_SEARCHABLE === 'Y',\r\n MANDATORY: item.MANDATORY === 'Y',\r\n MULTIPLE: item.MULTIPLE === 'Y',\r\n SHOW_FILTER: item.SHOW_FILTER === 'Y',\r\n SHOW_IN_LIST: item.SHOW_IN_LIST === 'Y',\r\n SORT: toNum(item.SORT),\r\n EDIT_FORM_LABEL: item.EDIT_FORM_LABEL,\r\n ENTITY_ID: item.EDIT_FORM_LABEL,\r\n ENTITY_VALUE_ID: toNum(item.ENTITY_VALUE_ID),\r\n ERROR_MESSAGE: item.ERROR_MESSAGE,\r\n FIELD_NAME: item.FIELD_NAME,\r\n HELP_MESSAGE: item.HELP_MESSAGE,\r\n LIST_COLUMN_LABEL: item.HELP_MESSAGE,\r\n LIST_FILTER_LABEL: item.LIST_FILTER_LABEL,\r\n SETTINGS: item.SETTINGS,\r\n USER_TYPE: item.USER_TYPE,\r\n USER_TYPE_ID: item.USER_TYPE_ID,\r\n VALUE: item.SHOW_IN_LIST === 'Y',\r\n XML_ID: item.XML_ID // ??\r\n }\r\n } else {\r\n return undefined\r\n }\r\n }\r\n}\r\n","import { iBXRestParamLogBlogPostAdd, iBXRestParamBlogPostGet } from '../../typification/rest/log'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestMapLogBlogPost } from '../../map/log/blogpost'\r\nimport { $add, $blogpost, $get, $log } from '../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyLogBlogPost {\r\n url = {\r\n /**\r\n * Добавляет в Живую Ленту сообщение от имени текущего пользователя\r\n */\r\n add: [$log, $blogpost, $add], //\r\n // getusers: {\r\n // important: 'log.blogpost.getusers.important' // Отдает массив ID пользователей, прочитавших Важное сообщение\r\n // },\r\n /**\r\n * Возвращает массив с доступными текущему пользователю сообщениями Живой ленты. Каждое из сообщений представляет собой массив значений полей (включая пользовательские поля)\r\n */\r\n get: [$log, $blogpost, $get],\r\n // /**\r\n // * Удаляет сообщение Живой Ленты\r\n // */\r\n // delete: [$log, $blogpost, $delete],\r\n // /**\r\n // * Добавляет получателей в сообщение Живой Ленты\r\n // */\r\n // share: [$log, $blogpost, $share],\r\n // /**\r\n // * Изменяет сообщение Живой Ленты\r\n // */\r\n // update: [$log, $blogpost, $update],\r\n }\r\n\r\n private Navvy = new Navvy()\r\n\r\n add(param: iBXRestParamLogBlogPostAdd) {\n return this.Navvy.simple<number, number, iBXRestParamLogBlogPostAdd>(this.url.add, param)\n }\n\r\n get(param: iBXRestParamBlogPostGet = {}) {\r\n return this.Navvy.pagNav(this.url.get, param, BXRestMapLogBlogPost.get)\r\n }\r\n\r\n}\r\n","import { $add, $blogcomment, $log } from '../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyLogBlogComment {\r\n url = {\r\n add: [$log, $blogcomment, $add], //\tДобавляет комментарий к сообщению Живой ленты\r\n }\r\n}\r\n","import { BXRestNavvyLogBlogPost } from './log/blogpost'\r\nimport { BXRestNavvyLogBlogComment } from './log/blogcomment'\r\n\r\nexport class BXRestNavvyLog {\r\n public readonly blogPost = new BXRestNavvyLogBlogPost()\r\n public readonly blogComment = new BXRestNavvyLogBlogComment()\r\n}\r\n","import { toDate, toNum } from '../../services/base'\r\nimport {\r\n iBXRestCalendarEventGetAnswer,\r\n iBXRestCalendarEventGetAnswerHttp\r\n} from '../../typification/rest/calendar/event/get'\r\n\r\nexport class BXRestMapCalendarEvent {\r\n\r\n static getById(item: iBXRestCalendarEventGetAnswerHttp | undefined | null): iBXRestCalendarEventGetAnswer | undefined {\r\n return (item) ? BXRestMapCalendarEvent.CalendarEventGetAnswerHttpToCalendarEventGetAnswer(item) : undefined\r\n }\r\n\r\n static get(item: iBXRestCalendarEventGetAnswerHttp[] | undefined): iBXRestCalendarEventGetAnswer[] | undefined {\r\n return (item) ? item.map(i => BXRestMapCalendarEvent.CalendarEventGetAnswerHttpToCalendarEventGetAnswer(i)) : undefined\r\n }\r\n\r\n static CalendarEventGetAnswerHttpToCalendarEventGetAnswer(item: iBXRestCalendarEventGetAnswerHttp): iBXRestCalendarEventGetAnswer {\r\n return {\r\n ...item,\r\n ID: toNum(item.ID),\r\n MEETING_HOST: toNum(item.MEETING_HOST),\r\n OWNER_ID: toNum(item.OWNER_ID),\r\n PARENT_ID: toNum(item.PARENT_ID),\r\n RECURRENCE_ID: toNum(item.RECURRENCE_ID),\r\n SECT_ID: toNum(item.SECT_ID),\r\n SECTION_ID: toNum(item.SECTION_ID),\r\n TZ_OFFSET_FROM: toNum(item.TZ_OFFSET_FROM),\r\n TZ_OFFSET_TO: toNum(item.TZ_OFFSET_TO),\r\n VERSION: toNum(item.VERSION),\r\n DATE_CREATE: toDate(item.DATE_CREATE, 'dd.MM.yyyy HH:mm:ss'),\r\n DATE_FROM: toDate(item.DATE_FROM, 'dd.MM.yyyy HH:mm:ss'),\r\n ORIGINAL_DATE_FROM: (item.ORIGINAL_DATE_FROM)\r\n ? toDate(item.ORIGINAL_DATE_FROM, 'dd.MM.yyyy HH:mm:ss')\r\n : null,\r\n DATE_TO: toDate(item.DATE_TO, 'dd.MM.yyyy HH:mm:ss'),\r\n TIMESTAMP_X: toDate(item.TIMESTAMP_X, 'dd.MM.yyyy HH:mm:ss'),\r\n DATE_FROM_TS_UTC: toNum(item.DATE_FROM_TS_UTC),\r\n DATE_TO_TS_UTC: toNum(item.DATE_TO_TS_UTC),\r\n DELETED: item.DELETED === 'Y',\r\n DT_LENGTH: toNum(item.DT_LENGTH),\r\n DT_SKIP_TIME: item.DT_SKIP_TIME === 'Y',\r\n MEETING_STATUS: item.MEETING_STATUS === 'Y',\r\n EXDATE: item.EXDATE.split(';').map(dateStr => toDate(dateStr, 'dd.MM.yyyy')),\r\n RRULE: (item.RRULE && typeof item.RRULE !== 'string') ? {\r\n ...item.RRULE,\r\n UNTIL: toDate(item.RRULE.UNTIL, 'dd.MM.yyyy'),\r\n '~UNTIL': toDate(item.RRULE['~UNTIL'], 'dd.MM.yyyy')\r\n } : null,\r\n ATTENDEE_LIST: (item.ATTENDEE_LIST) ? item.ATTENDEE_LIST.map(i => {\r\n return {id: i.id, entryId: toNum(i.entryId), status: i.status}\r\n }) : []\r\n }\r\n }\r\n}\r\n","\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestMapCalendarEvent } from '../../map/calendar/event'\r\nimport { $add, $calendar, $delete, $event, $get, $nearest, $update } from '../../consts/part-name-methods'\r\nimport {\r\n iBXRestCalendarEventGetByIdParam,\r\n iBXRestCalendarEventGetParam,\r\n iBXRestCalendarEventAddParam,\r\n iBXRestCalendarEventUpdateParam,\r\n iBXRestCalendarEventDeleteParam,\r\n iBXRestCalendarEventGetNearestParam\r\n} from '../../typification/rest/calendar'\r\n\r\nexport class BXRestNavvyRestCalendarEvent {\r\n\r\n private url = {\r\n\r\n /** Добавляет новое событие */\r\n add: [$calendar, $event, $add],\r\n\r\n /** Удаляет событие */\r\n delete: [$calendar, $event, $delete],\r\n\r\n /** Возвращает список событий календаря */\r\n get: Object.assign([$calendar, $event, $get], {\r\n\r\n /** Возвращает список будущих событий для текущего пользователя */\r\n nearest: [$calendar, $event, $get, $nearest],\r\n }),\r\n\r\n /** Метод получает информацию о событии календаря по идентификатору */\r\n getById: [$calendar, $event, 'getById'],\r\n\r\n /** Редактирует существующее событие */\r\n update: [$calendar, $event, $update],\r\n }\r\n\r\n private readonly Navvy = new Navvy()\r\n\r\n /** Добавляет событие в календарь */\r\n add(param: iBXRestCalendarEventAddParam) {\r\n return this.Navvy.simple<number, number, iBXRestCalendarEventAddParam>(\r\n this.url.add,\r\n param\r\n )\r\n }\r\n\r\n /** Добавляет событие в календарь */\r\n delete(param: iBXRestCalendarEventDeleteParam) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestCalendarEventDeleteParam>(\r\n this.url.delete,\r\n param\r\n )\r\n }\r\n\r\n // /** Возвращает список событий календаря, всегда весь список, паганации в методе нет да и не нужна */\r\n // get(param: iBXRestCalendarEventGetParam) {\r\n // return this.Navvy.simple(\r\n // this.url.get,\r\n // param,\r\n // BXRestMapCalendarEvent.get\r\n // )\r\n // }\r\n\r\n get = Object.assign(\r\n /** Возвращает список событий календаря, всегда весь список, паганации в методе нет да и не нужна */\r\n (param: iBXRestCalendarEventGetParam) => this.Navvy.simple(\r\n this.url.get,\r\n param,\r\n BXRestMapCalendarEvent.get\r\n ),\r\n {\r\n /** Метод получает список будущих событий */\r\n nearest: (param: iBXRestCalendarEventGetNearestParam) => this.Navvy.simple(\r\n this.url.get.nearest,\r\n param,\r\n BXRestMapCalendarEvent.get\r\n ),\r\n }\r\n );\r\n\r\n /** Обновление событие в календарь */\r\n update(param: iBXRestCalendarEventUpdateParam) {\r\n return this.Navvy.simple<number, number, iBXRestCalendarEventUpdateParam>(\r\n this.url.update,\r\n param\r\n )\r\n }\r\n\r\n /** Метод получает информацию о событии календаря по идентификатору */\r\n getById(param: iBXRestCalendarEventGetByIdParam) {\r\n return this.Navvy.simple(\r\n this.url.getById,\r\n param,\r\n BXRestMapCalendarEvent.getById\r\n )\r\n }\r\n}\r\n","import { iBXRestCalendarSectionGet, iBXRestCalendarSectionGetHttp } from '../../typification/rest/calendar/section/get'\r\nimport { toDate, toNum } from '../../services/base'\r\n\r\nexport class BXRestMapCalendarSection {\r\n\r\n static get(item: iBXRestCalendarSectionGetHttp[] | undefined): iBXRestCalendarSectionGet[] | undefined{\r\n return (item) ? item.map(i => BXRestMapCalendarSection.CalendarSectionGetHttpToCalendarSectionGetHttp(i)) : undefined\r\n }\r\n\r\n static CalendarSectionGetHttpToCalendarSectionGetHttp(item: iBXRestCalendarSectionGetHttp): iBXRestCalendarSectionGet {\r\n return {\r\n ...item,\r\n ID: toNum(item.ID),\r\n OWNER_ID: toNum(item.OWNER_ID),\r\n CREATED_BY: toNum(item.CREATED_BY),\r\n DATE_CREATE: toDate(item.DATE_CREATE, 'dd.MM.yyyy HH:mm:ss'),\r\n TIMESTAMP_X: toDate(item.TIMESTAMP_X, 'dd.MM.yyyy HH:mm:ss')\r\n }\r\n }\r\n}\r\n","import { Navvy } from '../../services/navvy'\r\nimport { $add, $calendar, $delete, $get, $section, $update } from '../../consts/part-name-methods'\r\nimport {\r\n iBXRestCalendarSectionGetParam,\r\n iBXRestCalendarSectionAddParam,\r\n iBXRestCalendarSectionDeleteParam,\r\n iBXRestCalendarSectionUpdateParam\r\n} from '../../typification/rest/calendar'\r\nimport { BXRestMapCalendarSection } from '../../map/calendar/section'\r\n\r\nexport class BXRestNavvyRestCalendarSection {\r\n\r\n private url = {\r\n\r\n /** Добавляет новый раздел */\r\n add: [$calendar, $section, $add],\r\n /** Удаляет раздел */\r\n delete: [$calendar, $section, $delete],\r\n\r\n /** Возвращает описание разделов */\r\n get: [$calendar, $section, $get],\r\n\r\n /** Редактирует существующее разделы */\r\n update: [$calendar, $section, $update],\r\n }\r\n\r\n private readonly Navvy = new Navvy()\r\n\r\n /** Возвращает описание разделов, всегда весь список, паганации в методе нет да и не нужна */\r\n get(param: iBXRestCalendarSectionGetParam) {\r\n return this.Navvy.simple(\r\n this.url.get,\r\n param,\r\n BXRestMapCalendarSection.get\r\n )\r\n }\r\n\r\n /** Добавляет новый раздел */\r\n add(param: iBXRestCalendarSectionAddParam) {\r\n return this.Navvy.simple<number, number, iBXRestCalendarSectionAddParam>(\r\n this.url.add,\r\n param\r\n )\r\n }\r\n\r\n /** Удаляет раздел */\r\n delete(param: iBXRestCalendarSectionDeleteParam) {\r\n return this.Navvy.simple<boolean|string, boolean|string, iBXRestCalendarSectionDeleteParam>(\r\n this.url.delete,\r\n param\r\n )\r\n }\r\n\r\n /** Редактирует существующее разделы */\r\n update(param: iBXRestCalendarSectionUpdateParam) {\r\n return this.Navvy.simple<number, number, iBXRestCalendarSectionUpdateParam>(\r\n this.url.update,\r\n param\r\n )\r\n }\r\n}\r\n","import {\r\n iBXRestCalendarUserSettingsGet,\r\n iBXRestCalendarUserSettingsGetHttp\r\n} from '../../../typification/rest/calendar/user/settings/get'\r\nimport { toNum } from '../../../services/base'\r\n\r\nexport class BXRestMapCalendarUserSettings {\r\n\r\n static get(item: iBXRestCalendarUserSettingsGetHttp | undefined): iBXRestCalendarUserSettingsGet | undefined {\r\n return (item) ?\r\n {\r\n ...item,\r\n meetSection: toNum(item.meetSection),\r\n crmSection: toNum(item.crmSection),\r\n collapseOffHours: item.collapseOffHours === 'Y',\r\n showWeekNumbers: item.showWeekNumbers === 'Y',\r\n showTasks: item.showTasks === 'Y',\r\n syncTasks: item.syncTasks === 'Y',\r\n showCompletedTasks: item.showCompletedTasks === 'Y',\r\n lastUsedSection: (item.lastUsedSection !== 'false') ? toNum(item.lastUsedSection) : false,\r\n defaultSections: item.defaultSections.map(obj =>\r\n Object.fromEntries(\r\n Object.entries(obj).map(([key, value]) => [key, Number(value)])\r\n )\r\n ),\r\n syncPeriodPast: toNum(item.syncPeriodPast),\r\n syncPeriodFuture: toNum(item.syncPeriodPast),\r\n }\r\n : undefined\r\n }\r\n\r\n}","import { Navvy } from '../../../services/navvy'\r\nimport { $calendar, $get, $set, $settings, $user } from '../../../consts/part-name-methods'\r\nimport { BXRestMapCalendarUserSettings } from '../../../map/calendar/user/settings'\r\nimport { iBXRestCalendarUserSettingsSetParam } from '../../../typification/rest/calendar'\r\n\r\nexport class BXRestNavvyRestCalendarUserSettings {\r\n\r\n private readonly Navvy = new Navvy()\r\n\r\n private url = {\r\n /** получает пользовательские настройки календаря */\r\n get: [$calendar, $user, $settings, $get],\r\n /** устанавливает пользовательские настройки календаря для текущего пользователя */\r\n set: [$calendar, $user, $settings, $set],\r\n }\r\n\r\n /** Получает пользовательские настройки календаря */\r\n get(){\r\n return this.Navvy.simple(\r\n this.url.get,\r\n undefined,\r\n BXRestMapCalendarUserSettings.get\r\n )\r\n }\r\n\r\n /**\r\n * Устанавливает пользовательские настройки календаря для текущего пользователя\r\n *\r\n * @deprecated Не протестирован\r\n */\r\n set(param: iBXRestCalendarUserSettingsSetParam) {\n return this.Navvy.simple<boolean, boolean, iBXRestCalendarUserSettingsSetParam>(this.url.set, param)\n }\n}\n","import { BXRestNavvyRestCalendarUserSettings } from './user/settings'\r\n\r\nexport class BXRestNavvyRestCalendarUser {\r\n public readonly settings = new BXRestNavvyRestCalendarUserSettings()\r\n}","import { BXRestNavvyRestCalendarEvent } from './calendar/event'\r\nimport { BXRestNavvyRestCalendarSection } from './calendar/section'\r\nimport { BXRestNavvyRestCalendarUser } from './calendar/user'\r\n\r\nexport class BXRestNavvyCalendar {\r\n\r\n // TODO: эту дичь расформировать потом по классам\r\n /*\r\n url = {\r\n accessibility: {get: getNameMethod([$calendar, $accessibility, $get])}, // Возвращает занятость пользователей из списка.\r\n meeting: {\r\n params: {\r\n set: getNameMethod([$calendar, $meeting, $params, $set]), // Устанавливает параметры события для текущего пользователя\r\n },\r\n status: {\r\n get: getNameMethod([$calendar, $meeting, $status, $get]), // Возвращает статус участия текущего пользователя в событии\r\n set: getNameMethod([$calendar, $meeting, $status, $set]), // Устанавливает статус участия в событии для текущего пользователя\r\n },\r\n },\r\n resource: {\r\n list: getNameMethod([$calendar, $resource, $list]), // Возвращает список (массив) всех ресурсов\r\n add: getNameMethod([$calendar, $resource, $add]), // Добавляет новый ресурс\r\n update: getNameMethod([$calendar, $resource, $update]), // Изменяет ресурс\r\n delete: getNameMethod([$calendar, $resource, $delete]), // Удаляет ресурс\r\n booking: {\r\n list: getNameMethod([$calendar, $resource, $booking, $list]), // Предоставляет возможность выбрать бронирования ресурсов\r\n }\r\n },\r\n getbyid: getNameMethod([$calendar, $event, 'getbyid']), // Возвращает событие календаря по идентификатору\r\n }\r\n */\r\n public readonly event = new BXRestNavvyRestCalendarEvent()\r\n public readonly section = new BXRestNavvyRestCalendarSection()\r\n public readonly user = new BXRestNavvyRestCalendarUser()\r\n\r\n}\r\n","import { iBXRestSonetGroupGet, iBXRestSonetGroupGetHttp } from '../typification/rest/sonet_group/get'\r\nimport { toDate, toNum } from '../services/base'\r\n\r\nexport class BXRestMapSonetGroup {\r\n\r\n static get(items: iBXRestSonetGroupGetHttp[] | undefined): iBXRestSonetGroupGet[] | undefined {\r\n return (items) ? items.map(i => BXRestMapSonetGroup.iBXRestParamSonetHttpToiBXRestParamSonet(i)) : undefined\r\n }\r\n\r\n static iBXRestParamSonetHttpToiBXRestParamSonet(items: iBXRestSonetGroupGetHttp): iBXRestSonetGroupGet {\r\n return Object.assign(items, {\r\n ID: toNum(items.ID),\r\n DATE_CREATE: toDate(items.DATE_CREATE),\r\n DATE_UPDATE: toDate(items.DATE_UPDATE),\r\n ACTIVE: items.ACTIVE == 'Y',\r\n VISIBLE: items.VISIBLE == 'Y',\r\n OPENED: items.OPENED == 'Y',\r\n CLOSED: items.CLOSED == 'Y',\r\n SUBJECT_ID: toNum(items.SUBJECT_ID),\r\n OWNER_ID: toNum(items.OWNER_ID),\r\n NUMBER_OF_MEMBERS: toNum(items.OWNER_ID),\r\n DATE_ACTIVITY: toDate(items.DATE_ACTIVITY),\r\n PROJECT: items.OPENED == 'Y',\r\n IS_EXTRANET: items.OPENED == 'Y',\r\n })\r\n }\r\n}\r\n","import { iBXRestParamSonetGroupGet } from '../typification/rest/sonet_group'\r\nimport { BXRestMapSonetGroup } from '../map/sonet_group'\r\nimport { Navvy } from '../services/navvy'\r\nimport { $get, $sonet_group } from '../consts/part-name-methods'\r\n\r\nexport class BXRestNavvySonetGroup {\r\n\r\n url = {\r\n // /**\r\n // * Создает группу соцсети, используя метод API CSocNetGroup::CreateGroup(), указывая владельцем группы текущего пользователя\r\n // */\r\n // create: [$sonet_group, $create],\r\n // /**\r\n // * Удаляет группу соцсети\r\n // */\r\n // delete: [$sonet_group, $delete],\r\n // feature: {\r\n // access: [$sonet_group, $feature, $access] // Проверяет, имеет ли текущий пользователь право на совершение операции в группе соцсети, осуществляя вызов функции CSocNetFeaturesPerms::CurrentUserCanPerformOperation()\r\n // },\r\n /**\r\n * Возвращает массив групп соцсети, каждая из которых содержит массив полей, осуществляя вызов CSocNetGroup::GetList(), при этом возвращаются только те группы, которые доступны пользователю по правам\r\n */\r\n get: [$sonet_group, $get],\r\n // /**\r\n // * Изменяет владельца группы\r\n // */\r\n // setOwner: [$sonet_group, 'setowner'],\r\n // /**\r\n // * Изменяет параметры группы соцсети, используя метод API CSocNetGroup::Update()\r\n // */\r\n // update: [$sonet_group, $update],\r\n // user: {\r\n // add: [$sonet_group, $user, $add], // sonet_group.user.add\tДобавляет пользователей в качестве участников рабочей группы (без приглашения и подтверждения)\r\n // delete: [$sonet_group, $user, $delete], //\tУдаляет пользователей из рабочей группы\r\n // get: [$sonet_group, $user, $get], // Возвращает массив участников группы соцсети, осуществляя вызов CSocNetUserToGroup::GetList(), при этом проверяются права на доступ текущего пользователя к группе\r\n // groups: [$sonet_group, $user, 'groups'], // Возвращает массив групп соцсети текущего пользователя, осуществляя вызов CSocNetUserToGroup::GetList()\r\n // invite: [$sonet_group, $user, 'invite'], // Выполняет приглашение пользователей в группу соцсети от лица текущего пользователя, при этом проверяются права на доступ текущего пользователя к группе\r\n // request: [$sonet_group, $user, $request], // Отправляет запрос текущего пользователя на вступление в группу соцсети, при этом проверяются права на доступ текущего пользователя к группе.\r\n // update: [$sonet_group, $user, $update], // Изменяет роль пользователей в рабочей группе События при работе с группами СоцСети\tСписок событий при добавлении, изменении и удалении группы.\r\n // },\r\n // workgroup: {\r\n // list: [$socialnetwork, $api, $workgroup, $list], // Метод возвращает список групп,\r\n // get: [$socialnetwork, $api, $workgroup, $get] // Метод возвращает данные по рабочей группе\r\n // }\r\n }\r\n\r\n private readonly Navvy = new Navvy()\r\n\r\n get(param: iBXRestParamSonetGroupGet = {}) {\r\n return this.Navvy.simple(\r\n this.url.get,\r\n param,\r\n BXRestMapSonetGroup.get\r\n )\r\n }\r\n}\r\n\r\n\r\n","import { toDate } from '../services/base'\r\n\r\nexport class BXRestMapServer {\r\n static time(v: string | undefined) {\r\n return (v) ? toDate(v) : undefined\r\n }\r\n}\r\n","import { Navvy } from '../services/navvy'\r\nimport { BXRestMapServer } from '../map/server'\r\nimport { $server, $time } from '../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyServer {\r\n\r\n url = {\r\n time: [$server, $time]\r\n }\r\n\r\n private readonly Navvy = new Navvy()\r\n\r\n time() {\r\n return this.Navvy.simple<string, Date, undefined>(\r\n this.url.time,\r\n undefined,\r\n BXRestMapServer.time\r\n )\r\n }\r\n}\r\n","import { iBXRestDepartmentHttp, iBXRestDepartment } from '../typification/rest/department/department'\r\n\r\nexport class BXRestMapDepartment {\r\n static get(item: iBXRestDepartmentHttp[] | undefined): iBXRestDepartment[] | undefined {\r\n return (item) ? item.map(dep => {\r\n if (dep.PARENT) {\r\n return {\r\n ID: Number(dep.ID),\r\n UF_HEAD: Number(dep.UF_HEAD),\r\n PARENT: Number(dep.PARENT),\r\n NAME: dep.NAME,\r\n SORT: dep.SORT,\r\n }\r\n } else {\r\n return {\r\n ID: Number(dep.ID),\r\n UF_HEAD: Number(dep.UF_HEAD),\r\n NAME: dep.NAME,\r\n SORT: dep.SORT,\r\n }\r\n }\r\n }) : undefined\r\n }\r\n}\r\n","import {\n iBXRestParamDepartmentGet,\n iBXRestParamDepartmentAdd,\n iBXRestDepartmentUpdate,\n iBXRestParamDepartmentDel\n} from '../typification/rest/department'\nimport { Navvy } from '../services/navvy'\r\nimport { BXRestMapDepartment } from '../map/department'\r\nimport { $add, $delete, $department, $get, $update } from '../consts/part-name-methods'\r\n\r\nexport class BXRestNavvyDepartment {\r\n\r\n url = {\r\n get: [$department, $get],\r\n del: [$department, $delete],\r\n add: [$department, $add],\r\n update: [$department, $update]\r\n }\r\n protected Navvy = new Navvy()\r\n\r\n get(param: iBXRestParamDepartmentGet = {}) {\r\n return this.Navvy.pagNav(\r\n this.url.get,\r\n param,\r\n BXRestMapDepartment.get)\r\n }\r\n\r\n add(param: iBXRestParamDepartmentAdd) {\n return this.Navvy.simple<number, number, iBXRestParamDepartmentAdd>(this.url.add, param)\n }\n\n del(id: number) {\n return this.Navvy.simple<boolean, boolean, iBXRestParamDepartmentDel>(this.url.del, {ID: id})\n }\n\r\n update(param: iBXRestDepartmentUpdate) {\r\n param.NAME = param.NAME.trim()\r\n return this.Navvy.simple<boolean, boolean, iBXRestDepartmentUpdate>(this.url.update, param)\n }\n}\n","import { Navvy } from '../../../services/navvy'\r\nimport { $add, $chat, $delete, $im, $list, $user } from '../../../consts/part-name-methods'\r\nimport {\r\n iBXRestImChatUserListParam,\r\n iBXRestImChatUserDeleteParam, iBXRestImChatUserAddParam\r\n} from '../../../typification/rest/im'\r\n\r\nexport class BXRestNavvyImChatUser {\r\n private Navvy = new Navvy()\r\n\r\n url = {\r\n add: [$im, $chat, $user, $add],\r\n list: [$im, $chat, $user, $list],\r\n delete: [$im, $chat, $user, $delete],\r\n }\r\n\r\n list(param: iBXRestImChatUserListParam) {\r\n return this.Navvy.simple<number[], number[], iBXRestImChatUserListParam>(this.url.list, param)\r\n }\r\n\r\n delete(param: iBXRestImChatUserDeleteParam) {\r\n return this.Navvy.simple<number, number, iBXRestImChatUserDeleteParam>(this.url.delete, param)\r\n }\r\n\r\n /**\r\n * Приглаcить участников в чат\r\n */\r\n add(param: iBXRestImChatUserAddParam) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestImChatUserAddParam>(this.url.add, param)\r\n }\r\n}","import { Navvy } from '../../services/navvy'\r\nimport {\r\n $add,\r\n $chat,\r\n $get,\r\n $im,\r\n $leave,\r\n $mute,\r\n $setOwner,\r\n $updateAvatar, $updateColor,\r\n $updateTitle\r\n} from '../../consts/part-name-methods'\r\nimport { iBXRestImChatGetParam,\r\n iBXRestImChatSetOwnerParam,\r\n iBXRestImChatUpdateAvatarParam,\r\n iBXRestImChatUpdateTitleParam,\r\n iBXRestImChatLeaveParam,\r\n iBXRestImChatMuteParam,\r\n iBXRestImChatUpdateColor,\r\n iBXRestImChatAddParam\r\n} from '../../typification/rest/im'\r\nimport { BXRestNavvyImChatUser } from './chat/user'\r\n\r\nexport class BXRestNavvyImChat {\r\n\r\n url = {\r\n add: [$im, $chat, $add],\r\n get: [$im, $chat, $get],\r\n setOwner: [$im, $chat, $setOwner],\r\n updateAvatar: [$im, $chat, $updateAvatar],\r\n updateColor: [$im, $chat, $updateColor],\r\n updateTitle: [$im, $chat, $updateTitle],\r\n leave: [$im, $chat, $leave],\r\n mute: [$im, $chat, $mute],\r\n }\r\n\r\n private Navvy = new Navvy()\r\n public readonly user = new BXRestNavvyImChatUser()\r\n\r\n /**\r\n * Создать чат\r\n *\r\n * @param param\r\n */\r\n add(param: iBXRestImChatAddParam){\r\n return this.Navvy.simple<number, number, iBXRestImChatAddParam>(this.url.add, param)\r\n }\r\n\r\n /**\r\n * Получить идентификатор чата\r\n *\r\n * @param param\r\n */\r\n get(param: iBXRestImChatGetParam){\r\n return this.Navvy.simple<number, number, iBXRestImChatGetParam>(this.url.get, param)\r\n }\r\n\r\n /**\r\n * Сменить владельца чата\r\n *\r\n * @param param\r\n */\r\n setOwner(param: iBXRestImChatSetOwnerParam){\r\n return this.Navvy.simple<boolean, boolean, iBXRestImChatSetOwnerParam>(this.url.setOwner, param)\r\n }\r\n\r\n /**\r\n * Изменить аватарку чата\r\n *\r\n * @param param\r\n */\r\n updateAvatar(param: iBXRestImChatUpdateAvatarParam){\r\n return this.Navvy.simple<boolean, boolean, iBXRestImChatUpdateAvatarParam>(this.url.updateAvatar, param)\r\n }\r\n\r\n /**\r\n * Изменить заголовок чата\r\n *\r\n * @param param\r\n */\r\n updateTitle(param: iBXRestImChatUpdateTitleParam){\r\n return this.Navvy.simple<boolean, boolean, iBXRestImChatUpdateTitleParam>(this.url.updateTitle, param)\r\n }\r\n\r\n /**\r\n * Покинуть чат\r\n *\r\n * @param param\r\n */\r\n leave(param: iBXRestImChatLeaveParam){\r\n return this.Navvy.simple<boolean, boolean, iBXRestImChatLeaveParam>(this.url.leave, param)\r\n }\r\n\r\n /**\r\n * Отключить уведомления от чата\r\n *\r\n * @param param\r\n */\r\n mute(param: iBXRestImChatMuteParam){\r\n return this.Navvy.simple<boolean, boolean, iBXRestImChatMuteParam>(this.url.mute, param)\r\n }\r\n\r\n /**\r\n * Изменить цвет чата\r\n *\r\n * @param param\r\n */\r\n updateColor(param: iBXRestImChatUpdateColor){\r\n return this.Navvy.simple<boolean, boolean, iBXRestImChatUpdateColor>(this.url.updateColor, param)\r\n }\r\n}\r\n","import { $counters, $get, $im } from '../../consts/part-name-methods'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { iBXRestImCounters } from '../../typification/rest/im'\r\n\r\nexport class BXRestNavvyImCounters {\r\n\r\n private Navvy = new Navvy()\r\n\r\n get(){\r\n return this.Navvy.simple<iBXRestImCounters>([$im, $counters, $get])\r\n }\r\n}","import { toDate } from '../../../services/base'\r\nimport { iBXRestImDialogUserGet, iBXRestImDialogUserGetHttp } from '../../../typification/rest/im/dialog/user/get'\r\n\r\nexport class BXRestMapImDialogUsers {\r\n\r\n static list(value: iBXRestImDialogUserGetHttp | undefined): iBXRestImDialogUserGet | undefined {\r\n return (value)\r\n ? {\r\n ...value,\r\n ...{\r\n last_activity_date: toDate(value.last_activity_date),\r\n mobile_last_date: value.mobile_last_date ? toDate(value.mobile_last_date) : false,\r\n }\r\n }\r\n : undefined\r\n }\r\n}","import { $dialog, $im, $list, $users } from '../../../consts/part-name-methods'\r\nimport { Navvy } from '../../../services/navvy'\r\nimport {\r\n iBXRestImDialogUserGet,\r\n iBXRestImDialogUserGetHttp,\r\n iBXRestImDialogUserGetParam\r\n} from '../../../typification/rest/im'\r\nimport { BXRestMapImDialogUsers } from '../../../map/im/gialog/users'\r\n\r\nexport class BXRestNavvyImDialogUsers {\r\n\r\n private Navvy = new Navvy()\r\n\r\n list(param: iBXRestImDialogUserGetParam) {\r\n return this.Navvy.simple<iBXRestImDialogUserGetHttp, iBXRestImDialogUserGet, iBXRestImDialogUserGetParam>(\r\n [$im, $dialog, $users, $list],\r\n param,\r\n BXRestMapImDialogUsers.list\r\n )\r\n }\r\n}","import { iBXRestImDialogGet, iBXRestImDialogGetHttp } from '../../typification/rest/im/dialog/get'\r\nimport { toDate, toNum } from '../../services/base'\r\n\r\n\r\nexport class BXRestMapImDialog {\r\n static get(value: iBXRestImDialogGetHttp | undefined): iBXRestImDialogGet | undefined {\r\n return (value)\r\n ? {\r\n ...value,\r\n ...{\r\n id: toNum(value.id),\r\n owner: toNum(value.owner),\r\n date_create: toDate(value.date_create),\r\n }\r\n }\r\n : undefined\r\n }\r\n}","import {\r\n iBXRestImDialogMessagesGet,\r\n iBXRestImDialogMessagesGetHttp\r\n} from '../../../typification/rest/im/dialog/messages/get'\r\nimport { toDate } from '../../../services/base'\r\n\r\nexport class BXRestMapImDialogMessages {\r\n static get(value: iBXRestImDialogMessagesGetHttp | undefined): iBXRestImDialogMessagesGet | undefined {\r\n return (value)\r\n ? {\r\n ...value,\r\n ...{\r\n messages: value.messages.map(\r\n mes => (\r\n {\r\n ...mes,\r\n ...{\r\n date: toDate(mes.date),\r\n params: (mes.params)\r\n ? {\r\n ...mes,\r\n ...{\r\n URL_ONLY: mes.params.URL_ONLY === 'Y',\r\n IS_EDITED: mes.params.IS_DELETED === 'Y',\r\n IS_DELETED: mes.params.IS_DELETED === 'Y',\r\n }\r\n }\r\n : null\r\n }\r\n }\r\n )\r\n )\r\n }\r\n }\r\n : undefined\r\n }\r\n}","import { $dialog, $get, $im, $messages } from '../../../consts/part-name-methods'\r\nimport { Navvy } from '../../../services/navvy'\r\nimport {\r\n iBXRestImDialogMessagesGet, iBXRestImDialogMessagesGetHttp,\r\n iBXRestImDialogMessagesGetParam\r\n} from '../../../typification/rest/im'\r\nimport { BXRestMapImDialogMessages } from '../../../map/im/gialog/messages'\r\n\r\nexport class BXRestNavvyImDialogMessages {\r\n\r\n private Navvy = new Navvy()\r\n\r\n get(param: iBXRestImDialogMessagesGetParam) {\r\n return this.Navvy.simple<iBXRestImDialogMessagesGetHttp, iBXRestImDialogMessagesGet, iBXRestImDialogMessagesGetParam>(\r\n [$im, $dialog, $messages, $get],\r\n param,\r\n BXRestMapImDialogMessages.get\r\n )\r\n }\r\n}","import { $all, $dialog, $im, $read } from '../../../consts/part-name-methods'\r\nimport { Navvy } from '../../../services/navvy'\r\nimport { iBXRestImDialogRead, iBXRestImDialogReadParam } from '../../../typification/rest/im'\r\n\r\n\r\nexport function BXRestNavvyImDialogRead(navvy: Navvy) {\r\n const readFunc = (param: iBXRestImDialogReadParam) => {\r\n\r\n /**\r\n * Установить признак «прочитано» у сообщений\r\n *\r\n * @param param\r\n */\r\n return navvy.simple<iBXRestImDialogRead, iBXRestImDialogRead, iBXRestImDialogReadParam>(\r\n [$im, $dialog, $read],\r\n param\r\n )\r\n }\r\n\r\n /**\r\n * Установить признак «прочитано» у всех чатов\r\n */\r\n readFunc.all = () => {\r\n return navvy.simple<boolean, boolean>(\r\n [$im, $dialog, $read, $all]\r\n )\r\n }\r\n\r\n return readFunc\r\n}","import { $dialog, $get, $im, $unread, $writing } from '../../consts/part-name-methods'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { BXRestNavvyImDialogUsers } from './dialog/users'\r\nimport {\r\n iBXRestImDialogGet,\r\n iBXRestImDialogGetHttp,\r\n iBXRestImDialogGetParam,\r\n iBXRestImDialogUnReadParam,\r\n iBXRestImDialogWritingParam\r\n} from '../../typification/rest/im'\r\nimport { BXRestMapImDialog } from '../../map/im/dialog'\r\nimport { BXRestNavvyImDialogMessages } from './dialog/messages'\r\nimport { BXRestNavvyImDialogRead } from './dialog/read'\r\n\r\nexport class BXRestNavvyImDialog {\r\n\r\n private Navvy = new Navvy()\r\n\r\n public readonly users = new BXRestNavvyImDialogUsers()\r\n public readonly messages = new BXRestNavvyImDialogMessages()\r\n public readonly read = BXRestNavvyImDialogRead(this.Navvy)\r\n\r\n /**\r\n * Получить данные о чате\r\n *\r\n * @param param\r\n */\r\n get(param: iBXRestImDialogGetParam) {\r\n return this.Navvy.simple<iBXRestImDialogGetHttp, iBXRestImDialogGet, iBXRestImDialogGetParam>(\r\n [$im, $dialog, $get],\r\n param,\r\n BXRestMapImDialog.get\r\n )\r\n }\r\n\r\n /**\r\n * Установить признак «прочитано» у сообщений\r\n *\r\n * @param param\r\n */\r\n unread(param: iBXRestImDialogUnReadParam) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestImDialogUnReadParam>(\r\n [$im, $dialog, $unread],\r\n param,\r\n )\r\n }\r\n\r\n /**\r\n * Отправить признак «вам пишут...»\r\n *\r\n * @param param\r\n */\r\n writing(param: iBXRestImDialogWritingParam) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestImDialogWritingParam>(\r\n [$im, $dialog, $writing],\r\n param,\r\n )\r\n }\r\n}","export function CatchError(options?: { rethrow?: boolean; defaultValue?: any }) {\r\n return function (\r\n target: any,\r\n propertyKey: string,\r\n descriptor: PropertyDescriptor\r\n ) {\r\n const original = descriptor.value\r\n\r\n descriptor.value = function (...args: any[]) {\r\n try {\r\n return original.apply(this, args)\r\n } catch (err) {\r\n const errorInfo = {\r\n message: `❌ Error in ${target.constructor.name}.${propertyKey}`,\r\n args,\r\n error: err instanceof Error ? err.message : String(err),\r\n stack: err instanceof Error ? err.stack : new Error().stack,\r\n }\r\n\r\n console.error(formatError(errorInfo))\r\n\r\n if (options?.rethrow) throw err\r\n return options?.defaultValue\r\n }\r\n }\r\n\r\n return descriptor\r\n }\r\n}\r\n\r\n// Общая функция форматирования\r\nexport function formatError(info: { message: string; args?: any[]; error?: string; stack?: string }): string {\r\n const stackLines = info.stack?.split('\\n').slice(2).join('\\n')\r\n return [\r\n info.message,\r\n info.args ? ` • args: ${JSON.stringify(info.args)}` : '',\r\n info.error ? ` • error: ${info.error}` : '',\r\n ` • stack trace:\\n${stackLines}`,\r\n ].join('\\n')\r\n}\r\n","import {\r\n iBXRestImDialogRecentGet, iBXRestImDialogRecentGetChatChatDataHttp, iBXRestImDialogRecentGetChatUserDataBase,\r\n iBXRestImDialogRecentGetHttp,\r\n} from '../../typification/rest/im/dialog/recent/get'\r\nimport { toDate, toNum } from '../../services/base'\r\nimport {\r\n iBXRestImDialogRecentList,\r\n iBXRestImDialogRecentListHttp\r\n} from '../../typification/rest/im/dialog/recent/list'\r\nimport { CatchError } from '../../functions/errorHandler'\r\n\r\nexport class BXRestMapImRecent {\r\n\r\n @CatchError({ rethrow: true })\r\n static get(value: iBXRestImDialogRecentGetHttp[] | undefined): iBXRestImDialogRecentGet[] | undefined {\r\n\r\n return value\r\n ? value.map(i => ({\r\n ...i,\r\n ...{\r\n date_update: toDate(i.date_update),\r\n counter: toNum(i.counter),\r\n user: BXRestMapImRecent.mapUser(i.user),\r\n chat: BXRestMapImRecent.mapChat(i.chat),\r\n }\r\n }))\r\n : undefined\r\n\r\n }\r\n\r\n @CatchError({ rethrow: true })\r\n static list(value: iBXRestImDialogRecentListHttp | undefined): iBXRestImDialogRecentList | undefined {\r\n return (value)\r\n ? {\r\n ...value, ...{\r\n items: value.items.map(i => ({\r\n ...i, ...{\r\n id: toNum(i.id),\r\n date_update: toDate(i.date_update),\r\n lines: (i.lines) ? {...i.lines, ...{date_create: toDate(i.lines.date_create)}} : undefined,\r\n message: {...i.message, ...{date: toDate(i.message.date)}},\r\n chat: (i.chat) ? {...i.chat, ...{date_create: toDate(i.chat.date_create)}} : undefined,\r\n user: (i.user)\r\n ? {\r\n ...i.user,\r\n ...{\r\n birthday: (i.user.birthday) ? toDate(i.user.birthday) : false,\r\n last_activity_date: (i.user.last_activity_date) ? toDate(i.user.last_activity_date) : undefined,\r\n mobile_last_date: (i.user.mobile_last_date) ? toDate(i.user.mobile_last_date) : false,\r\n }\r\n }\r\n : undefined,\r\n }\r\n }))\r\n }\r\n }\r\n : undefined\r\n }\r\n\r\n static isIBXRestImDialogRecentGetChatChatDataHttp(item: iBXRestImDialogRecentGetChatChatDataHttp | iBXRestImDialogRecentGetChatUserDataBase): item is iBXRestImDialogRecentGetChatChatDataHttp {\r\n return 'id' in item\r\n }\r\n\r\n private static mapUser(user: iBXRestImDialogRecentGetHttp['user']): iBXRestImDialogRecentGet['user'] {\r\n if (!user || !user.id) {\r\n return undefined\r\n }\r\n\r\n return {\r\n ...user,\r\n id: toNum(user.id),\r\n last_activity_date: user.last_activity_date ? toDate(user.last_activity_date) : false,\r\n mobile_last_date: user.mobile_last_date ? toDate(user.mobile_last_date) : false,\r\n absent: user.absent ? toDate(user.absent) : false,\r\n }\r\n }\r\n\r\n private static mapChat(chat: iBXRestImDialogRecentGetHttp['chat']): iBXRestImDialogRecentGet['chat'] {\r\n if (!chat) {\r\n return undefined\r\n }\r\n\r\n if (BXRestMapImRecent.isIBXRestImDialogRecentGetChatChatDataHttp(chat)) {\r\n return {\r\n ...chat,\r\n id: toNum(chat.id),\r\n date_create: toDate(chat.date_create)\r\n }\r\n }\r\n\r\n return chat\r\n }\r\n}\r\n","import { Navvy } from '../../services/navvy'\r\nimport { $get, $hide, $im, $list, $pin, $recent, $unread } from '../../consts/part-name-methods'\r\nimport {\r\n iBXRestImDialogRecentGet,\r\n iBXRestImDialogRecentGetHttp,\r\n iBXRestImDialogRecentGetParam,\r\n iBXRestImDialogRecentUnreadParam,\r\n iBXRestImDialogRecentList, iBXRestImDialogRecentListHttp,\r\n iBXRestImDialogRecentListParam\r\n} from '../../typification/rest/im'\r\nimport { BXRestMapImRecent } from '../../map/im/recent'\r\n\r\nexport class BXRestNavvyImRecent {\r\n\r\n private Navvy = new Navvy()\r\n\r\n url = {\r\n get: [$im, $recent, $get],\r\n list: [$im, $recent, $list],\r\n hide: [$im, $recent, $hide],\r\n pin: [$im, $recent, $pin],\r\n unread: [$im, $recent, $unread],\r\n }\r\n\r\n /**\r\n * Получить сокращенный список последних чатов\r\n */\r\n get(param: iBXRestImDialogRecentGetParam) {\r\n return this.Navvy.simple<iBXRestImDialogRecentGetHttp[], iBXRestImDialogRecentGet[], iBXRestImDialogRecentGetParam>\r\n (\r\n this.url.get,\r\n param,\r\n BXRestMapImRecent.get\r\n )\r\n }\r\n\r\n /**\r\n * Получить список чатов\r\n */\r\n list(param: iBXRestImDialogRecentListParam) {\r\n return this.Navvy.simple<iBXRestImDialogRecentListHttp, iBXRestImDialogRecentList, iBXRestImDialogRecentListParam>(\r\n this.url.list,\r\n param,\r\n BXRestMapImRecent.list\r\n )\r\n }\r\n\r\n /**\r\n * Удалить чат из списка последних\r\n */\r\n hide(param: iBXRestImDialogRecentUnreadParam) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestImDialogRecentUnreadParam>(this.url.unread, param)\r\n }\r\n\r\n /**\r\n * Закрепить чат вверху списка\r\n */\r\n pin(param: iBXRestImDialogRecentUnreadParam) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestImDialogRecentUnreadParam>(this.url.pin, param)\r\n }\r\n\r\n /**\r\n * Установить или снять признак «прочитано» у чата\r\n */\r\n unread(param: iBXRestImDialogRecentUnreadParam) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestImDialogRecentUnreadParam>(this.url.unread, param)\r\n }\r\n}","import { iBXRestImUserGet, iBXRestImUserGetHttp } from '../../typification/rest/im/user/get'\r\nimport { toDate } from '../../services/base'\r\n\r\nexport class BXRestMapImUser {\r\n\r\n static get(value: iBXRestImUserGetHttp | undefined): iBXRestImUserGet | undefined {\r\n return (value)\r\n ? {\r\n ...value,\r\n ...{\r\n last_activity_date: toDate(value.last_activity_date),\r\n mobile_last_date: value.mobile_last_date ? toDate(value.mobile_last_date) : false,\r\n desktop_last_date: value.desktop_last_date ? toDate(value.desktop_last_date) : false,\r\n }\r\n }\r\n : undefined\r\n }\r\n}\r\n","import { Navvy } from '../../../../services/navvy'\r\nimport { $end, $idle, $im, $start, $status, $user } from '../../../../consts/part-name-methods'\r\nimport { iBXRestImUserStatusIdleStartParam } from '../../../../typification/rest/im'\r\n\r\nexport class BXRestNavvyImUserStatusIdle {\r\n private Navvy = new Navvy()\r\n\r\n start(param: iBXRestImUserStatusIdleStartParam){\r\n return this.Navvy.simple<boolean, boolean, iBXRestImUserStatusIdleStartParam>(\r\n [$im, $user, $status, $idle, $start],\r\n param\r\n )\r\n }\r\n\r\n end() {\r\n return this.Navvy.simple<boolean, boolean>([$im, $user, $status, $idle, $end])\r\n }\r\n}","import { Navvy } from '../../../services/navvy'\r\nimport { iBXRestImUserStatusGet, iBXRestImUserStatusSet } from '../../../typification/rest/im'\r\nimport { $get, $im, $set, $status, $user } from '../../../consts/part-name-methods'\r\nimport { BXRestNavvyImUserStatusIdle } from './status/idle'\r\n\r\nexport class BXRestNavvyImUserStatus {\r\n private Navvy = new Navvy()\r\n\r\n public readonly idle = new BXRestNavvyImUserStatusIdle()\r\n\r\n /**\r\n * Получить информацию об установленном статусе пользователя\r\n */\r\n get(){\r\n return this.Navvy.simple<iBXRestImUserStatusGet>([$im, $user, $status, $get])\r\n }\r\n\r\n /**\r\n * Установить статус пользователя\r\n */\r\n set(param: iBXRestImUserStatusSet) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestImUserStatusSet>([$im, $user, $status, $set], param)\r\n }\r\n\r\n}","import { iBXRestImUserGet, iBXRestImUserGetHttp } from '../../../typification/rest/im/user/get'\r\nimport { BXRestMapImUser } from '../user'\r\n\r\nexport class BXRestMapImUserList {\r\n /** Получить данные о пользователях */\r\n static get(value: (iBXRestImUserGetHttp | null)[] | undefined): (iBXRestImUserGet | undefined)[] | undefined {\r\n return value ?\r\n value.map(i =>\r\n (i) ? BXRestMapImUser.get(i) : undefined\r\n )\r\n : undefined\r\n }\r\n}","import { Navvy } from '../../../services/navvy'\r\nimport { iBXRestImUserListGetParam, iBXRestImUserGet, iBXRestImUserGetHttp } from '../../../typification/rest/im'\r\nimport { $get, $im, $list, $user } from '../../../consts/part-name-methods'\r\nimport { BXRestMapImUserList } from '../../../map/im/user/list'\r\n\r\nexport class BXRestNavvyImUserList {\r\n private Navvy = new Navvy()\r\n\r\n /** Получить данные о пользователях */\r\n get(param: iBXRestImUserListGetParam) {\r\n return this.Navvy.simple<(iBXRestImUserGetHttp | null)[], (iBXRestImUserGet | undefined)[], iBXRestImUserListGetParam>(\r\n [$im, $user, $list, $get],\r\n param,\r\n BXRestMapImUserList.get\r\n )\r\n }\r\n}","import { Navvy } from '../../services/navvy'\r\nimport { $dialog, $get, $im } from '../../consts/part-name-methods'\r\nimport { iBXRestImUserGet, iBXRestImUserGetHttp, iBXRestImUserGetParam } from '../../typification/rest/im'\r\nimport { BXRestMapImUser } from '../../map/im/user'\r\nimport { BXRestNavvyImUserStatus } from './user/status'\r\nimport { BXRestNavvyImUserList } from './user/list'\r\n\r\nexport class BXRestNavvyImUser {\r\n private Navvy = new Navvy()\r\n\r\n public readonly list = new BXRestNavvyImUserList()\r\n public readonly status = new BXRestNavvyImUserStatus()\r\n /**\r\n * Получить данные о пользователе\r\n *\r\n * @param param\r\n */\r\n get(param: iBXRestImUserGetParam) {\r\n return this.Navvy.simple<iBXRestImUserGetHttp, iBXRestImUserGet, iBXRestImUserGetParam>(\r\n [$im, $dialog, $get],\r\n param,\r\n BXRestMapImUser.get\r\n )\r\n }\r\n}","import { BXRestNavvyImChat } from './im/chat'\r\nimport { BXRestNavvyImCounters } from './im/counters'\r\nimport { BXRestNavvyImDialog } from './im/dialog'\r\nimport { BXRestNavvyImRecent } from './im/recent'\r\nimport { BXRestNavvyImUser } from './im/user'\r\n\r\nexport class BXRestNavvyIm {\r\n public readonly chat = new BXRestNavvyImChat()\r\n public readonly counters = new BXRestNavvyImCounters()\r\n public readonly dialog = new BXRestNavvyImDialog()\r\n public readonly recent = new BXRestNavvyImRecent()\r\n public readonly user = new BXRestNavvyImUser()\r\n}\r\n","import { iBXRestAppInfo, iBXRestAppInfoHttp } from '../typification/rest/app/info'\r\nimport { toNum } from '../services/base'\r\n\r\nexport class BXRestMapApp {\r\n static info(value: iBXRestAppInfoHttp | undefined): iBXRestAppInfo | undefined {\r\n return (value)\r\n ? {... value, ... {ID: toNum(value.ID), PAYMENT_EXPIRED: value.PAYMENT_EXPIRED === 'Y'}}\r\n : undefined\r\n }\r\n}\r\n","import { Navvy } from '../services/navvy'\r\nimport { BXRestMapApp } from '../map/app'\nimport { iBXRestAppInfo, iBXRestAppInfoHttp } from '../typification/rest/app'\n\r\nexport class BXRestNavvyApp {\r\n\r\n private readonly Navvy = new Navvy()\r\n\r\n /**\r\n * Показ информации о приложении. Метод поддерживает безопасный вызов\r\n */\r\n info(){\n return this.Navvy.simple<iBXRestAppInfoHttp, iBXRestAppInfo>(\n ['app', 'info'],\n undefined,\n BXRestMapApp.info\n )\n }\n}\n","import { iBXRestTimeManStatus, iBXRestTimeManStatusHttp } from '../typification/rest/timeman/status'\r\n\r\nexport class BXRestMapTimeMan {\r\n static status(status: iBXRestTimeManStatusHttp | undefined): iBXRestTimeManStatus | undefined {\r\n if (status) {\r\n const duration = status.DURATION.split(':')\r\n const time_leaks = status.TIME_LEAKS.split(':')\r\n let res: iBXRestTimeManStatus= {\r\n STATUS: status.STATUS,\r\n TIME_START: (status.TIME_START) ? new Date(status.TIME_START) : undefined,\r\n TIME_FINISH: (status.TIME_FINISH) ? new Date(status.TIME_FINISH) : undefined,\r\n DURATION: (duration.length && duration.length == 3)\r\n ? Number(duration[0]) * 60 * 60 + Number(duration[1]) * 60 + Number(duration[2]) : 0,\r\n TIME_LEAKS: (time_leaks.length && time_leaks.length == 3)\r\n ? Number(time_leaks[0]) * 60 * 60 + Number(time_leaks[1]) * 60 + Number(time_leaks[2]) : 0,\r\n ACTIVE: status.ACTIVE,\r\n IP_OPEN: status.IP_CLOSE,\r\n IP_CLOSE: status.IP_CLOSE,\r\n LAT_OPEN: status.LAT_OPEN,\r\n LON_OPEN: status.LON_OPEN,\r\n LAT_CLOSE: status.LAT_CLOSE,\r\n LON_CLOSE: status.LON_CLOSE,\r\n TZ_OFFSET: status.TZ_OFFSET\r\n }\r\n if(status.TIME_FINISH_DEFAULT) {\r\n res.TIME_FINISH_DEFAULT = (status.TIME_FINISH_DEFAULT) ? new Date(status.TIME_FINISH_DEFAULT) : undefined\r\n }\r\n return res\r\n }\r\n\r\n return undefined\r\n }\r\n}","export function toLocalAtom(date: Date): string {\r\n const pad = (n: number): string => String(n).padStart(2, '0');\r\n\r\n const tzOffset = -date.getTimezoneOffset(); // минуты\r\n const sign = tzOffset >= 0 ? '+' : '-';\r\n const hh = pad(Math.floor(Math.abs(tzOffset) / 60));\r\n const mm = pad(Math.abs(tzOffset) % 60);\r\n\r\n return (\r\n `${date.getFullYear()}-${pad(date.getMonth() + 1)}-${pad(date.getDate())}` +\r\n `T${pad(date.getHours())}:${pad(date.getMinutes())}:${pad(date.getSeconds())}` +\r\n `${sign}${hh}:${mm}`\r\n );\r\n}\r\n\r\n","import {\r\n iBXRestParamTimeManClose,\r\n iBXRestParamTimeManOpen,\r\n iBXRestParamTimeManPause,\r\n iBXRestParamTimeManSettings,\r\n iBXRestParamTimeManStatus,\r\n iBXRestTimeManSettings,\r\n iBXRestTimeManStatus,\r\n iBXRestTimeManStatusHttp\r\n} from '../typification/rest/timeman'\r\nimport { Navvy } from '../services/navvy'\r\nimport { BXRestMapTimeMan } from '../map/timeman'\r\nimport { $pause, $settings, $status, $timeMan } from '../consts/part-name-methods'\r\nimport { toLocalAtom } from '../functions/toLocalAtom'\r\n\r\nexport class BXRestNavvyTimeMan {\r\n protected readonly url = {\r\n /**\r\n * Получение настроек рабочего времени пользователя\r\n */\r\n settings: [$timeMan, $settings],\r\n /**\r\n * Получение информации о текущем рабочем дне пользователя\r\n */\r\n status: [$timeMan, $status],\r\n /**\r\n * Начать новый рабочий день либо возобновить закрытый или приостановленный\r\n */\r\n open: [$timeMan, 'open'],\r\n /**\r\n * Закрыть рабочий день\r\n */\r\n close: [$timeMan, 'close'],\r\n /**\r\n * Приостановить рабочий день\r\n */\r\n pause: [$timeMan, $pause],\r\n }\r\n\r\n protected Navvy = new Navvy()\r\n\r\n status(param: iBXRestParamTimeManStatus | undefined = undefined){\r\n return this.Navvy.simple(\r\n this.url.status,\r\n param,\r\n BXRestMapTimeMan.status\r\n )\r\n }\r\n\r\n open(param: iBXRestParamTimeManOpen = {}) {\r\n if(param && param.TIME instanceof Date){\r\n param.TIME = toLocalAtom(param.TIME)\r\n }\r\n return this.Navvy.simple<iBXRestTimeManStatusHttp, iBXRestTimeManStatus, iBXRestParamTimeManOpen>(\r\n this.url.open,\r\n param,\r\n BXRestMapTimeMan.status\r\n )\r\n }\r\n\r\n pause(param: iBXRestParamTimeManPause = {}) {\r\n return this.Navvy.simple<iBXRestTimeManStatusHttp, iBXRestTimeManStatus, iBXRestParamTimeManPause>(\r\n this.url.pause,\r\n param,\r\n BXRestMapTimeMan.status\r\n )\r\n }\r\n\r\n close(param: iBXRestParamTimeManClose = {}) {\r\n if(param && param.TIME instanceof Date){\r\n param.TIME = toLocalAtom(param.TIME)\r\n }\r\n return this.Navvy.simple<iBXRestTimeManStatusHttp, iBXRestTimeManStatus, iBXRestParamTimeManClose>(\r\n this.url.close,\r\n param,\r\n BXRestMapTimeMan.status\r\n )\r\n }\r\n\r\n settings(param: iBXRestParamTimeManSettings = {}) {\r\n return this.Navvy.simple<iBXRestTimeManSettings, iBXRestTimeManSettings, iBXRestParamTimeManSettings>(\r\n this.url.settings,\r\n param\r\n )\r\n }\r\n}","import {\n iBXRestParamSocialNetWorkApiContentViewSet,\n iBXRestSocialNetWorkApiContentViewSet\n} from '../../../typification/rest/socialnetwork'\n\nimport { Navvy } from '../../../services/navvy'\nimport { $api, $set, $socialnetwork } from '../../../consts/part-name-methods'\n\r\nexport class BXRestNavvySocialNetWorkApiContentView {\r\n\r\n private readonly Navvy = new Navvy()\r\n\n set(param: iBXRestParamSocialNetWorkApiContentViewSet){\n return this.Navvy.simple<\n iBXRestSocialNetWorkApiContentViewSet,\n iBXRestSocialNetWorkApiContentViewSet,\n iBXRestParamSocialNetWorkApiContentViewSet\n >([$socialnetwork, $api, 'contentView', $set], param)\n }\n}\n","import {\r\n iBXRestSocialNetWorkApiBlogpostImportantVote,\r\n iBXRestSocialNetWorkApiBlogpostImportantVoteHttp\r\n} from '../../../../../typification/rest/socialnetwork/api/livefeed/blogpost/important/vote'\r\nimport { toBool } from '../../../../../services/base'\r\n\r\nexport class BXRestNavvyMapSocialNetWorkApiLiveFeedBlogPostImportant {\r\n\r\n static vote(item: iBXRestSocialNetWorkApiBlogpostImportantVoteHttp | undefined): iBXRestSocialNetWorkApiBlogpostImportantVote | undefined {\r\n return (item) ? {\r\n success: toBool(item.success)\r\n } : undefined\r\n }\r\n}","import { Navvy } from '../../../../../services/navvy'\r\nimport {\r\n iBXRestParamSocialNetWorkApiBlogpostImportantVote\r\n} from '../../../../../typification/rest/socialnetwork'\r\nimport {\r\n BXRestNavvyMapSocialNetWorkApiLiveFeedBlogPostImportant\r\n} from '../../../../../map/socialnetwork/api/livefeed/blogpost/important'\r\nimport { $api, $socialnetwork } from '../../../../../consts/part-name-methods'\r\n\r\nexport class BXRestNavvySocialNetWorkApiLiveFeedBlogPostImportant {\r\n public url = {\r\n vote: [$socialnetwork, $api, 'liveFeed', 'blogPost', 'important', 'vote']\r\n }\r\n\r\n private readonly Navvy = new Navvy()\r\n\r\n vote(param: iBXRestParamSocialNetWorkApiBlogpostImportantVote) {\r\n return this.Navvy.simple(\r\n this.url.vote, param,\r\n BXRestNavvyMapSocialNetWorkApiLiveFeedBlogPostImportant.vote\r\n )\r\n }\r\n}","import {\r\n BXRestNavvySocialNetWorkApiLiveFeedBlogPostImportant,\r\n} from './blogpost/important'\r\n\r\nexport class BXRestNavvySocialNetWorkApiLiveFeedBlogPost {\r\n public readonly important = new BXRestNavvySocialNetWorkApiLiveFeedBlogPostImportant()\r\n}","import { BXRestNavvySocialNetWorkApiLiveFeedBlogPost } from './livefeed/blogpost'\r\n// import { Navvy } from '../../../services/navvy'\r\n// import { BXRestSocialNetWorkApiLiveFeed } from '../../../request/socialnetwork/api/livefeed'\r\n\r\nexport class BXRestNavvySocialNetWorkApiLiveFeed {\r\n // private readonly contentView = new BXRestSocialNetWorkApiLiveFeed)\r\n // private readonly Navvy = new Navvy(this.contentView, null)\r\n\r\n public readonly blogPost = new BXRestNavvySocialNetWorkApiLiveFeedBlogPost()\r\n}","import { BXRestNavvySocialNetWorkApiContentView } from './api/contentview'\r\nimport { BXRestNavvySocialNetWorkApiLiveFeed } from './api/livefeed'\r\n\r\nexport class BXRestNavvySocialNetWorkApi {\r\n public contentView = new BXRestNavvySocialNetWorkApiContentView()\r\n public liveFeed = new BXRestNavvySocialNetWorkApiLiveFeed()\r\n}","import { BXRestNavvySocialNetWorkApi } from './socialnetwork/api'\r\n\r\nexport class BXRestNavvySocialNetWork {\r\n public api = new BXRestNavvySocialNetWorkApi()\r\n\r\n}","import {\r\n iBXRestPullApplicationConfigGet,\r\n iBXRestPullApplicationConfigGetHttp\r\n} from '../../../typification/rest/pull/application/config/get'\r\nimport { toDate } from '../../../services/base'\r\nimport { iBXRestPullConfigPublicChannelsGet } from '../../../typification/rest/pull/config/get'\r\n\r\nexport class BXRestMapPullApplicationConfig {\r\n static get(value: iBXRestPullApplicationConfigGetHttp | undefined): iBXRestPullApplicationConfigGet | undefined {\r\n return value ?\r\n {\r\n ...value,\r\n ...{\r\n channels:\r\n {\r\n shared: {\r\n ...value.channels.shared, ...{\r\n start: toDate(value.channels.shared.start),\r\n end: toDate(value.channels.shared.end),\r\n }\r\n },\r\n private: {\r\n ...value.channels.private, ...{\r\n start: toDate(value.channels.private.start),\r\n end: toDate(value.channels.private.end),\r\n }\r\n }\r\n },\r\n publicChannels: Object.fromEntries(Object.entries(value.publicChannels).map(([key, val]) => (\r\n [key,\r\n {\r\n ...val,\r\n start: toDate(val.start),\r\n end: toDate(val.end)\r\n } as iBXRestPullConfigPublicChannelsGet\r\n ]))) as Record<string, iBXRestPullConfigPublicChannelsGet>,\r\n }\r\n }\r\n : undefined\r\n }\r\n}","import {\r\n iBXRestPullConfigGet,\r\n iBXRestPullConfigGetHttp\r\n} from '../typification/rest/pull/config/get'\r\nimport { toDate } from '../services/base'\r\nimport { BXRestMapPullApplicationConfig } from './pull/application/config'\r\n\r\nexport class BXRestMapPull {\r\n static get(value: iBXRestPullConfigGetHttp | undefined): iBXRestPullConfigGet | undefined {\r\n // console.log('Object.entries(value.publicChannels)', value)\r\n //if(value?.publicChannels) {\r\n // console.log('Object.entries(value.publicChannels)',\r\n // value.publicChannels, Object.entries(value.publicChannels), Object.fromEntries(Object.entries(value.publicChannels).map(([key, val]) => (\r\n // [key,\r\n // {\r\n // ...val,\r\n // start: toDate(val.start), end: toDate(val.end)\r\n // } as iBXRestPullConfigPublicChannelsGet\r\n // ]))) as Record<string, iBXRestPullConfigPublicChannelsGet>,)\r\n //}\r\n return value ? {... BXRestMapPullApplicationConfig.get(value), ...{serverTime: toDate(value.serverTime)}} as iBXRestPullConfigGet : undefined\r\n }\r\n}","import { iBXRestPullChannelPublicGet, iBXRestPullChannelPublicGetHttp } from '../../typification/rest/pull/channel/get'\r\nimport { toDate } from '../../services/base'\r\n\r\nexport class BXRestMapPullChannelPublic {\r\n\r\n static get(value: iBXRestPullChannelPublicGetHttp | undefined): iBXRestPullChannelPublicGet | undefined {\r\n return value ? {\r\n ...value,\r\n start: toDate(value.start),\r\n end: toDate(value.end)\r\n }\r\n : undefined\r\n }\r\n}","import { $config, $get, $pull } from '../../consts/part-name-methods'\r\nimport { Navvy } from '../../services/navvy'\r\nimport { iBXRestPullConfigGet, iBXRestPullConfigGetHttp } from '../../typification/rest/pull'\r\nimport { BXRestMapPull } from '../../map/pull'\r\nimport { BXRestMapPullChannelPublic } from '../../map/channel/public'\r\n\r\nexport class BXRestNavvyPullConfig {\r\n url = {\r\n /**\r\n * Получает информацию для подключения в веб сокету\r\n */\r\n get: [$pull, $config, $get]\r\n }\r\n\r\n private Navvy = new Navvy()\r\n public static public = new BXRestMapPullChannelPublic()\r\n\r\n /**\r\n * @experimental\r\n * Этот метод находится в процессе тестирования и может измениться.\r\n */\r\n get() {\r\n return this.Navvy.simple<iBXRestPullConfigGetHttp, iBXRestPullConfigGet>(\r\n this.url.get,\r\n undefined,\r\n BXRestMapPull.get\r\n )\r\n }\r\n}","import { $add, $blogpost, $channel, $get, $log, $public, $pull } from '../../../consts/part-name-methods'\r\nimport { Navvy } from '../../../services/navvy'\r\nimport {\r\n iBXRestPullChannelPublicGet,\r\n iBXRestPullChannelPublicGetHttp\r\n} from '../../../typification/rest/pull'\r\nimport { BXRestMapPullChannelPublic } from '../../../map/channel/public'\r\n\r\nexport class BXRestNavvyPullChannelPublic {\r\n url = {\r\n get: [$log, $blogpost, $add]\r\n }\r\n\r\n private Navvy = new Navvy()\r\n\r\n get() {\r\n return this.Navvy.simple<iBXRestPullChannelPublicGetHttp,\r\n iBXRestPullChannelPublicGet>([$pull, $channel, $public, $get], undefined, BXRestMapPullChannelPublic.get)\r\n }\r\n}","import { $application, $config, $get, $pull } from '../../../consts/part-name-methods'\r\nimport {\r\n iBXRestPullApplicationConfigGet,\r\n iBXRestPullApplicationConfigGetHttp\r\n} from '../../../typification/rest/pull'\r\nimport { Navvy } from '../../../services/navvy'\r\nimport { BXRestMapPullApplicationConfig } from '../../../map/pull/application/config'\r\n\r\nexport class BXRestNavvyPullApplicationConfig {\r\n\r\n private Navvy = new Navvy()\r\n\r\n get() {\r\n return this.Navvy.simple<iBXRestPullApplicationConfigGetHttp, iBXRestPullApplicationConfigGet>(\r\n [$pull, $application, $config, $get],\r\n undefined,\r\n BXRestMapPullApplicationConfig.get\r\n )\r\n }\r\n}","import { BXRestNavvyPullConfig } from './pull/config'\r\nimport { BXRestNavvyPullChannelPublic } from './pull/channel/public'\r\nimport { BXRestNavvyPullApplicationConfig } from './pull/application/config'\r\n\r\nexport class BXRestNavvyPull {\r\n public readonly config = new BXRestNavvyPullConfig()\r\n public readonly channel = {\r\n public: new BXRestNavvyPullChannelPublic()\r\n }\r\n public readonly application = {\r\n config: new BXRestNavvyPullApplicationConfig(),\r\n }\r\n} ","import clone from 'just-clone'\r\nimport { iBXRestCrmLead, iBXRestCrmLeadHttp } from '../../typification/rest/crm'\r\nimport { toBool, toBXYorN, toDate, toISOStringWithTimezone, toNum, toStr } from '../../services/base'\r\n\r\nexport class BXRestMapCrmLead {\r\n /**\r\n * Преобразует массив лидов из HTTP формата в локальный\r\n */\r\n static list(v: iBXRestCrmLeadHttp[] | undefined): iBXRestCrmLead[] | undefined {\r\n return (v) ? v.map(item => BXRestMapCrmLead.httpToLocal(item)) : undefined\r\n }\r\n\r\n /**\r\n * Преобразует один лид из HTTP формата в локальный\r\n */\r\n static get(v: iBXRestCrmLeadHttp | undefined): iBXRestCrmLead | undefined {\r\n return (v) ? BXRestMapCrmLead.httpToLocal(v) : undefined\r\n }\r\n\r\n /**\r\n * Преобразует лид из HTTP формата в локальный\r\n */\r\n static httpToLocal(lead: iBXRestCrmLeadHttp): iBXRestCrmLead {\r\n return Object.assign(clone(lead), {\r\n ID: toNum(lead.ID),\r\n COMPANY_ID: lead.COMPANY_ID ? toNum(lead.COMPANY_ID) : undefined,\r\n CONTACT_ID: lead.CONTACT_ID ? toNum(lead.CONTACT_ID) : undefined,\r\n ASSIGNED_BY_ID: lead.ASSIGNED_BY_ID ? toNum(lead.ASSIGNED_BY_ID) : undefined,\r\n CREATED_BY_ID: lead.CREATED_BY_ID ? toNum(lead.CREATED_BY_ID) : undefined,\r\n MODIFY_BY_ID: lead.MODIFY_BY_ID ? toNum(lead.MODIFY_BY_ID) : undefined,\r\n DATE_CREATE: lead.DATE_CREATE ? toDate(lead.DATE_CREATE) : undefined,\r\n DATE_MODIFY: lead.DATE_MODIFY ? toDate(lead.DATE_MODIFY) : undefined,\r\n BIRTHDATE: lead.BIRTHDATE ? toDate(lead.BIRTHDATE) : undefined,\r\n OPENED: lead.OPENED ? toBool(lead.OPENED) : undefined,\r\n IS_MANUAL_OPPORTUNITY: lead.IS_MANUAL_OPPORTUNITY ? toBool(lead.IS_MANUAL_OPPORTUNITY) : undefined,\r\n HAS_PHONE: lead.HAS_PHONE ? toBool(lead.HAS_PHONE) : undefined,\r\n HAS_EMAIL: lead.HAS_EMAIL ? toBool(lead.HAS_EMAIL) : undefined,\r\n HAS_IMOL: lead.HAS_IMOL ? toBool(lead.HAS_IMOL) : undefined,\r\n OPPORTUNITY: lead.OPPORTUNITY ? toNum(lead.OPPORTUNITY) : undefined\r\n })\r\n }\r\n\r\n /**\r\n * Преобразует лид из локального формата в HTTP\r\n */\r\n static localToHttp(lead: iBXRestCrmLead): iBXRestCrmLeadHttp {\r\n return Object.assign(clone(lead), {\r\n ID: toStr(lead.ID),\r\n COMPANY_ID: lead.COMPANY_ID ? toStr(lead.COMPANY_ID) : undefined,\r\n CONTACT_ID: lead.CONTACT_ID ? toStr(lead.CONTACT_ID) : undefined,\r\n ASSIGNED_BY_ID: lead.ASSIGNED_BY_ID ? toStr(lead.ASSIGNED_BY_ID) : undefined,\r\n CREATED_BY_ID: lead.CREATED_BY_ID ? toStr(lead.CREATED_BY_ID) : undefined,\r\n MODIFY_BY_ID: lead.MODIFY_BY_ID ? toStr(lead.MODIFY_BY_ID) : undefined,\r\n DATE_CREATE: lead.DATE_CREATE ? toISOStringWithTimezone(lead.DATE_CREATE) : undefined,\r\n DATE_MODIFY: lead.DATE_MODIFY ? toISOStringWithTimezone(lead.DATE_MODIFY) : undefined,\r\n BIRTHDATE: lead.BIRTHDATE ? toISOStringWithTimezone(lead.BIRTHDATE) : undefined,\r\n OPENED: lead.OPENED !== undefined ? toBXYorN(lead.OPENED) : undefined,\r\n IS_MANUAL_OPPORTUNITY: lead.IS_MANUAL_OPPORTUNITY !== undefined ? toBXYorN(lead.IS_MANUAL_OPPORTUNITY) : undefined,\r\n HAS_PHONE: lead.HAS_PHONE !== undefined ? toBXYorN(lead.HAS_PHONE) : undefined,\r\n HAS_EMAIL: lead.HAS_EMAIL !== undefined ? toBXYorN(lead.HAS_EMAIL) : undefined,\r\n HAS_IMOL: lead.HAS_IMOL !== undefined ? toBXYorN(lead.HAS_IMOL) : undefined,\r\n OPPORTUNITY: lead.OPPORTUNITY ? toStr(lead.OPPORTUNITY) : undefined\r\n })\r\n }\r\n}\r\n\r\n","import clone from 'just-clone'\r\nimport { iBXRestCrmDeal, iBXRestCrmDealHttp } from '../../typification/rest/crm'\r\nimport { toBool, toBXYorN, toDate, toISOStringWithTimezone, toNum, toStr } from '../../services/base'\r\n\r\nexport class BXRestMapCrmDeal {\r\n /**\r\n * Преобразует массив сделок из HTTP формата в локальный\r\n */\r\n static list(v: iBXRestCrmDealHttp[] | undefined): iBXRestCrmDeal[] | undefined {\r\n return (v) ? v.map(item => BXRestMapCrmDeal.httpToLocal(item)) : undefined\r\n }\r\n\r\n /**\r\n * Преобразует одну сделку из HTTP формата в локальный\r\n */\r\n static get(v: iBXRestCrmDealHttp | undefined): iBXRestCrmDeal | undefined {\r\n return (v) ? BXRestMapCrmDeal.httpToLocal(v) : undefined\r\n }\r\n\r\n /**\r\n * Преобразует сделку из HTTP формата в локальный\r\n */\r\n static httpToLocal(deal: iBXRestCrmDealHttp): iBXRestCrmDeal {\r\n return Object.assign(clone(deal), {\r\n ID: toNum(deal.ID),\r\n COMPANY_ID: deal.COMPANY_ID ? toNum(deal.COMPANY_ID) : undefined,\r\n CONTACT_ID: deal.CONTACT_ID ? toNum(deal.CONTACT_ID) : undefined,\r\n ASSIGNED_BY_ID: deal.ASSIGNED_BY_ID ? toNum(deal.ASSIGNED_BY_ID) : undefined,\r\n CREATED_BY_ID: deal.CREATED_BY_ID ? toNum(deal.CREATED_BY_ID) : undefined,\r\n MODIFY_BY_ID: deal.MODIFY_BY_ID ? toNum(deal.MODIFY_BY_ID) : undefined,\r\n DATE_CREATE: deal.DATE_CREATE ? toDate(deal.DATE_CREATE) : undefined,\r\n DATE_MODIFY: deal.DATE_MODIFY ? toDate(deal.DATE_MODIFY) : undefined,\r\n BEGINDATE: deal.BEGINDATE ? toDate(deal.BEGINDATE) : undefined,\r\n CLOSEDATE: deal.CLOSEDATE ? toDate(deal.CLOSEDATE) : undefined,\r\n OPENED: deal.OPENED ? toBool(deal.OPENED) : undefined,\r\n IS_MANUAL_OPPORTUNITY: deal.IS_MANUAL_OPPORTUNITY ? toBool(deal.IS_MANUAL_OPPORTUNITY) : undefined,\r\n OPPORTUNITY: deal.OPPORTUNITY ? toNum(deal.OPPORTUNITY) : undefined,\r\n PROBABILITY: deal.PROBABILITY ? toNum(deal.PROBABILITY) : undefined,\r\n TAX_VALUE: deal.TAX_VALUE ? toNum(deal.TAX_VALUE) : undefined,\r\n LOCATION_ID: deal.LOCATION_ID ? toNum(deal.LOCATION_ID) : undefined\r\n })\r\n }\r\n\r\n /**\r\n * Преобразует сделку из локального формата в HTTP\r\n */\r\n static localToHttp(deal: iBXRestCrmDeal): iBXRestCrmDealHttp {\r\n return Object.assign(clone(deal), {\r\n ID: toStr(deal.ID),\r\n COMPANY_ID: deal.COMPANY_ID ? toStr(deal.COMPANY_ID) : undefined,\r\n CONTACT_ID: deal.CONTACT_ID ? toStr(deal.CONTACT_ID) : undefined,\r\n ASSIGNED_BY_ID: deal.ASSIGNED_BY_ID ? toStr(deal.ASSIGNED_BY_ID) : undefined,\r\n CREATED_BY_ID: deal.CREATED_BY_ID ? toStr(deal.CREATED_BY_ID) : undefined,\r\n MODIFY_BY_ID: deal.MODIFY_BY_ID ? toStr(deal.MODIFY_BY_ID) : undefined,\r\n DATE_CREATE: deal.DATE_CREATE ? toISOStringWithTimezone(deal.DATE_CREATE) : undefined,\r\n DATE_MODIFY: deal.DATE_MODIFY ? toISOStringWithTimezone(deal.DATE_MODIFY) : undefined,\r\n BEGINDATE: deal.BEGINDATE ? toISOStringWithTimezone(deal.BEGINDATE) : undefined,\r\n CLOSEDATE: deal.CLOSEDATE ? toISOStringWithTimezone(deal.CLOSEDATE) : undefined,\r\n OPENED: deal.OPENED !== undefined ? toBXYorN(deal.OPENED) : undefined,\r\n IS_MANUAL_OPPORTUNITY: deal.IS_MANUAL_OPPORTUNITY !== undefined ? toBXYorN(deal.IS_MANUAL_OPPORTUNITY) : undefined,\r\n OPPORTUNITY: deal.OPPORTUNITY ? toStr(deal.OPPORTUNITY) : undefined,\r\n PROBABILITY: deal.PROBABILITY ? toStr(deal.PROBABILITY) : undefined,\r\n TAX_VALUE: deal.TAX_VALUE ? toStr(deal.TAX_VALUE) : undefined,\r\n LOCATION_ID: deal.LOCATION_ID ? toStr(deal.LOCATION_ID) : undefined\r\n })\r\n }\r\n}\r\n\r\n","import clone from 'just-clone'\r\nimport { iBXRestCrmContact, iBXRestCrmContactHttp } from '../../typification/rest/crm'\r\nimport { toBool, toBXYorN, toDate, toISOStringWithTimezone, toNum, toStr } from '../../services/base'\r\n\r\nexport class BXRestMapCrmContact {\r\n /**\r\n * Преобразует массив контактов из HTTP формата в локальный\r\n */\r\n static list(v: iBXRestCrmContactHttp[] | undefined): iBXRestCrmContact[] | undefined {\r\n return (v) ? v.map(item => BXRestMapCrmContact.httpToLocal(item)) : undefined\r\n }\r\n\r\n /**\r\n * Преобразует один контакт из HTTP формата в локальный\r\n */\r\n static get(v: iBXRestCrmContactHttp | undefined): iBXRestCrmContact | undefined {\r\n return (v) ? BXRestMapCrmContact.httpToLocal(v) : undefined\r\n }\r\n\r\n /**\r\n * Преобразует контакт из HTTP формата в локальный\r\n */\r\n static httpToLocal(contact: iBXRestCrmContactHttp): iBXRestCrmContact {\r\n return Object.assign(clone(contact), {\r\n ID: toNum(contact.ID),\r\n COMPANY_ID: contact.COMPANY_ID ? toNum(contact.COMPANY_ID) : undefined,\r\n LEAD_ID: contact.LEAD_ID ? toNum(contact.LEAD_ID) : undefined,\r\n ASSIGNED_BY_ID: contact.ASSIGNED_BY_ID ? toNum(contact.ASSIGNED_BY_ID) : undefined,\r\n CREATED_BY_ID: contact.CREATED_BY_ID ? toNum(contact.CREATED_BY_ID) : undefined,\r\n MODIFY_BY_ID: contact.MODIFY_BY_ID ? toNum(contact.MODIFY_BY_ID) : undefined,\r\n DATE_CREATE: contact.DATE_CREATE ? toDate(contact.DATE_CREATE) : undefined,\r\n DATE_MODIFY: contact.DATE_MODIFY ? toDate(contact.DATE_MODIFY) : undefined,\r\n BIRTHDATE: contact.BIRTHDATE ? toDate(contact.BIRTHDATE) : undefined,\r\n OPENED: contact.OPENED ? toBool(contact.OPENED) : undefined\r\n })\r\n }\r\n\r\n /**\r\n * Преобразует контакт из локального формата в HTTP\r\n */\r\n static localToHttp(contact: iBXRestCrmContact): iBXRestCrmContactHttp {\r\n return Object.assign(clone(contact), {\r\n ID: toStr(contact.ID),\r\n COMPANY_ID: contact.COMPANY_ID ? toStr(contact.COMPANY_ID) : undefined,\r\n LEAD_ID: contact.LEAD_ID ? toStr(contact.LEAD_ID) : undefined,\r\n ASSIGNED_BY_ID: contact.ASSIGNED_BY_ID ? toStr(contact.ASSIGNED_BY_ID) : undefined,\r\n CREATED_BY_ID: contact.CREATED_BY_ID ? toStr(contact.CREATED_BY_ID) : undefined,\r\n MODIFY_BY_ID: contact.MODIFY_BY_ID ? toStr(contact.MODIFY_BY_ID) : undefined,\r\n DATE_CREATE: contact.DATE_CREATE ? toISOStringWithTimezone(contact.DATE_CREATE) : undefined,\r\n DATE_MODIFY: contact.DATE_MODIFY ? toISOStringWithTimezone(contact.DATE_MODIFY) : undefined,\r\n BIRTHDATE: contact.BIRTHDATE ? toISOStringWithTimezone(contact.BIRTHDATE) : undefined,\r\n OPENED: contact.OPENED !== undefined ? toBXYorN(contact.OPENED) : undefined\r\n })\r\n }\r\n}\r\n\r\n","import clone from 'just-clone'\r\nimport { iBXRestCrmCompany, iBXRestCrmCompanyHttp } from '../../typification/rest/crm'\r\nimport { toBool, toBXYorN, toDate, toISOStringWithTimezone, toNum, toStr } from '../../services/base'\r\n\r\nexport class BXRestMapCrmCompany {\r\n /**\r\n * Преобразует массив компаний из HTTP формата в локальный\r\n */\r\n static list(v: iBXRestCrmCompanyHttp[] | undefined): iBXRestCrmCompany[] | undefined {\r\n return (v) ? v.map(item => BXRestMapCrmCompany.httpToLocal(item)) : undefined\r\n }\r\n\r\n /**\r\n * Преобразует одну компанию из HTTP формата в локальный\r\n */\r\n static get(v: iBXRestCrmCompanyHttp | undefined): iBXRestCrmCompany | undefined {\r\n return (v) ? BXRestMapCrmCompany.httpToLocal(v) : undefined\r\n }\r\n\r\n /**\r\n * Преобразует компанию из HTTP формата в локальный\r\n */\r\n static httpToLocal(company: iBXRestCrmCompanyHttp): iBXRestCrmCompany {\r\n return Object.assign(clone(company), {\r\n ID: toNum(company.ID),\r\n LEAD_ID: company.LEAD_ID ? toNum(company.LEAD_ID) : undefined,\r\n ASSIGNED_BY_ID: company.ASSIGNED_BY_ID ? toNum(company.ASSIGNED_BY_ID) : undefined,\r\n CREATED_BY_ID: company.CREATED_BY_ID ? toNum(company.CREATED_BY_ID) : undefined,\r\n MODIFY_BY_ID: company.MODIFY_BY_ID ? toNum(company.MODIFY_BY_ID) : undefined,\r\n DATE_CREATE: company.DATE_CREATE ? toDate(company.DATE_CREATE) : undefined,\r\n DATE_MODIFY: company.DATE_MODIFY ? toDate(company.DATE_MODIFY) : undefined,\r\n OPENED: company.OPENED ? toBool(company.OPENED) : undefined,\r\n IS_MY_COMPANY: company.IS_MY_COMPANY ? toBool(company.IS_MY_COMPANY) : undefined,\r\n EMPLOYEES: company.EMPLOYEES ? toNum(company.EMPLOYEES) : undefined,\r\n REVENUE: company.REVENUE ? toNum(company.REVENUE) : undefined\r\n })\r\n }\r\n\r\n /**\r\n * Преобразует компанию из локального формата в HTTP\r\n */\r\n static localToHttp(company: iBXRestCrmCompany): iBXRestCrmCompanyHttp {\r\n return Object.assign(clone(company), {\r\n ID: toStr(company.ID),\r\n LEAD_ID: company.LEAD_ID ? toStr(company.LEAD_ID) : undefined,\r\n ASSIGNED_BY_ID: company.ASSIGNED_BY_ID ? toStr(company.ASSIGNED_BY_ID) : undefined,\r\n CREATED_BY_ID: company.CREATED_BY_ID ? toStr(company.CREATED_BY_ID) : undefined,\r\n MODIFY_BY_ID: company.MODIFY_BY_ID ? toStr(company.MODIFY_BY_ID) : undefined,\r\n DATE_CREATE: company.DATE_CREATE ? toISOStringWithTimezone(company.DATE_CREATE) : undefined,\r\n DATE_MODIFY: company.DATE_MODIFY ? toISOStringWithTimezone(company.DATE_MODIFY) : undefined,\r\n OPENED: company.OPENED !== undefined ? toBXYorN(company.OPENED) : undefined,\r\n IS_MY_COMPANY: company.IS_MY_COMPANY !== undefined ? toBXYorN(company.IS_MY_COMPANY) : undefined,\r\n EMPLOYEES: company.EMPLOYEES ? toStr(company.EMPLOYEES) : undefined,\r\n REVENUE: company.REVENUE ? toStr(company.REVENUE) : undefined\r\n })\r\n }\r\n}\r\n\r\n","import clone from 'just-clone'\nimport {\n iBXRestCrmQuote,\n iBXRestCrmQuoteHttp,\n iBXRestCrmQuoteProductRow,\n iBXRestCrmQuoteProductRowHttp,\n iBXRestCrmQuoteUserField,\n iBXRestCrmQuoteUserFieldHttp\n} from '../../typification/rest/crm'\nimport { toBool, toDate, toNum } from '../../services/base'\n\nfunction optionalNumber(value: string | number | null | undefined): number | undefined {\n return value === null || value === undefined || value === '' ? undefined : toNum(value)\n}\n\nfunction optionalDate(value: string | Date | null | undefined): Date | undefined {\n return value === null || value === undefined || value === '' ? undefined : toDate(value)\n}\n\nexport class BXRestMapCrmQuote {\n static list(value: iBXRestCrmQuoteHttp[] | undefined): iBXRestCrmQuote[] | undefined {\n return value?.map(item => BXRestMapCrmQuote.get(item) as iBXRestCrmQuote)\n }\n\n static get(value: iBXRestCrmQuoteHttp | undefined): iBXRestCrmQuote | undefined {\n if (!value) return undefined\n\n return Object.assign(clone(value), {\n ID: toNum(value.ID),\n OPPORTUNITY: optionalNumber(value.OPPORTUNITY),\n TAX_VALUE: optionalNumber(value.TAX_VALUE),\n COMPANY_ID: optionalNumber(value.COMPANY_ID),\n CONTACT_ID: optionalNumber(value.CONTACT_ID),\n MYCOMPANY_ID: optionalNumber(value.MYCOMPANY_ID),\n ASSIGNED_BY_ID: optionalNumber(value.ASSIGNED_BY_ID),\n CREATED_BY_ID: optionalNumber(value.CREATED_BY_ID),\n MODIFY_BY_ID: optionalNumber(value.MODIFY_BY_ID),\n LEAD_ID: optionalNumber(value.LEAD_ID),\n DEAL_ID: optionalNumber(value.DEAL_ID),\n PERSON_TYPE_ID: optionalNumber(value.PERSON_TYPE_ID),\n LOCATION_ID: optionalNumber(value.LOCATION_ID),\n LAST_ACTIVITY_BY: optionalNumber(value.LAST_ACTIVITY_BY),\n BEGINDATE: optionalDate(value.BEGINDATE),\n CLOSEDATE: optionalDate(value.CLOSEDATE),\n ACTUAL_DATE: optionalDate(value.ACTUAL_DATE),\n DATE_CREATE: optionalDate(value.DATE_CREATE),\n DATE_MODIFY: optionalDate(value.DATE_MODIFY),\n LAST_COMMUNICATION_TIME: optionalDate(value.LAST_COMMUNICATION_TIME),\n LAST_ACTIVITY_TIME: optionalDate(value.LAST_ACTIVITY_TIME),\n OPENED: value.OPENED ? toBool(value.OPENED) : undefined,\n CLOSED: value.CLOSED ? toBool(value.CLOSED) : undefined\n })\n }\n}\n\nexport class BXRestMapCrmQuoteProductRow {\n static list(value: iBXRestCrmQuoteProductRowHttp[] | undefined): iBXRestCrmQuoteProductRow[] | undefined {\n return value?.map(item => Object.assign(clone(item), {\n ID: toNum(item.ID),\n OWNER_ID: toNum(item.OWNER_ID),\n CUSTOMIZED: item.CUSTOMIZED ? toBool(item.CUSTOMIZED) : undefined,\n TAX_INCLUDED: item.TAX_INCLUDED ? toBool(item.TAX_INCLUDED) : undefined,\n DATE_RESERVE_END: optionalDate(item.DATE_RESERVE_END)\n }))\n }\n}\n\nexport class BXRestMapCrmQuoteUserField {\n static list(value: iBXRestCrmQuoteUserFieldHttp[] | undefined): iBXRestCrmQuoteUserField[] | undefined {\n return value?.map(item => BXRestMapCrmQuoteUserField.get(item) as iBXRestCrmQuoteUserField)\n }\n\n static get(value: iBXRestCrmQuoteUserFieldHttp | undefined): iBXRestCrmQuoteUserField | undefined {\n if (!value) return undefined\n\n return Object.assign(clone(value), {\n ID: toNum(value.ID),\n SORT: toNum(value.SORT),\n MULTIPLE: toBool(value.MULTIPLE),\n MANDATORY: toBool(value.MANDATORY),\n SHOW_IN_LIST: toBool(value.SHOW_IN_LIST),\n EDIT_IN_LIST: toBool(value.EDIT_IN_LIST),\n IS_SEARCHABLE: toBool(value.IS_SEARCHABLE)\n })\n }\n}\n","import { Navvy } from '../../services/navvy'\r\nimport { $add, $crm, $delete, $get, $lead, $list, $update } from '../../consts/part-name-methods'\r\nimport {\r\n iBXRestParamCrmLeadAdd,\r\n iBXRestParamCrmLeadGet,\r\n iBXRestParamCrmLeadList,\r\n iBXRestParamCrmLeadUpdate,\r\n iBXRestParamCrmLeadDelete\r\n} from '../../typification/rest/crm'\r\nimport { BXRestMapCrmLead } from '../../map/crm'\r\n\r\nexport class BXRestNavvyCrmLead {\r\n url = {\r\n /**\r\n * Создает новый лид\r\n */\r\n add: [$crm, $lead, $add],\r\n /**\r\n * Возвращает лид по идентификатору\r\n */\r\n get: [$crm, $lead, $get],\r\n /**\r\n * Возвращает список лидов\r\n */\r\n list: [$crm, $lead, $list],\r\n /**\r\n * Обновляет существующий лид\r\n */\r\n update: [$crm, $lead, $update],\r\n /**\r\n * Удаляет лид\r\n */\r\n delete: [$crm, $lead, $delete],\r\n /**\r\n * Возвращает описание полей лида\r\n */\r\n fields: [$crm, $lead, 'fields']\r\n }\r\n\r\n private Navvy = new Navvy()\r\n\r\n /**\r\n * Создает новый лид\r\n * @param param\r\n */\r\n add(param: iBXRestParamCrmLeadAdd) {\r\n return this.Navvy.simple<number, number, iBXRestParamCrmLeadAdd>(this.url.add, param)\r\n }\r\n\r\n /**\r\n * Возвращает лид по идентификатору\r\n * @param param\r\n */\r\n get(param: iBXRestParamCrmLeadGet) {\r\n return this.Navvy.simple(\r\n this.url.get,\r\n param,\r\n BXRestMapCrmLead.get\r\n )\r\n }\r\n\r\n /**\r\n * Возвращает список лидов\r\n * @param param\r\n */\r\n list(param: iBXRestParamCrmLeadList) {\r\n return this.Navvy.pagNav(\r\n this.url.list,\r\n param,\r\n BXRestMapCrmLead.list\r\n )\r\n }\r\n\r\n /**\r\n * Обновляет существующий лид\r\n * @param param\r\n */\r\n update(param: iBXRestParamCrmLeadUpdate) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestParamCrmLeadUpdate>(this.url.update, param)\r\n }\r\n\r\n /**\r\n * Удаляет лид\r\n * @param param\r\n */\r\n delete(param: iBXRestParamCrmLeadDelete) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestParamCrmLeadDelete>(this.url.delete, param)\r\n }\r\n\r\n /**\r\n * Возвращает описание полей лида\r\n */\r\n fields() {\r\n return this.Navvy.simple<Record<string, any>, Record<string, any>, undefined>(this.url.fields)\r\n }\r\n}\r\n\r\n","import { Navvy } from '../../services/navvy'\r\nimport { $add, $crm, $deal, $delete, $get, $list, $update } from '../../consts/part-name-methods'\r\nimport {\r\n iBXRestParamCrmDealAdd,\r\n iBXRestParamCrmDealGet,\r\n iBXRestParamCrmDealList,\r\n iBXRestParamCrmDealUpdate,\r\n iBXRestParamCrmDealDelete\r\n} from '../../typification/rest/crm'\r\nimport { BXRestMapCrmDeal } from '../../map/crm'\r\n\r\nexport class BXRestNavvyCrmDeal {\r\n url = {\r\n /**\r\n * Создает новую сделку\r\n */\r\n add: [$crm, $deal, $add],\r\n /**\r\n * Возвращает сделку по идентификатору\r\n */\r\n get: [$crm, $deal, $get],\r\n /**\r\n * Возвращает список сделок\r\n */\r\n list: [$crm, $deal, $list],\r\n /**\r\n * Обновляет существующую сделку\r\n */\r\n update: [$crm, $deal, $update],\r\n /**\r\n * Удаляет сделку\r\n */\r\n delete: [$crm, $deal, $delete],\r\n /**\r\n * Возвращает описание полей сделки\r\n */\r\n fields: [$crm, $deal, 'fields']\r\n }\r\n\r\n private Navvy = new Navvy()\r\n\r\n /**\r\n * Создает новую сделку\r\n * @param param\r\n */\r\n add(param: iBXRestParamCrmDealAdd) {\r\n return this.Navvy.simple<number, number, iBXRestParamCrmDealAdd>(this.url.add, param)\r\n }\r\n\r\n /**\r\n * Возвращает сделку по идентификатору\r\n * @param param\r\n */\r\n get(param: iBXRestParamCrmDealGet) {\r\n return this.Navvy.simple(\r\n this.url.get,\r\n param,\r\n BXRestMapCrmDeal.get\r\n )\r\n }\r\n\r\n /**\r\n * Возвращает список сделок\r\n * @param param\r\n */\r\n list(param: iBXRestParamCrmDealList) {\r\n return this.Navvy.pagNav(\r\n this.url.list,\r\n param,\r\n BXRestMapCrmDeal.list\r\n )\r\n }\r\n\r\n /**\r\n * Обновляет существующую сделку\r\n * @param param\r\n */\r\n update(param: iBXRestParamCrmDealUpdate) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestParamCrmDealUpdate>(this.url.update, param)\r\n }\r\n\r\n /**\r\n * Удаляет сделку\r\n * @param param\r\n */\r\n delete(param: iBXRestParamCrmDealDelete) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestParamCrmDealDelete>(this.url.delete, param)\r\n }\r\n\r\n /**\r\n * Возвращает описание полей сделки\r\n */\r\n fields() {\r\n return this.Navvy.simple<Record<string, any>, Record<string, any>, undefined>(this.url.fields)\r\n }\r\n}\r\n\r\n","import { Navvy } from '../../services/navvy'\r\nimport { $add, $contact, $crm, $delete, $get, $list, $update } from '../../consts/part-name-methods'\r\nimport {\r\n iBXRestParamCrmContactAdd,\r\n iBXRestParamCrmContactGet,\r\n iBXRestParamCrmContactList,\r\n iBXRestParamCrmContactUpdate,\r\n iBXRestParamCrmContactDelete\r\n} from '../../typification/rest/crm'\r\nimport { BXRestMapCrmContact } from '../../map/crm'\r\n\r\nexport class BXRestNavvyCrmContact {\r\n url = {\r\n /**\r\n * Создает новый контакт\r\n */\r\n add: [$crm, $contact, $add],\r\n /**\r\n * Возвращает контакт по идентификатору\r\n */\r\n get: [$crm, $contact, $get],\r\n /**\r\n * Возвращает список контактов\r\n */\r\n list: [$crm, $contact, $list],\r\n /**\r\n * Обновляет существующий контакт\r\n */\r\n update: [$crm, $contact, $update],\r\n /**\r\n * Удаляет контакт\r\n */\r\n delete: [$crm, $contact, $delete],\r\n /**\r\n * Возвращает описание полей контакта\r\n */\r\n fields: [$crm, $contact, 'fields']\r\n }\r\n\r\n private Navvy = new Navvy()\r\n\r\n /**\r\n * Создает новый контакт\r\n * @param param\r\n */\r\n add(param: iBXRestParamCrmContactAdd) {\r\n return this.Navvy.simple<number, number, iBXRestParamCrmContactAdd>(this.url.add, param)\r\n }\r\n\r\n /**\r\n * Возвращает контакт по идентификатору\r\n * @param param\r\n */\r\n get(param: iBXRestParamCrmContactGet) {\r\n return this.Navvy.simple(\r\n this.url.get,\r\n param,\r\n BXRestMapCrmContact.get\r\n )\r\n }\r\n\r\n /**\r\n * Возвращает список контактов\r\n * @param param\r\n */\r\n list(param: iBXRestParamCrmContactList) {\r\n return this.Navvy.pagNav(\r\n this.url.list,\r\n param,\r\n BXRestMapCrmContact.list\r\n )\r\n }\r\n\r\n /**\r\n * Обновляет существующий контакт\r\n * @param param\r\n */\r\n update(param: iBXRestParamCrmContactUpdate) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestParamCrmContactUpdate>(this.url.update, param)\r\n }\r\n\r\n /**\r\n * Удаляет контакт\r\n * @param param\r\n */\r\n delete(param: iBXRestParamCrmContactDelete) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestParamCrmContactDelete>(this.url.delete, param)\r\n }\r\n\r\n /**\r\n * Возвращает описание полей контакта\r\n */\r\n fields() {\r\n return this.Navvy.simple<Record<string, any>, Record<string, any>, undefined>(this.url.fields)\r\n }\r\n}\r\n\r\n","import { Navvy } from '../../services/navvy'\r\nimport { $add, $company, $crm, $delete, $get, $list, $update } from '../../consts/part-name-methods'\r\nimport {\r\n iBXRestParamCrmCompanyAdd,\r\n iBXRestParamCrmCompanyGet,\r\n iBXRestParamCrmCompanyList,\r\n iBXRestParamCrmCompanyUpdate,\r\n iBXRestParamCrmCompanyDelete\r\n} from '../../typification/rest/crm'\r\nimport { BXRestMapCrmCompany } from '../../map/crm'\r\n\r\nexport class BXRestNavvyCrmCompany {\r\n url = {\r\n /**\r\n * Создает новую компанию\r\n */\r\n add: [$crm, $company, $add],\r\n /**\r\n * Возвращает компанию по идентификатору\r\n */\r\n get: [$crm, $company, $get],\r\n /**\r\n * Возвращает список компаний\r\n */\r\n list: [$crm, $company, $list],\r\n /**\r\n * Обновляет существующую компанию\r\n */\r\n update: [$crm, $company, $update],\r\n /**\r\n * Удаляет компанию\r\n */\r\n delete: [$crm, $company, $delete],\r\n /**\r\n * Возвращает описание полей компании\r\n */\r\n fields: [$crm, $company, 'fields']\r\n }\r\n\r\n private Navvy = new Navvy()\r\n\r\n /**\r\n * Создает новую компанию\r\n * @param param\r\n */\r\n add(param: iBXRestParamCrmCompanyAdd) {\r\n return this.Navvy.simple<number, number, iBXRestParamCrmCompanyAdd>(this.url.add, param)\r\n }\r\n\r\n /**\r\n * Возвращает компанию по идентификатору\r\n * @param param\r\n */\r\n get(param: iBXRestParamCrmCompanyGet) {\r\n return this.Navvy.simple(\r\n this.url.get,\r\n param,\r\n BXRestMapCrmCompany.get\r\n )\r\n }\r\n\r\n /**\r\n * Возвращает список компаний\r\n * @param param\r\n */\r\n list(param: iBXRestParamCrmCompanyList) {\r\n return this.Navvy.pagNav(\r\n this.url.list,\r\n param,\r\n BXRestMapCrmCompany.list\r\n )\r\n }\r\n\r\n /**\r\n * Обновляет существующую компанию\r\n * @param param\r\n */\r\n update(param: iBXRestParamCrmCompanyUpdate) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestParamCrmCompanyUpdate>(this.url.update, param)\r\n }\r\n\r\n /**\r\n * Удаляет компанию\r\n * @param param\r\n */\r\n delete(param: iBXRestParamCrmCompanyDelete) {\r\n return this.Navvy.simple<boolean, boolean, iBXRestParamCrmCompanyDelete>(this.url.delete, param)\r\n }\r\n\r\n /**\r\n * Возвращает описание полей компании\r\n */\r\n fields() {\r\n return this.Navvy.simple<Record<string, any>, Record<string, any>, undefined>(this.url.fields)\r\n }\r\n}\r\n\r\n","import { Navvy } from '../../../services/navvy'\nimport { $crm, $get, $productrows, $quote, $set } from '../../../consts/part-name-methods'\nimport {\n iBXRestCrmQuoteProductRow,\n iBXRestCrmQuoteProductRowHttp,\n iBXRestParamCrmQuoteProductRowsGet,\n iBXRestParamCrmQuoteProductRowsSet\n} from '../../../typification/rest/crm'\nimport { BXRestMapCrmQuoteProductRow } from '../../../map/crm'\n\n/** Методы товарных позиций коммерческого предложения. */\nexport class BXRestNavvyCrmQuoteProductRows {\n private readonly Navvy = new Navvy()\n private readonly url = {\n get: [$crm, $quote, $productrows, $get],\n set: [$crm, $quote, $productrows, $set]\n }\n\n /**\n * Возвращает товарные позиции коммерческого предложения.\n *\n * @deprecated Развитие метода остановлено. Используйте `crm.item.productrow.*`.\n * @see https://apidocs.bitrix24.ru/api-reference/crm/quote/crm-quote-product-rows-get.html\n */\n get(param: iBXRestParamCrmQuoteProductRowsGet) {\n return this.Navvy.simple<iBXRestCrmQuoteProductRowHttp[], iBXRestCrmQuoteProductRow[], iBXRestParamCrmQuoteProductRowsGet>(\n this.url.get,\n param,\n BXRestMapCrmQuoteProductRow.list\n )\n }\n\n /**\n * Полностью заменяет товарные позиции коммерческого предложения.\n * Передайте пустой массив `rows`, чтобы удалить все позиции.\n *\n * @deprecated Развитие метода остановлено. Используйте `crm.item.productrow.*`.\n * @see https://apidocs.bitrix24.ru/api-reference/crm/quote/crm-quote-product-rows-set.html\n */\n set(param: iBXRestParamCrmQuoteProductRowsSet) {\n return this.Navvy.simple<boolean, boolean, iBXRestParamCrmQuoteProductRowsSet>(this.url.set, param)\n }\n}\n","import { Navvy } from '../../../services/navvy'\nimport { $add, $crm, $delete, $get, $list, $quote, $update, $userfield } from '../../../consts/part-name-methods'\nimport {\n iBXRestCrmQuoteUserField,\n iBXRestCrmQuoteUserFieldHttp,\n iBXRestParamCrmQuoteUserFieldAdd,\n iBXRestParamCrmQuoteUserFieldDelete,\n iBXRestParamCrmQuoteUserFieldGet,\n iBXRestParamCrmQuoteUserFieldList,\n iBXRestParamCrmQuoteUserFieldUpdate\n} from '../../../typification/rest/crm'\nimport { BXRestMapCrmQuoteUserField } from '../../../map/crm'\n\n/** Методы пользовательских полей коммерческих предложений. */\nexport class BXRestNavvyCrmQuoteUserField {\n private readonly Navvy = new Navvy()\n private readonly url = {\n add: [$crm, $quote, $userfield, $add],\n update: [$crm, $quote, $userfield, $update],\n get: [$crm, $quote, $userfield, $get],\n list: [$crm, $quote, $userfield, $list],\n delete: [$crm, $quote, $userfield, $delete]\n }\n\n /**\n * Создает пользовательское поле для предложений.\n * Метод доступен администратору CRM.\n *\n * @see https://apidocs.bitrix24.ru/api-reference/crm/quote/user-field/crm-quote-user-field-add.html\n */\n add(param: iBXRestParamCrmQuoteUserFieldAdd) {\n return this.Navvy.simple<number, number, iBXRestParamCrmQuoteUserFieldAdd>(this.url.add, param)\n }\n\n /**\n * Обновляет существующее пользовательское поле предложений.\n * Метод доступен администратору CRM.\n *\n * @see https://apidocs.bitrix24.ru/api-reference/crm/quote/user-field/crm-quote-user-field-update.html\n */\n update(param: iBXRestParamCrmQuoteUserFieldUpdate) {\n return this.Navvy.simple<boolean, boolean, iBXRestParamCrmQuoteUserFieldUpdate>(this.url.update, param)\n }\n\n /**\n * Возвращает пользовательское поле предложения по идентификатору.\n *\n * @see https://apidocs.bitrix24.ru/api-reference/crm/quote/user-field/crm-quote-user-field-get.html\n */\n get(param: iBXRestParamCrmQuoteUserFieldGet) {\n return this.Navvy.simple<iBXRestCrmQuoteUserFieldHttp, iBXRestCrmQuoteUserField, iBXRestParamCrmQuoteUserFieldGet>(\n this.url.get,\n param,\n BXRestMapCrmQuoteUserField.get\n )\n }\n\n /**\n * Возвращает список пользовательских полей предложений по фильтру.\n *\n * @see https://apidocs.bitrix24.ru/api-reference/crm/quote/user-field/crm-quote-user-field-list.html\n */\n list(param: iBXRestParamCrmQuoteUserFieldList = {}) {\n return this.Navvy.simple<iBXRestCrmQuoteUserFieldHttp[], iBXRestCrmQuoteUserField[], iBXRestParamCrmQuoteUserFieldList>(\n this.url.list,\n param,\n BXRestMapCrmQuoteUserField.list\n )\n }\n\n /**\n * Удаляет пользовательское поле предложений.\n * Метод доступен администратору CRM.\n *\n * @see https://apidocs.bitrix24.ru/api-reference/crm/quote/user-field/crm-quote-user-field-delete.html\n */\n delete(param: iBXRestParamCrmQuoteUserFieldDelete) {\n return this.Navvy.simple<boolean, boolean, iBXRestParamCrmQuoteUserFieldDelete>(this.url.delete, param)\n }\n}\n","import { Navvy } from '../../../services/navvy'\nimport { $add, $crm, $delete, $get, $list, $quote, $update } from '../../../consts/part-name-methods'\nimport {\n iBXRestParamCrmQuoteAdd,\n iBXRestParamCrmQuoteDelete,\n iBXRestParamCrmQuoteGet,\n iBXRestParamCrmQuoteList,\n iBXRestParamCrmQuoteUpdate\n} from '../../../typification/rest/crm'\nimport { BXRestMapCrmQuote } from '../../../map/crm'\nimport { BXRestNavvyCrmQuoteProductRows } from './productrows'\nimport { BXRestNavvyCrmQuoteUserField } from './userfield'\n\nexport * from './productrows'\nexport * from './userfield'\n\n/** Навигатор REST-методов коммерческих предложений Bitrix24. */\nexport class BXRestNavvyCrmQuote {\n private readonly Navvy = new Navvy()\n private readonly url = {\n add: [$crm, $quote, $add],\n update: [$crm, $quote, $update],\n get: [$crm, $quote, $get],\n list: [$crm, $quote, $list],\n delete: [$crm, $quote, $delete],\n fields: [$crm, $quote, 'fields']\n }\n\n /** Товарные позиции предложения (`crm.quote.productrows.*`). */\n public readonly productrows = new BXRestNavvyCrmQuoteProductRows()\n\n /** Пользовательские поля предложений (`crm.quote.userfield.*`). */\n public readonly userfield = new BXRestNavvyCrmQuoteUserField()\n\n /**\n * Создает коммерческое предложение.\n *\n * @deprecated Развитие метода остановлено. Используйте `crm.item.add`.\n * @see https://apidocs.bitrix24.ru/api-reference/crm/quote/crm-quote-add.html\n */\n add(param: iBXRestParamCrmQuoteAdd) {\n return this.Navvy.simple<number, number, iBXRestParamCrmQuoteAdd>(this.url.add, param)\n }\n\n /**\n * Изменяет существующее коммерческое предложение.\n *\n * @deprecated Развитие метода остановлено. Используйте `crm.item.update`.\n * @see https://apidocs.bitrix24.ru/api-reference/crm/quote/crm-quote-update.html\n */\n update(param: iBXRestParamCrmQuoteUpdate) {\n return this.Navvy.simple<boolean, boolean, iBXRestParamCrmQuoteUpdate>(this.url.update, param)\n }\n\n /**\n * Возвращает коммерческое предложение по идентификатору.\n *\n * @deprecated Развитие метода остановлено. Используйте `crm.item.get`.\n * @see https://apidocs.bitrix24.ru/api-reference/crm/quote/crm-quote-get.html\n */\n get(param: iBXRestParamCrmQuoteGet) {\n return this.Navvy.simple(this.url.get, param, BXRestMapCrmQuote.get)\n }\n\n /**\n * Возвращает список коммерческих предложений по фильтру.\n *\n * @deprecated Развитие метода остановлено. Используйте `crm.item.list`.\n * @see https://apidocs.bitrix24.ru/api-reference/crm/quote/crm-quote-list.html\n */\n list(param: iBXRestParamCrmQuoteList = {}) {\n return this.Navvy.pagNav(this.url.list, param, BXRestMapCrmQuote.list)\n }\n\n /**\n * Удаляет коммерческое предложение.\n *\n * @deprecated Развитие метода остановлено. Используйте `crm.item.delete`.\n * @see https://apidocs.bitrix24.ru/api-reference/crm/quote/crm-quote-delete.html\n */\n delete(param: iBXRestParamCrmQuoteDelete) {\n return this.Navvy.simple<boolean, boolean, iBXRestParamCrmQuoteDelete>(this.url.delete, param)\n }\n\n /**\n * Возвращает описание полей коммерческого предложения.\n *\n * @deprecated Развитие метода остановлено. Используйте `crm.item.fields`.\n * @see https://apidocs.bitrix24.ru/api-reference/crm/quote/crm-quote-fields.html\n */\n fields() {\n return this.Navvy.simple<Record<string, any>, Record<string, any>, undefined>(this.url.fields)\n }\n}\n","import { $crm, $settings } from '../../../consts/part-name-methods'\nimport { Navvy } from '../../../services/navvy'\nimport { iBXRestCrmEnumItem } from '../../../typification/rest/crm'\n\n/** Перечисления настроек CRM (`crm.enum.settings.*`). */\nexport class BXRestNavvyCrmEnumSettings {\n private readonly Navvy = new Navvy()\n private readonly url = {\n mode: [$crm, 'enum', $settings, 'mode']\n }\n\n /**\n * Возвращает список режимов работы CRM для расшифровки значения,\n * полученного методом `crm.settings.mode.get`.\n *\n * @see https://apidocs.bitrix24.ru/api-reference/crm/auxiliary/enum/crm-enum-settings-mode.html\n */\n mode() {\n return this.Navvy.simple<iBXRestCrmEnumItem[]>(this.url.mode)\n }\n}\n","import { $crm, $enum } from '../../../consts/part-name-methods'\nimport { Navvy } from '../../../services/navvy'\nimport {\n iBXRestCrmEnumFields,\n iBXRestCrmEnumItem,\n iBXRestCrmOrderOwnerType\n} from '../../../typification/rest/crm'\nimport { BXRestNavvyCrmEnumSettings } from './settings'\n\nexport * from './settings'\n\n/** Методы перечислений CRM (`crm.enum.*`). */\nexport class BXRestNavvyCrmEnum {\n private readonly Navvy = new Navvy()\n private readonly url = {\n fields: [$crm, $enum, 'fields'],\n ownertype: [$crm, $enum, 'ownertype'],\n addresstype: [$crm, $enum, 'addresstype'],\n activitytype: [$crm, $enum, 'activitytype'],\n activitypriority: [$crm, $enum, 'activitypriority'],\n activitydirection: [$crm, $enum, 'activitydirection'],\n activitynotifytype: [$crm, $enum, 'activitynotifytype'],\n activitystatus: [$crm, $enum, 'activitystatus'],\n contenttype: [$crm, $enum, 'contenttype'],\n getorderownertypes: [$crm, $enum, 'getorderownertypes']\n }\n\n /** Перечисления настроек CRM (`crm.enum.settings.*`). */\n public readonly settings = new BXRestNavvyCrmEnumSettings()\n\n /**\n * Возвращает описание полей элементов перечислений CRM.\n *\n * @see https://apidocs.bitrix24.ru/api-reference/crm/auxiliary/enum/crm-enum-fields.html\n */\n fields() {\n return this.Navvy.simple<iBXRestCrmEnumFields>(this.url.fields)\n }\n\n /**\n * Возвращает типы объектов CRM.\n *\n * @see https://apidocs.bitrix24.ru/api-reference/crm/auxiliary/enum/crm-enum-owner-type.html\n */\n ownertype() {\n return this.enumItems(this.url.ownertype)\n }\n\n /**\n * Возвращает типы адресов CRM.\n *\n * @see https://apidocs.bitrix24.ru/api-reference/crm/auxiliary/enum/crm-enum-address-type.html\n */\n addresstype() {\n return this.enumItems(this.url.addresstype)\n }\n\n /**\n * Возвращает значения поля `TYPE_ID` дел CRM.\n *\n * @deprecated Развитие метода остановлено. Используйте `crm.activity.todo.*`.\n * @see https://apidocs.bitrix24.ru/api-reference/crm/auxiliary/enum/outdated/crm-enum-activity-type.html\n */\n activitytype() {\n return this.enumItems(this.url.activitytype)\n }\n\n /**\n * Возвращает приоритеты дел CRM.\n *\n * @deprecated Развитие метода остановлено. Используйте `crm.activity.todo.*`.\n * @see https://apidocs.bitrix24.ru/api-reference/crm/auxiliary/enum/outdated/crm-enum-activity-priority.html\n */\n activitypriority() {\n return this.enumItems(this.url.activitypriority)\n }\n\n /**\n * Возвращает направления активности: входящее и исходящее.\n *\n * @deprecated Развитие метода остановлено. Используйте `crm.activity.todo.*`.\n * @see https://apidocs.bitrix24.ru/api-reference/crm/auxiliary/enum/outdated/crm-enum-activity-direction.html\n */\n activitydirection() {\n return this.enumItems(this.url.activitydirection)\n }\n\n /**\n * Возвращает типы уведомлений о начале активности.\n *\n * @deprecated Развитие метода остановлено. Используйте `crm.activity.todo.*`.\n * @see https://apidocs.bitrix24.ru/api-reference/crm/auxiliary/enum/outdated/crm-enum-activity-notify-type.html\n */\n activitynotifytype() {\n return this.enumItems(this.url.activitynotifytype)\n }\n\n /**\n * Возвращает статусы активности.\n *\n * @deprecated Развитие метода остановлено. Используйте `crm.activity.todo.*`.\n * @see https://apidocs.bitrix24.ru/api-reference/crm/auxiliary/enum/outdated/crm-enum-activity-status.html\n */\n activitystatus() {\n return this.enumItems(this.url.activitystatus)\n }\n\n /**\n * Возвращает типы описания дел: plain text, bbCode и HTML.\n *\n * @deprecated Развитие метода остановлено. Используйте `crm.activity.todo.*`.\n * @see https://apidocs.bitrix24.ru/api-reference/crm/auxiliary/enum/outdated/crm-enum-content-type.html\n */\n contenttype() {\n return this.enumItems(this.url.contenttype)\n }\n\n /**\n * Возвращает типы объектов, к которым можно привязать заказ.\n * Идентификатор результата передаётся как `ownerTypeId` в `crm.orderentity.*`.\n *\n * @see https://apidocs.bitrix24.ru/api-reference/crm/auxiliary/enum/crm-enum-get-order-owner-types.html\n */\n getorderownertypes() {\n return this.Navvy.simple<iBXRestCrmOrderOwnerType[]>(this.url.getorderownertypes)\n }\n\n private enumItems(url: string[]) {\n return this.Navvy.simple<iBXRestCrmEnumItem[]>(url)\n }\n}\n","import { $crm, $multifield } from '../../consts/part-name-methods'\nimport { Navvy } from '../../services/navvy'\nimport { iBXRestCrmMultifieldFields } from '../../typification/rest/crm'\n\n/** Методы описания множественных полей CRM (`crm.multifield.*`). */\nexport class BXRestNavvyCrmMultifield {\n private readonly Navvy = new Navvy()\n private readonly url = {\n fields: [$crm, $multifield, 'fields']\n }\n\n /**\n * Возвращает описание множественных полей для телефонов, email-адресов\n * и другой контактной информации лидов, контактов и компаний.\n *\n * @see https://apidocs.bitrix24.ru/api-reference/crm/auxiliary/multifield/crm-multifield-fields.html\n */\n fields() {\n return this.Navvy.simple<iBXRestCrmMultifieldFields>(this.url.fields)\n }\n}\n","import { BXRestNavvyCrmLead } from './crm/lead'\r\nimport { BXRestNavvyCrmDeal } from './crm/deal'\r\nimport { BXRestNavvyCrmContact } from './crm/contact'\r\nimport { BXRestNavvyCrmCompany } from './crm/company'\nimport { BXRestNavvyCrmQuote } from './crm/quote/index'\nimport { BXRestNavvyCrmEnum } from './crm/enum/index'\nimport { BXRestNavvyCrmMultifield } from './crm/multifield'\n\r\nexport class BXRestNavvyCrm {\n /** Перечисления CRM (`crm.enum.*`). */\n public readonly enum = new BXRestNavvyCrmEnum()\n /** Описание множественных полей CRM (`crm.multifield.*`). */\n public readonly multifield = new BXRestNavvyCrmMultifield()\n public readonly lead = new BXRestNavvyCrmLead()\n public readonly deal = new BXRestNavvyCrmDeal()\r\n public readonly contact = new BXRestNavvyCrmContact()\r\n public readonly company = new BXRestNavvyCrmCompany()\n /** Коммерческие предложения и связанные с ними товарные и пользовательские поля. */\n public readonly quote = new BXRestNavvyCrmQuote()\n}\n","import { BXRestMap } from '../map/rest'\r\nimport { Navvy } from '../services/navvy'\r\n\r\nimport { BXRestNavvyUser } from '../request-navvy/user'\r\nimport { BXRestNavvyLists } from '../request-navvy/lists'\r\nimport { BXRestNavvyTask } from '../request-navvy/task'\r\nimport { BXRestNavvyTasks } from '../request-navvy/tasks'\r\nimport { BXRestNavvyDisk } from '../request-navvy/disk'\r\nimport { BXRestNavvyBizProc } from '../request-navvy/bizproc'\r\nimport { BXRestNavvyLog } from '../request-navvy/log'\r\nimport { BXRestNavvyCalendar } from '../request-navvy/calendar'\r\nimport { BXRestNavvySonetGroup } from '../request-navvy/sonet_group'\r\nimport { BXRestNavvyServer } from '../request-navvy/server'\r\nimport { BXRestNavvyDepartment } from '../request-navvy/department'\r\nimport { BXRestNavvyIm } from '../request-navvy/im'\r\nimport { BXRestNavvyApp } from '../request-navvy/app'\r\nimport { BXRestNavvyTimeMan } from '../request-navvy/timeman'\r\nimport { BXRestNavvySocialNetWork } from '../request-navvy/socialnetwork'\r\nimport { BXRestNavvyPull } from '../request-navvy/pull'\r\nimport { BXRestNavvyCrm } from '../request-navvy/crm'\nimport { iBXRestProfile, iBXRestProfileHttp } from '../typification/rest/profile'\n\r\nexport class BXRestNavvy {\r\n public readonly user = new BXRestNavvyUser()\r\n public readonly lists = new BXRestNavvyLists()\r\n public readonly task = new BXRestNavvyTask()\r\n public readonly tasks = new BXRestNavvyTasks()\r\n public readonly disk = new BXRestNavvyDisk()\r\n public readonly bizProc = new BXRestNavvyBizProc()\r\n public readonly log = new BXRestNavvyLog()\r\n public readonly calendar = new BXRestNavvyCalendar()\r\n public readonly sonet_group = new BXRestNavvySonetGroup()\r\n public readonly server = new BXRestNavvyServer()\r\n public readonly department = new BXRestNavvyDepartment()\r\n public readonly im = new BXRestNavvyIm()\r\n public readonly app = new BXRestNavvyApp()\r\n public readonly timeMan = new BXRestNavvyTimeMan()\r\n public readonly socialNetWork = new BXRestNavvySocialNetWork()\r\n public readonly pull = new BXRestNavvyPull()\r\n public readonly crm = new BXRestNavvyCrm()\r\n public readonly Navvy = new Navvy()\r\n\r\n public profile() {\n return this.Navvy.simple<iBXRestProfileHttp, iBXRestProfile>(\n ['profile'],\n undefined,\n BXRestMap.profile\n )\n }\n\r\n // public batch<T, C, M>(param: iBXRestNavvyParamBatch<T, C, M>) {\r\n // const modifiedObject = Object.fromEntries(\r\n // Object.entries(param.cmd).map(([key, value]) => {\r\n // let modifiedValue = value.resultVanilla.arguments\r\n // return [key, modifiedValue]\r\n // })\r\n // )\r\n //\r\n // return this.BXRest.batch({\r\n // halt: param.halt,\r\n // cmd: modifiedObject\r\n // })\r\n // }\r\n}\n","import { BXRestMapCalendarUserSettings } from './user/settings'\r\n\r\nexport class BXRestMapCalendarUser {\r\n public readonly settings = new BXRestMapCalendarUserSettings()\r\n}","import { BXRestMapCalendarEvent } from './calendar/event'\r\nimport { BXRestMapCalendarSection } from './calendar/section'\r\nimport { BXRestMapCalendarUser } from './calendar/user'\r\n\r\nexport class BXRestMapCalendar {\r\n public readonly event = new BXRestMapCalendarEvent()\r\n public readonly section = new BXRestMapCalendarSection()\r\n public readonly user = new BXRestMapCalendarUser()\r\n}\r\n","import { BXRestMapLogBlogPost } from './log/blogpost'\r\n\r\nexport class BXRestMapLog {\r\n public readonly blogpost = new BXRestMapLogBlogPost()\r\n}\r\n","import { iBXRestTaskStage, iBXRestTaskStageHttp } from '../../typification/rest/task/stages/stage'\r\nimport { toNum } from '../../services/base'\r\n\r\nexport class BXRestMapTaskStage {\r\n\r\n static get(value: iBXRestTaskStageHttp[] | undefined) : iBXRestTaskStage[] | undefined{\r\n return (value) ? value.map(i => Object.assign(i,\r\n {\r\n SORT: toNum(i.SORT),\r\n ID: toNum(i.ID),\r\n ENTITY_ID: toNum(i.ENTITY_ID)\r\n }\r\n )\r\n ) as iBXRestTaskStage[] : undefined\r\n }\r\n\r\n}\r\n","import { BXRestMapTaskCommentItem } from './task/commentitem'\r\nimport { BXRestMapTaskElapsedItem } from './task/elapseditem'\r\nimport { BXRestMapTaskStage } from './task/stages'\r\n\r\nexport class BXRestMapTask {\r\n public readonly commentItem = new BXRestMapTaskCommentItem()\r\n public readonly elapsedItem = new BXRestMapTaskElapsedItem()\r\n public readonly stages = new BXRestMapTaskStage()\r\n}\r\n","import { BXRestMapTasksTask } from './tasks/task'\r\n\r\nexport class BXRestMapTasks {\r\n public readonly task = new BXRestMapTasksTask()\r\n}\r\n","import { BXRestMapLists } from '../map/lists'\r\nimport { BXRestMapUser } from '../map/user'\r\nimport { BXRestMapSonetGroup } from '../map/sonet_group'\r\nimport { BXRestMapServer } from '../map/server'\r\nimport { BXRestDisk } from '../request/disk'\r\nimport { BXRestMapCalendar } from '../map/calendar'\r\nimport { BXRestMapLog } from '../map/log'\r\nimport { BXRestMapTask } from '../map/task'\r\nimport { BXRestMapTasks } from '../map/tasks'\r\n\r\nexport class BXRestMap {\r\n public get user() {\r\n return BXRestMapUser;\r\n }\r\n\r\n public get sonet_group() {\r\n return BXRestMapSonetGroup;\r\n }\r\n\r\n public get server() {\r\n return BXRestMapServer;\r\n }\r\n\r\n public get lists() {\r\n return BXRestMapLists;\r\n }\r\n\r\n public get disk() {\r\n return BXRestDisk;\r\n }\r\n\r\n public get calendar() {\r\n return BXRestMapCalendar;\r\n }\r\n\r\n public get log() {\r\n return BXRestMapLog;\r\n }\r\n\r\n public get task() {\r\n return BXRestMapTask;\r\n }\r\n\r\n public get tasks() {\r\n return BXRestMapTasks;\r\n }\r\n}","/**\r\n * Public API Surface of bx-rest\r\n */\r\nexport { BXRestSettings } from './settings'\r\nexport { BXRestMapResult } from './functions/mapResult'\r\nexport { BXRestNavvy } from './rest/navvy'\r\nexport { BXRestMap } from './rest/map'\r\nexport { Navvy } from './services/navvy'\r\nexport { HttpBXServices as BXRestRequest } from './services/http/HttpBX'\nexport { SessionKeyServices, SessionKeyError } from './services/http/sessionKey'\nexport { instanceOfiBXRestAnswerSuccess as isBXRestAnswerSuccess } from './functions/mapResult'\nexport { HttpNavvyServices } from './services/http/httpNavvy'\r\nexport * as partNameMethods from './consts/part-name-methods'\r\nexport * as BXBaseServices from './services/base'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Cookies","LocalStorage","BXRestListsElementMap","mergeMap","BXRestMap"],"mappings":"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"}
|