bx-rest 0.0.9 → 0.0.10
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-metods.d.ts +11 -0
- package/esm2020/consts/part-name-metods.mjs +12 -0
- package/esm2020/functions/serializeJavascript.mjs +200 -0
- package/esm2020/public-api.mjs +3 -3
- package/esm2020/{rest → request}/bx-rest.module.mjs +1 -1
- package/esm2020/request/user/user.mjs +263 -0
- package/esm2020/services/http/HttpBX.mjs +128 -0
- package/esm2020/services/http/HttpData.mjs +124 -0
- package/esm2020/services/http/base/base.mjs +29 -0
- package/esm2020/services/http/base/http.mjs +28 -0
- package/esm2020/services/http/http.mjs +135 -0
- package/esm2020/services/http/sessionKey.mjs +180 -0
- package/esm2020/services/map/base.mjs +14 -0
- package/esm2020/services/map/rest/user.mjs +89 -0
- package/esm2020/services/snack-bar/snack-bar.service.mjs +42 -0
- package/esm2020/services/snack-bar/toast-message/toast-message.component.mjs +31 -0
- package/esm2020/services/vanilla/JSON.mjs +20 -0
- package/esm2020/services/vanilla/localStorage.mjs +35 -0
- package/esm2020/services/vanilla//321/201ookies.mjs +44 -0
- package/esm2020/store/auth.mjs +26 -0
- package/esm2020/store/users.mjs +67 -0
- package/esm2020/typification/auth/save.mjs +2 -0
- package/esm2020/typification/rest/api-lib.mjs +21 -0
- package/esm2020/typification/rest/base/YesNo.mjs +2 -0
- package/esm2020/typification/rest/base/httpAnswerBX.mjs +2 -0
- package/esm2020/typification/rest/batch/batchRequestParam.mjs +2 -0
- package/esm2020/typification/rest/lib.mjs +2 -0
- package/esm2020/typification/rest/settings.mjs +2 -0
- package/esm2020/typification/rest/support/param.mjs +2 -0
- package/esm2020/typification/rest/user/CustomUserFieldInfo.mjs +2 -0
- package/esm2020/typification/rest/user/UserFilterSearch.mjs +2 -0
- package/esm2020/typification/rest/user/get.mjs +2 -0
- package/esm2020/typification/rest/user/user.mjs +2 -0
- package/esm2020/typification/rest/user/userFilter.mjs +2 -0
- package/fesm2015/bx-rest.mjs +340 -14
- package/fesm2015/bx-rest.mjs.map +1 -1
- package/fesm2020/bx-rest.mjs +340 -14
- package/fesm2020/bx-rest.mjs.map +1 -1
- package/functions/serializeJavascript.d.ts +2 -0
- package/package.json +1 -1
- package/public-api.d.ts +2 -2
- package/request/user/user.d.ts +60 -0
- package/services/http/HttpBX.d.ts +26 -0
- package/services/http/HttpData.d.ts +13 -0
- package/services/http/base/base.d.ts +16 -0
- package/services/http/base/http.d.ts +7 -0
- package/services/http/http.d.ts +31 -0
- package/services/http/sessionKey.d.ts +34 -0
- package/services/map/base.d.ts +6 -0
- package/services/map/rest/user.d.ts +12 -0
- package/services/snack-bar/snack-bar.service.d.ts +12 -0
- package/services/snack-bar/toast-message/toast-message.component.d.ts +16 -0
- package/services/vanilla/JSON.d.ts +7 -0
- package/services/vanilla/localStorage.d.ts +10 -0
- package/services/vanilla//321/201ookies.d.ts +9 -0
- package/store/auth.d.ts +20 -0
- package/store/users.d.ts +34 -0
- package/typification/auth/save.d.ts +14 -0
- package/typification/rest/api-lib.d.ts +9 -0
- package/typification/rest/base/YesNo.d.ts +1 -0
- package/typification/rest/base/httpAnswerBX.d.ts +15 -0
- package/typification/rest/batch/batchRequestParam.d.ts +16 -0
- package/typification/rest/lib.d.ts +18 -0
- package/typification/rest/settings.d.ts +6 -0
- package/typification/rest/support/param.d.ts +5 -0
- package/typification/rest/user/CustomUserFieldInfo.d.ts +56 -0
- package/typification/rest/user/UserFilterSearch.d.ts +43 -0
- package/typification/rest/user/get.d.ts +13 -0
- package/typification/rest/user/user.d.ts +62 -0
- package/typification/rest/user/userFilter.d.ts +13 -0
- package/bx-rest.service.d.ts +0 -6
- package/esm2020/bx-rest.service.mjs +0 -14
- /package/{rest → request}/bx-rest.module.d.ts +0 -0
package/fesm2015/bx-rest.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bx-rest.mjs","sources":["../../../projects/bx-rest/src/bx-rest.service.ts","../../../projects/bx-rest/src/rest/bx-rest.module.ts","../../../projects/bx-rest/src/consts/time.ts","../../../projects/bx-rest/src/services/base.ts","../../../projects/bx-rest/src/public-api.ts","../../../projects/bx-rest/src/bx-rest.ts"],"sourcesContent":["import { Injectable } from '@angular/core'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BxRestService {\n\n constructor() { }\n}\n","import { NgModule } from '@angular/core'\nimport { MatIconModule } from '@angular/material/icon'\nimport { MatButtonModule } from '@angular/material/button'\n\n@NgModule({\n declarations: [\n ],\n imports: [\n MatIconModule,\n MatButtonModule\n ],\n exports: [\n MatButtonModule,\n MatIconModule\n ]\n})\nexport class BxRestModule { }\n","export const time = {\r\n oneDayMilliseconds: 1000 * 60 * 60 * 24\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { time } from '../consts/time'\r\n// import { environment } from 'bx-rest/environments/environment'\r\nimport { DateTime } from 'luxon'\r\nimport { DateTimeOptions } from 'luxon/src/datetime'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BaseServices {\r\n\r\n toStr(val: any): string {\r\n return (val) ? String(val) : ''\r\n }\r\n\r\n toNumber(val: any): number {\r\n return (val && Number(val)) ? Number(val) : 0\r\n }\r\n\r\n toDate(val: number | string | Date, format?: string, opt?: DateTimeOptions): 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 console.error('Wrong date format', val, format)\r\n throw 'Wrong date format'\r\n }\r\n\r\n getBXStrTime(date: Date): string {\r\n return this.toISOStringWithTimezone(date)\r\n }\r\n\r\n toISOStringWithTimezone(date: Date): string {\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 toBool(val: any) {\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 return false\r\n }\r\n default:\r\n return Boolean(val)\r\n }\r\n }\r\n\r\n toBXYorN(val: boolean) {\r\n return (val) ? 'Y' : 'N'\r\n }\r\n\r\n typeof(val: any) {\r\n return typeof val\r\n }\r\n\r\n typeDefClass(val: object): undefined | null | 'date' {\r\n if (val) {\r\n if (val instanceof Date) {\r\n return 'date'\r\n }\r\n return undefined\r\n } else {\r\n return null\r\n }\r\n }\r\n\r\n toJSON(val: object) {\r\n return JSON.stringify(val)\r\n }\r\n\r\n fromJSON<T>(val: string): T | undefined {\r\n return JSON.parse(val)\r\n }\r\n\r\n prepareBaseAddress(url: string, add: string = '') {\r\n if (url.search('https://') !== 0 && url.search('http://')) {\r\n url = 'https://' + url\r\n }\r\n\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 return url\r\n }\r\n\r\n getHomeAddress() {\r\n // return this.prepareBaseAddress(environment.urls.home)\r\n return this.prepareBaseAddress('b24.trace-studio.com')\r\n }\r\n\r\n dateDiff(a: Date, b: Date) {\r\n return new Date(a.valueOf() - b.valueOf())\r\n }\r\n\r\n dateDiffInDays(a: Date, b: Date) {\r\n return Math.floor(this.dateDiff(a, b).valueOf() / time.oneDayMilliseconds);\r\n }\r\n\r\n getBase64File(file: File) {\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)\r\n reader.onerror = error => reject(error)\r\n })\r\n }\r\n\r\n async getBase64FileLikeStr(file: File): Promise<{ header: string, val: string } | undefined> {\r\n let result = await this.getBase64File(file)\r\n if (typeof result === 'string') {\r\n let 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\n sumArray(numbers: number[]) {\r\n return numbers.reduce((a, b) => {\r\n return a + b;\r\n })\r\n }\r\n\r\n isItTheSameDate(date1: Date, date2: Date) {\r\n return date1.getDate() === date2.getDate()\r\n && date1.getMonth() === date2.getMonth()\r\n && date1.getFullYear() === date2.getFullYear()\r\n }\r\n\r\n toUnix(date: Date) {\r\n return Math.floor(date.valueOf() / 1000)\r\n }\r\n\r\n arrSum(x: number[]) {\r\n let s = 0;\r\n for (let i = 0; i < x.length; i++) {\r\n s += x[i]\r\n }\r\n return s\r\n }\r\n\r\n getBaseUrlHttps(url: string, component = false) {\r\n if (component) {\r\n return encodeURI(this.cropUrl(url) + '/');\r\n } else {\r\n return encodeURI('https://' + this.cropUrl(url) + '/');\r\n }\r\n }\r\n\r\n cropUrl(url: 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","/*\n * Public API Surface of bx-rest\n */\n\nexport * from './bx-rest.service'\nexport * from './rest/bx-rest.module'\nexport * from './services/base'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bx-rest.mjs","sources":["../../../projects/bx-rest/src/request/bx-rest.module.ts","../../../projects/bx-rest/src/consts/time.ts","../../../projects/bx-rest/src/services/base.ts","../../../projects/bx-rest/src/store/users.ts","../../../projects/bx-rest/src/consts/part-name-metods.ts","../../../projects/bx-rest/src/request/user/user.ts","../../../projects/bx-rest/src/public-api.ts","../../../projects/bx-rest/src/bx-rest.ts"],"sourcesContent":["import { NgModule } from '@angular/core'\nimport { MatIconModule } from '@angular/material/icon'\nimport { MatButtonModule } from '@angular/material/button'\n\n@NgModule({\n declarations: [\n ],\n imports: [\n MatIconModule,\n MatButtonModule\n ],\n exports: [\n MatButtonModule,\n MatIconModule\n ]\n})\nexport class BxRestModule { }\n","export const time = {\r\n oneDayMilliseconds: 1000 * 60 * 60 * 24\r\n}\r\n","import { Injectable } from '@angular/core'\r\nimport { time } from '../consts/time'\r\n// import { environment } from 'bx-rest/environments/environment'\r\nimport { DateTime } from 'luxon'\r\nimport { DateTimeOptions } from 'luxon/src/datetime'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class BaseServices {\r\n\r\n toStr(val: any): string {\r\n return (val) ? String(val) : ''\r\n }\r\n\r\n toNumber(val: any): number {\r\n return (val && Number(val)) ? Number(val) : 0\r\n }\r\n\r\n toDate(val: number | string | Date, format?: string, opt?: DateTimeOptions): 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 console.error('Wrong date format', val, format)\r\n throw 'Wrong date format'\r\n }\r\n\r\n getBXStrTime(date: Date): string {\r\n return this.toISOStringWithTimezone(date)\r\n }\r\n\r\n toISOStringWithTimezone(date: Date): string {\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 toBool(val: any) {\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 return false\r\n }\r\n default:\r\n return Boolean(val)\r\n }\r\n }\r\n\r\n toBXYorN(val: boolean) {\r\n return (val) ? 'Y' : 'N'\r\n }\r\n\r\n typeof(val: any) {\r\n return typeof val\r\n }\r\n\r\n typeDefClass(val: object): undefined | null | 'date' {\r\n if (val) {\r\n if (val instanceof Date) {\r\n return 'date'\r\n }\r\n return undefined\r\n } else {\r\n return null\r\n }\r\n }\r\n\r\n toJSON(val: object) {\r\n return JSON.stringify(val)\r\n }\r\n\r\n fromJSON<T>(val: string): T | undefined {\r\n return JSON.parse(val)\r\n }\r\n\r\n prepareBaseAddress(url: string, add: string = '') {\r\n if (url.search('https://') !== 0 && url.search('http://')) {\r\n url = 'https://' + url\r\n }\r\n\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 return url\r\n }\r\n\r\n getHomeAddress() {\r\n // return this.prepareBaseAddress(environment.urls.home)\r\n return this.prepareBaseAddress('b24.trace-studio.com')\r\n }\r\n\r\n dateDiff(a: Date, b: Date) {\r\n return new Date(a.valueOf() - b.valueOf())\r\n }\r\n\r\n dateDiffInDays(a: Date, b: Date) {\r\n return Math.floor(this.dateDiff(a, b).valueOf() / time.oneDayMilliseconds);\r\n }\r\n\r\n getBase64File(file: File) {\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)\r\n reader.onerror = error => reject(error)\r\n })\r\n }\r\n\r\n async getBase64FileLikeStr(file: File): Promise<{ header: string, val: string } | undefined> {\r\n let result = await this.getBase64File(file)\r\n if (typeof result === 'string') {\r\n let 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\n sumArray(numbers: number[]) {\r\n return numbers.reduce((a, b) => {\r\n return a + b;\r\n })\r\n }\r\n\r\n isItTheSameDate(date1: Date, date2: Date) {\r\n return date1.getDate() === date2.getDate()\r\n && date1.getMonth() === date2.getMonth()\r\n && date1.getFullYear() === date2.getFullYear()\r\n }\r\n\r\n toUnix(date: Date) {\r\n return Math.floor(date.valueOf() / 1000)\r\n }\r\n\r\n arrSum(x: number[]) {\r\n let s = 0;\r\n for (let i = 0; i < x.length; i++) {\r\n s += x[i]\r\n }\r\n return s\r\n }\r\n\r\n getBaseUrlHttps(url: string, component = false) {\r\n if (component) {\r\n return encodeURI(this.cropUrl(url) + '/');\r\n } else {\r\n return encodeURI('https://' + this.cropUrl(url) + '/');\r\n }\r\n }\r\n\r\n cropUrl(url: 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","import { Action, createReducer, on, props } from '@ngrx/store'\nimport { createAction } from '@ngrx/store'\nimport clone from 'just-clone'\nimport { iBXRestUser } from '../typification/rest/user/user'\n\nexport interface storeUsers {\n load: {\n all: boolean,\n department: number[]\n }\n self: iBXRestUser | undefined\n data: iBXRestUser []\n}\n\nexport const save = createAction('[Users Component] Save', props<iBXRestUser >())\nexport const saveArr = createAction('[Users Component] Save Arr', props<{ arr: iBXRestUser [] }>())\nexport const update = createAction('[Users Component] Update', props<iBXRestUser >())\nexport const loadAll = createAction('[Users Component] loadAll', props<{ load: true }>())\nexport const saveSelf = createAction('[Users Component] saveSelf', props<{ self: iBXRestUser }>())\nexport const saveIDLoadedDepartment = createAction('[Users Component] saveIDLoadedDepartment', props<{id: number[]}>())\n\nexport const initialState: storeUsers = {\n load: {\n all: false,\n department: []\n },\n self: undefined,\n data: []\n}\n\nconst _usersReducer = createReducer(\n initialState,\n on(saveIDLoadedDepartment, (s, data) => {\n let copy = clone(s)\n copy.load.department = [...copy.load.department, ...data.id]\n return copy\n }),\n on(save, (s, data) => {\n const find = s.data.find(v => v.ID === data.ID)\n if (!find) {\n const copy = clone(s)\n copy.data.push(data)\n return copy\n }\n return s\n }),\n on(saveArr, (s, data) => {\n const copy = clone(s)\n if(copy.data && copy.data.length) {\n for (const user of data.arr) {\n const find = copy.data.find(v => v.ID === user.ID)\n if (!find) {\n copy.data.push(user)\n }\n }\n } else {\n copy.data = [...data.arr]\n }\n return copy\n }),\n on(update, (s, data) => {\n const copy = clone(s)\n let find = copy.data.findIndex(v => v.ID === data.ID)\n if (find !== -1) {\n const copy = clone(s)\n copy.data.splice(find, 1, data);\n // copy.data.push(data)\n return copy\n }\n return s\n }),\n on(loadAll, (s, data) => {\n if (data.load !== s.load.all) {\n const copy = clone(s)\n copy.load.all = data.load\n return copy\n }\n return s\n }),\n on(saveSelf, (s, data) => {\n return { ...s, self: data.self}\n })\n)\n\n\nexport function usersReducer(state = initialState, action: Action) {\n return _usersReducer(state, action)\n}\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\n","import { Observable, of, take } from 'rxjs'\nimport { first, map, mergeMap, tap } from 'rxjs/operators'\nimport clone from 'just-clone'\nimport compare from 'just-compare'\nimport { iBXGetParam } from '../../typification/rest/user/get'\nimport HttpBXServices from '../../services/http/HttpBX'\nimport UserFilterSearch from '../../typification/rest/user/UserFilterSearch'\n// import ImgServices from 'bx-rest/services/api/bitrix/custom/img'\nimport { Store } from '@ngrx/store'\nimport { loadAll, saveArr, saveIDLoadedDepartment, saveSelf, storeUsers } from '../../store/users'\nimport { iCustomUserFieldInfo } from '../../typification/rest/user/CustomUserFieldInfo'\nimport { DatePipe } from '@angular/common'\nimport { BitrixApiUserMapServices } from '../../services/map/rest/user'\n// import DateTrace from 'bx-rest/services/api/trace/metods/date'\nimport SnackBarService from '../../services/snack-bar/snack-bar.service'\nimport iHttpAnswerBX from '../../typification/rest/base/httpAnswerBX'\nimport { iBXRestUser, iBXRestUserHttp, iBXRestUserHttpField } from '../../typification/rest/user/user'\nimport { $get, $list, $search, $update, $user } from '../../consts/part-name-metods'\nimport { UserFilter } from '../../typification/rest/user/userFilter'\n\n\n\nexport class BXRestUser {\n url = {\n admin: [$user, 'admin'],\n get: [$user, $get],\n self: [$user, 'current'],\n update: [$user, $update],\n search: [$user, $search],\n access: [$user, 'access'], // U1 - пользователь с id =1\n // AU - все авторизованные пользователи\n // D1 - подразделение с id=1\n // G1 - группа с id=1\n fields: [$user, 'fields'],\n userfield: {\n list: [$user, 'userfield', $list]\n }\n }\n\n def: { params: { ACTIVE: 1, start: 0 } } = {\n params: {ACTIVE: 1, start: 0}\n }\n\n user$: Observable<storeUsers>\n\n constructor(\n private http: HttpBXServices,\n private snackBar: SnackBarService,\n // private img: ImgServices,\n //private dateTrace: DateTrace,\n private store: Store<{ users: storeUsers }>,\n private userMap: BitrixApiUserMapServices,\n private datePipe: DatePipe\n ) {\n this.user$ = this.store.select('users')\n }\n\n get(params: iBXGetParam = {}): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined> {\n let copyParams = clone(params)\n this.setDefParam(copyParams)\n return this.http.post<iHttpAnswerBX<iBXRestUserHttp[]> | undefined>\n (this.url.get, copyParams, 'Не удалось получить пользователей')\n .pipe(\n tap(v => {\n if (v && v.result) {\n this.saveArrUser(v.result)\n }\n })\n )\n }\n\n getOnePage(page: number = 1) {\n return this.get({start: (page - 1) * 50}).pipe(\n map(v => {\n let res = this.http.mapResult(v)\n return (res) ? res.map(r => this.userMap.HttpToBX(r)) : undefined\n })\n )\n }\n\n getByID(id: number, reload = true): Observable<iBXRestUser | undefined> {\n return this.getByIDs([id], reload).pipe(map(v => (v && v.length) ? v[0] : undefined))\n }\n\n getByIDs(ids: number[], reload = true): Observable<iBXRestUser[] | undefined> {\n ids = Array.from(new Set(ids))\n return this.user$.pipe(\n take(1),\n mergeMap(v => {\n if (!reload) {\n let find = v.data.filter(i => ids.includes(i.ID))\n if (find && find.length === ids.length) {\n return of(find)\n }\n }\n return this.getAll({ID: ids, ACTIVE: 2}).pipe(map(v => (v && v.length) ? v : undefined))\n })\n )\n }\n\n getSelf(update = false) {\n if (update) {\n return this.getSelfHttp()\n } else {\n return this.user$.pipe(\n mergeMap(v => {\n if (v && v.self) {\n return of(v.self)\n } else {\n return this.getSelfHttp()\n }\n }),\n first()\n )\n }\n }\n\n getSelfHttp() {\n return this.http.get<iHttpAnswerBX<iBXRestUserHttp>>\n (this.url.self, {}, 'Не удалось получить пользователя')\n .pipe(\n map(v => {\n if (v && v.result) {\n return this.userMap.HttpToBX(v.result)\n }\n return undefined\n }),\n tap(v => {\n if (v) {\n this.store.dispatch(saveSelf({self: v}))\n }\n }),\n )\n }\n\n access(access: string[], textError = 'Не удалось получить права') {\n return this.http.get<iHttpAnswerBX<boolean> | undefined>(this.url.access, {ACCESS: access}, textError).pipe(\n map(v => this.http.mapResult(v))\n )\n }\n\n getByDepartment(id: number[] | number): Observable<iBXRestUser [] | undefined> {\n const ids: number[] = (typeof id === 'number') ? [id] : id\n return this.user$.pipe(\n first(),\n mergeMap(\n v => {\n if (v.load.all) {\n return of(clone(v.data.filter(i => ids.find(id => i.UF_DEPARTMENT.includes(id)))))\n }\n if (ids.every(i => v.load.department.includes(i))) {\n return of(clone(v.data.filter(i => ids.find(id => i.UF_DEPARTMENT.includes(id)))))\n }\n return this.getAll({UF_DEPARTMENT: ids}).pipe(tap(_ => {\n this.store.dispatch(saveIDLoadedDepartment({id: ids}))\n }))\n })\n )\n }\n\n getAll(params: iBXGetParam = {}): Observable<iBXRestUser [] | undefined> {\n if (!Object.keys(params).length) {\n params = clone(this.def.params)\n }\n\n const saveAllUser = compare(params, this.def.params)\n return this.user$.pipe(\n take(1),\n mergeMap(v => {\n if (v.load.all) {\n if (compare(this.def.params, params)) {\n return of(clone(v.data))\n }\n }\n\n return this.getEndArray(params).pipe(\n take(1),\n map(v => {\n if (v && v.result) {\n let cl = clone(v.result)\n return this.saveArrUser(cl)\n }\n return undefined\n }),\n )\n }),\n tap(v => {\n if (v && v.length && saveAllUser) {\n this.store.dispatch(loadAll({load: true}))\n }\n params.start = this.def.params.start\n })\n )\n }\n\n getAllByPersonalBirthday(day: number | undefined = undefined, month: number | undefined = undefined, checkWeekend = false) {\n return this.http.timeNowOnServer().pipe(\n mergeMap(date => {\n if (date) {\n let daySent = (day) ? day : date.getDate()\n let start = date.getFullYear() + 1\n let monthSent = (month) ? month : date.getMonth() + 1\n let arr: string[] = Array.from(Array(200).keys()).map(_ => {\n start--\n let res = this.datePipe.transform(new Date(start, monthSent - 1, daySent), 'YYYY-MM-dd')\n return (res) ? res : ''\n })\n // TODO: Упростить\n if (checkWeekend && date.getDay() === 1) {\n start = date.getFullYear() + 1\n arr.push(\n ...Array.from(Array(200).keys()).map(_ => {\n start--\n let res = this.datePipe.transform(new Date(start, monthSent - 1, daySent - 1), 'YYYY-MM-dd')\n return (res) ? res : ''\n })\n )\n start = date.getFullYear() + 1\n arr.push(\n ...Array.from(Array(200).keys()).map(_ => {\n start--\n let res = this.datePipe.transform(new Date(start, monthSent - 1, daySent - 2), 'YYYY-MM-dd')\n return (res) ? res : ''\n })\n )\n }\n return this.getAll({PERSONAL_BIRTHDAY: arr})\n }\n this.snackBar.warning('Не удалось получить время сервера')\n return of(undefined)\n })\n )\n }\n\n saveArrUser(users: iBXRestUserHttp[]) {\n let result: iBXRestUser [] = []\n for (const user of users) {\n result.push(this.userMap.HttpToBX(user))\n }\n this.store.dispatch(saveArr({arr: result}))\n\n return result\n }\n\n search(params: string | UserFilterSearch): Observable<iBXRestUser [] | undefined> {\n if (typeof params === 'string') {\n params = {FIND: params}\n }\n if (typeof params.ACTIVE !== 'boolean') {\n params.ACTIVE = true\n }\n return this.http.get<iHttpAnswerBX<iBXRestUserHttp[]>>(this.url.search, params, 'Сервер не отвечает на запрос поиска')\n .pipe(\n map(v => {\n if (v && v.result) {\n const mapResult = this.http.mapResult(v)\n if (mapResult) {\n return this.saveArrUser(mapResult)\n }\n }\n return undefined\n })\n )\n }\n\n fields(): Observable<iBXRestUserHttpField | undefined> {\n return this.http.get<iHttpAnswerBX<iBXRestUserHttpField>>(this.url.fields).pipe(\n map(v => this.http.mapResult(v))\n )\n }\n\n update(user: iBXRestUser, fieldUpdate: string[]): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined> {\n if (fieldUpdate && fieldUpdate.length) {\n let sendData: any = {\n ID: user.ID,\n }\n const userBX = this.userMap.BXtoHttp(user)\n for (const field of fieldUpdate) {\n if (userBX[field]) {\n sendData[field] = userBX[field]\n } else {\n this.snackBar.error('Одно из указанных полей отправлено не верно')\n }\n }\n return this.http.post(this.url.update, sendData, 'Не удалось обновить пользователя с ID' + user.ID)\n } else {\n this.snackBar.error('Не указано ни одно поле для редактирования пользователя')\n return of({})\n }\n }\n\n getEndArray(params: UserFilter = {}): Observable<iHttpAnswerBX<iBXRestUserHttp[]> | undefined> {\n return this.get(params).pipe(\n mergeMap(items => {\n if (items && items.result && typeof items.result === 'object') {\n if (items.next) {\n params.start = items.next\n return this.getEndArray(params).pipe(map(vEnd => {\n if (vEnd && items.result && vEnd.result) {\n return {result: [...items.result, ...vEnd.result]}\n }\n return (items) ? items : undefined\n }))\n }\n return of(items)\n } else {\n return of(undefined)\n }\n }),\n )\n }\n\n // getUrlCompressedImage(url: string, width: number, height: number) {\n // return this.img.getUrlCompressed(url, width, height)\n // }\n\n setDefParam(params: iBXGetParam) {\n if (!params.hasOwnProperty('ACTIVE')) {\n params.ACTIVE = this.def.params.ACTIVE\n }\n if (params.ACTIVE && params.ACTIVE === 2) {\n delete params.ACTIVE\n }\n if (!params.hasOwnProperty('start')) {\n params.start = this.def.params.start\n }\n\n if (params.UF_DEPARTMENT && !params.UF_DEPARTMENT.length) {\n delete params.UF_DEPARTMENT\n }\n }\n\n getInfoAboutCustomFieldsBX() {\n return this.http.get<iHttpAnswerBX<iCustomUserFieldInfo[]>>(this.url.userfield.list).pipe(\n map(v => this.http.mapResult(v))\n )\n }\n\n itIsAdmin() {\n return this.http.get<iHttpAnswerBX<boolean>>(this.url.admin).pipe(\n map(v => this.http.mapResult(v))\n )\n }\n}\n","/*\n * Public API Surface of bx-rest\n */\n\nexport * from './request/bx-rest.module'\nexport * from './services/base'\nexport * from './request/user/user'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/fesm2020/bx-rest.mjs
CHANGED
|
@@ -1,20 +1,13 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { NgModule, Injectable } from '@angular/core';
|
|
3
3
|
import { MatIconModule } from '@angular/material/icon';
|
|
4
4
|
import { MatButtonModule } from '@angular/material/button';
|
|
5
5
|
import { DateTime } from 'luxon';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
BxRestService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BxRestService, providedIn: 'root' });
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BxRestService, decorators: [{
|
|
13
|
-
type: Injectable,
|
|
14
|
-
args: [{
|
|
15
|
-
providedIn: 'root'
|
|
16
|
-
}]
|
|
17
|
-
}], ctorParameters: function () { return []; } });
|
|
6
|
+
import { take, of } from 'rxjs';
|
|
7
|
+
import { tap, map, mergeMap, first } from 'rxjs/operators';
|
|
8
|
+
import clone from 'just-clone';
|
|
9
|
+
import compare from 'just-compare';
|
|
10
|
+
import { createAction, props, createReducer, on } from '@ngrx/store';
|
|
18
11
|
|
|
19
12
|
class BxRestModule {
|
|
20
13
|
}
|
|
@@ -213,6 +206,339 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
213
206
|
}]
|
|
214
207
|
}] });
|
|
215
208
|
|
|
209
|
+
const save = createAction('[Users Component] Save', props());
|
|
210
|
+
const saveArr = createAction('[Users Component] Save Arr', props());
|
|
211
|
+
const update = createAction('[Users Component] Update', props());
|
|
212
|
+
const loadAll = createAction('[Users Component] loadAll', props());
|
|
213
|
+
const saveSelf = createAction('[Users Component] saveSelf', props());
|
|
214
|
+
const saveIDLoadedDepartment = createAction('[Users Component] saveIDLoadedDepartment', props());
|
|
215
|
+
const initialState = {
|
|
216
|
+
load: {
|
|
217
|
+
all: false,
|
|
218
|
+
department: []
|
|
219
|
+
},
|
|
220
|
+
self: undefined,
|
|
221
|
+
data: []
|
|
222
|
+
};
|
|
223
|
+
const _usersReducer = createReducer(initialState, on(saveIDLoadedDepartment, (s, data) => {
|
|
224
|
+
let copy = clone(s);
|
|
225
|
+
copy.load.department = [...copy.load.department, ...data.id];
|
|
226
|
+
return copy;
|
|
227
|
+
}), on(save, (s, data) => {
|
|
228
|
+
const find = s.data.find(v => v.ID === data.ID);
|
|
229
|
+
if (!find) {
|
|
230
|
+
const copy = clone(s);
|
|
231
|
+
copy.data.push(data);
|
|
232
|
+
return copy;
|
|
233
|
+
}
|
|
234
|
+
return s;
|
|
235
|
+
}), on(saveArr, (s, data) => {
|
|
236
|
+
const copy = clone(s);
|
|
237
|
+
if (copy.data && copy.data.length) {
|
|
238
|
+
for (const user of data.arr) {
|
|
239
|
+
const find = copy.data.find(v => v.ID === user.ID);
|
|
240
|
+
if (!find) {
|
|
241
|
+
copy.data.push(user);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
copy.data = [...data.arr];
|
|
247
|
+
}
|
|
248
|
+
return copy;
|
|
249
|
+
}), on(update, (s, data) => {
|
|
250
|
+
const copy = clone(s);
|
|
251
|
+
let find = copy.data.findIndex(v => v.ID === data.ID);
|
|
252
|
+
if (find !== -1) {
|
|
253
|
+
const copy = clone(s);
|
|
254
|
+
copy.data.splice(find, 1, data);
|
|
255
|
+
// copy.data.push(data)
|
|
256
|
+
return copy;
|
|
257
|
+
}
|
|
258
|
+
return s;
|
|
259
|
+
}), on(loadAll, (s, data) => {
|
|
260
|
+
if (data.load !== s.load.all) {
|
|
261
|
+
const copy = clone(s);
|
|
262
|
+
copy.load.all = data.load;
|
|
263
|
+
return copy;
|
|
264
|
+
}
|
|
265
|
+
return s;
|
|
266
|
+
}), on(saveSelf, (s, data) => {
|
|
267
|
+
return { ...s, self: data.self };
|
|
268
|
+
}));
|
|
269
|
+
function usersReducer(state = initialState, action) {
|
|
270
|
+
return _usersReducer(state, action);
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
const $get = 'get';
|
|
274
|
+
const $add = 'add';
|
|
275
|
+
const $set = 'set';
|
|
276
|
+
const $event = 'event';
|
|
277
|
+
const $update = 'update';
|
|
278
|
+
const $user = 'user';
|
|
279
|
+
const $task = 'task';
|
|
280
|
+
const $calendar = 'calendar';
|
|
281
|
+
const $meeting = 'meeting';
|
|
282
|
+
const $list = 'list';
|
|
283
|
+
const $search = 'search';
|
|
284
|
+
|
|
285
|
+
class BXRestUser {
|
|
286
|
+
constructor(http, snackBar,
|
|
287
|
+
// private img: ImgServices,
|
|
288
|
+
//private dateTrace: DateTrace,
|
|
289
|
+
store, userMap, datePipe) {
|
|
290
|
+
this.http = http;
|
|
291
|
+
this.snackBar = snackBar;
|
|
292
|
+
this.store = store;
|
|
293
|
+
this.userMap = userMap;
|
|
294
|
+
this.datePipe = datePipe;
|
|
295
|
+
this.url = {
|
|
296
|
+
admin: [$user, 'admin'],
|
|
297
|
+
get: [$user, $get],
|
|
298
|
+
self: [$user, 'current'],
|
|
299
|
+
update: [$user, $update],
|
|
300
|
+
search: [$user, $search],
|
|
301
|
+
access: [$user, 'access'],
|
|
302
|
+
// AU - все авторизованные пользователи
|
|
303
|
+
// D1 - подразделение с id=1
|
|
304
|
+
// G1 - группа с id=1
|
|
305
|
+
fields: [$user, 'fields'],
|
|
306
|
+
userfield: {
|
|
307
|
+
list: [$user, 'userfield', $list]
|
|
308
|
+
}
|
|
309
|
+
};
|
|
310
|
+
this.def = {
|
|
311
|
+
params: { ACTIVE: 1, start: 0 }
|
|
312
|
+
};
|
|
313
|
+
this.user$ = this.store.select('users');
|
|
314
|
+
}
|
|
315
|
+
get(params = {}) {
|
|
316
|
+
let copyParams = clone(params);
|
|
317
|
+
this.setDefParam(copyParams);
|
|
318
|
+
return this.http.post(this.url.get, copyParams, 'Не удалось получить пользователей')
|
|
319
|
+
.pipe(tap(v => {
|
|
320
|
+
if (v && v.result) {
|
|
321
|
+
this.saveArrUser(v.result);
|
|
322
|
+
}
|
|
323
|
+
}));
|
|
324
|
+
}
|
|
325
|
+
getOnePage(page = 1) {
|
|
326
|
+
return this.get({ start: (page - 1) * 50 }).pipe(map(v => {
|
|
327
|
+
let res = this.http.mapResult(v);
|
|
328
|
+
return (res) ? res.map(r => this.userMap.HttpToBX(r)) : undefined;
|
|
329
|
+
}));
|
|
330
|
+
}
|
|
331
|
+
getByID(id, reload = true) {
|
|
332
|
+
return this.getByIDs([id], reload).pipe(map(v => (v && v.length) ? v[0] : undefined));
|
|
333
|
+
}
|
|
334
|
+
getByIDs(ids, reload = true) {
|
|
335
|
+
ids = Array.from(new Set(ids));
|
|
336
|
+
return this.user$.pipe(take(1), mergeMap(v => {
|
|
337
|
+
if (!reload) {
|
|
338
|
+
let find = v.data.filter(i => ids.includes(i.ID));
|
|
339
|
+
if (find && find.length === ids.length) {
|
|
340
|
+
return of(find);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
return this.getAll({ ID: ids, ACTIVE: 2 }).pipe(map(v => (v && v.length) ? v : undefined));
|
|
344
|
+
}));
|
|
345
|
+
}
|
|
346
|
+
getSelf(update = false) {
|
|
347
|
+
if (update) {
|
|
348
|
+
return this.getSelfHttp();
|
|
349
|
+
}
|
|
350
|
+
else {
|
|
351
|
+
return this.user$.pipe(mergeMap(v => {
|
|
352
|
+
if (v && v.self) {
|
|
353
|
+
return of(v.self);
|
|
354
|
+
}
|
|
355
|
+
else {
|
|
356
|
+
return this.getSelfHttp();
|
|
357
|
+
}
|
|
358
|
+
}), first());
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
getSelfHttp() {
|
|
362
|
+
return this.http.get(this.url.self, {}, 'Не удалось получить пользователя')
|
|
363
|
+
.pipe(map(v => {
|
|
364
|
+
if (v && v.result) {
|
|
365
|
+
return this.userMap.HttpToBX(v.result);
|
|
366
|
+
}
|
|
367
|
+
return undefined;
|
|
368
|
+
}), tap(v => {
|
|
369
|
+
if (v) {
|
|
370
|
+
this.store.dispatch(saveSelf({ self: v }));
|
|
371
|
+
}
|
|
372
|
+
}));
|
|
373
|
+
}
|
|
374
|
+
access(access, textError = 'Не удалось получить права') {
|
|
375
|
+
return this.http.get(this.url.access, { ACCESS: access }, textError).pipe(map(v => this.http.mapResult(v)));
|
|
376
|
+
}
|
|
377
|
+
getByDepartment(id) {
|
|
378
|
+
const ids = (typeof id === 'number') ? [id] : id;
|
|
379
|
+
return this.user$.pipe(first(), mergeMap(v => {
|
|
380
|
+
if (v.load.all) {
|
|
381
|
+
return of(clone(v.data.filter(i => ids.find(id => i.UF_DEPARTMENT.includes(id)))));
|
|
382
|
+
}
|
|
383
|
+
if (ids.every(i => v.load.department.includes(i))) {
|
|
384
|
+
return of(clone(v.data.filter(i => ids.find(id => i.UF_DEPARTMENT.includes(id)))));
|
|
385
|
+
}
|
|
386
|
+
return this.getAll({ UF_DEPARTMENT: ids }).pipe(tap(_ => {
|
|
387
|
+
this.store.dispatch(saveIDLoadedDepartment({ id: ids }));
|
|
388
|
+
}));
|
|
389
|
+
}));
|
|
390
|
+
}
|
|
391
|
+
getAll(params = {}) {
|
|
392
|
+
if (!Object.keys(params).length) {
|
|
393
|
+
params = clone(this.def.params);
|
|
394
|
+
}
|
|
395
|
+
const saveAllUser = compare(params, this.def.params);
|
|
396
|
+
return this.user$.pipe(take(1), mergeMap(v => {
|
|
397
|
+
if (v.load.all) {
|
|
398
|
+
if (compare(this.def.params, params)) {
|
|
399
|
+
return of(clone(v.data));
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
return this.getEndArray(params).pipe(take(1), map(v => {
|
|
403
|
+
if (v && v.result) {
|
|
404
|
+
let cl = clone(v.result);
|
|
405
|
+
return this.saveArrUser(cl);
|
|
406
|
+
}
|
|
407
|
+
return undefined;
|
|
408
|
+
}));
|
|
409
|
+
}), tap(v => {
|
|
410
|
+
if (v && v.length && saveAllUser) {
|
|
411
|
+
this.store.dispatch(loadAll({ load: true }));
|
|
412
|
+
}
|
|
413
|
+
params.start = this.def.params.start;
|
|
414
|
+
}));
|
|
415
|
+
}
|
|
416
|
+
getAllByPersonalBirthday(day = undefined, month = undefined, checkWeekend = false) {
|
|
417
|
+
return this.http.timeNowOnServer().pipe(mergeMap(date => {
|
|
418
|
+
if (date) {
|
|
419
|
+
let daySent = (day) ? day : date.getDate();
|
|
420
|
+
let start = date.getFullYear() + 1;
|
|
421
|
+
let monthSent = (month) ? month : date.getMonth() + 1;
|
|
422
|
+
let arr = Array.from(Array(200).keys()).map(_ => {
|
|
423
|
+
start--;
|
|
424
|
+
let res = this.datePipe.transform(new Date(start, monthSent - 1, daySent), 'YYYY-MM-dd');
|
|
425
|
+
return (res) ? res : '';
|
|
426
|
+
});
|
|
427
|
+
// TODO: Упростить
|
|
428
|
+
if (checkWeekend && date.getDay() === 1) {
|
|
429
|
+
start = date.getFullYear() + 1;
|
|
430
|
+
arr.push(...Array.from(Array(200).keys()).map(_ => {
|
|
431
|
+
start--;
|
|
432
|
+
let res = this.datePipe.transform(new Date(start, monthSent - 1, daySent - 1), 'YYYY-MM-dd');
|
|
433
|
+
return (res) ? res : '';
|
|
434
|
+
}));
|
|
435
|
+
start = date.getFullYear() + 1;
|
|
436
|
+
arr.push(...Array.from(Array(200).keys()).map(_ => {
|
|
437
|
+
start--;
|
|
438
|
+
let res = this.datePipe.transform(new Date(start, monthSent - 1, daySent - 2), 'YYYY-MM-dd');
|
|
439
|
+
return (res) ? res : '';
|
|
440
|
+
}));
|
|
441
|
+
}
|
|
442
|
+
return this.getAll({ PERSONAL_BIRTHDAY: arr });
|
|
443
|
+
}
|
|
444
|
+
this.snackBar.warning('Не удалось получить время сервера');
|
|
445
|
+
return of(undefined);
|
|
446
|
+
}));
|
|
447
|
+
}
|
|
448
|
+
saveArrUser(users) {
|
|
449
|
+
let result = [];
|
|
450
|
+
for (const user of users) {
|
|
451
|
+
result.push(this.userMap.HttpToBX(user));
|
|
452
|
+
}
|
|
453
|
+
this.store.dispatch(saveArr({ arr: result }));
|
|
454
|
+
return result;
|
|
455
|
+
}
|
|
456
|
+
search(params) {
|
|
457
|
+
if (typeof params === 'string') {
|
|
458
|
+
params = { FIND: params };
|
|
459
|
+
}
|
|
460
|
+
if (typeof params.ACTIVE !== 'boolean') {
|
|
461
|
+
params.ACTIVE = true;
|
|
462
|
+
}
|
|
463
|
+
return this.http.get(this.url.search, params, 'Сервер не отвечает на запрос поиска')
|
|
464
|
+
.pipe(map(v => {
|
|
465
|
+
if (v && v.result) {
|
|
466
|
+
const mapResult = this.http.mapResult(v);
|
|
467
|
+
if (mapResult) {
|
|
468
|
+
return this.saveArrUser(mapResult);
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
return undefined;
|
|
472
|
+
}));
|
|
473
|
+
}
|
|
474
|
+
fields() {
|
|
475
|
+
return this.http.get(this.url.fields).pipe(map(v => this.http.mapResult(v)));
|
|
476
|
+
}
|
|
477
|
+
update(user, fieldUpdate) {
|
|
478
|
+
if (fieldUpdate && fieldUpdate.length) {
|
|
479
|
+
let sendData = {
|
|
480
|
+
ID: user.ID,
|
|
481
|
+
};
|
|
482
|
+
const userBX = this.userMap.BXtoHttp(user);
|
|
483
|
+
for (const field of fieldUpdate) {
|
|
484
|
+
if (userBX[field]) {
|
|
485
|
+
sendData[field] = userBX[field];
|
|
486
|
+
}
|
|
487
|
+
else {
|
|
488
|
+
this.snackBar.error('Одно из указанных полей отправлено не верно');
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
return this.http.post(this.url.update, sendData, 'Не удалось обновить пользователя с ID' + user.ID);
|
|
492
|
+
}
|
|
493
|
+
else {
|
|
494
|
+
this.snackBar.error('Не указано ни одно поле для редактирования пользователя');
|
|
495
|
+
return of({});
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
getEndArray(params = {}) {
|
|
499
|
+
return this.get(params).pipe(mergeMap(items => {
|
|
500
|
+
if (items && items.result && typeof items.result === 'object') {
|
|
501
|
+
if (items.next) {
|
|
502
|
+
params.start = items.next;
|
|
503
|
+
return this.getEndArray(params).pipe(map(vEnd => {
|
|
504
|
+
if (vEnd && items.result && vEnd.result) {
|
|
505
|
+
return { result: [...items.result, ...vEnd.result] };
|
|
506
|
+
}
|
|
507
|
+
return (items) ? items : undefined;
|
|
508
|
+
}));
|
|
509
|
+
}
|
|
510
|
+
return of(items);
|
|
511
|
+
}
|
|
512
|
+
else {
|
|
513
|
+
return of(undefined);
|
|
514
|
+
}
|
|
515
|
+
}));
|
|
516
|
+
}
|
|
517
|
+
// getUrlCompressedImage(url: string, width: number, height: number) {
|
|
518
|
+
// return this.img.getUrlCompressed(url, width, height)
|
|
519
|
+
// }
|
|
520
|
+
setDefParam(params) {
|
|
521
|
+
if (!params.hasOwnProperty('ACTIVE')) {
|
|
522
|
+
params.ACTIVE = this.def.params.ACTIVE;
|
|
523
|
+
}
|
|
524
|
+
if (params.ACTIVE && params.ACTIVE === 2) {
|
|
525
|
+
delete params.ACTIVE;
|
|
526
|
+
}
|
|
527
|
+
if (!params.hasOwnProperty('start')) {
|
|
528
|
+
params.start = this.def.params.start;
|
|
529
|
+
}
|
|
530
|
+
if (params.UF_DEPARTMENT && !params.UF_DEPARTMENT.length) {
|
|
531
|
+
delete params.UF_DEPARTMENT;
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
getInfoAboutCustomFieldsBX() {
|
|
535
|
+
return this.http.get(this.url.userfield.list).pipe(map(v => this.http.mapResult(v)));
|
|
536
|
+
}
|
|
537
|
+
itIsAdmin() {
|
|
538
|
+
return this.http.get(this.url.admin).pipe(map(v => this.http.mapResult(v)));
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
|
|
216
542
|
/*
|
|
217
543
|
* Public API Surface of bx-rest
|
|
218
544
|
*/
|
|
@@ -221,5 +547,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
|
221
547
|
* Generated bundle index. Do not edit.
|
|
222
548
|
*/
|
|
223
549
|
|
|
224
|
-
export { BaseServices, BxRestModule
|
|
550
|
+
export { BXRestUser, BaseServices, BxRestModule };
|
|
225
551
|
//# sourceMappingURL=bx-rest.mjs.map
|