@bitrix24/b24jssdk
Version:
Bitrix24 REST API JavaScript SDK
1 lines • 5.33 kB
Source Map (JSON)
{"version":3,"file":"channel-manager.mjs","sources":["../../../src/pullClient/channel-manager.ts"],"sourcesContent":["import type { AjaxResult } from '../core/http/ajax-result'\nimport type { TypeChanel, TypeChannelManagerParams, TypePublicIdDescriptor } from '../types/pull'\nimport type { TypeB24 } from '../types/b24'\nimport type { SuccessPayload } from '../types/payloads'\nimport type { LoggerInterface } from '../logger'\nimport { LoggerFactory } from '../logger'\n\nexport class ChannelManager {\n private _logger: LoggerInterface\n private _publicIds: Map<number, TypeChanel>\n private _restClient: TypeB24\n private _getPublicListMethod: string\n\n constructor(params: TypeChannelManagerParams) {\n this._logger = LoggerFactory.createNullLogger()\n this._publicIds = new Map()\n\n this._restClient = params.b24\n this._getPublicListMethod = params.getPublicListMethod\n }\n\n setLogger(logger: LoggerInterface): void {\n this._logger = logger\n }\n\n getLogger(): LoggerInterface {\n return this._logger\n }\n\n /**\n * @param {Array} users Array of user ids.\n * @return {Promise}\n */\n async getPublicIds(users: number[]): Promise<Record<number, TypeChanel>> {\n const now = new Date()\n\n const result: Record<number, TypeChanel> = {}\n const unknownUsers: number[] = []\n\n for (const userId of users) {\n const chanel = this._publicIds.get(userId)\n\n if (chanel && chanel.end > now) {\n result[chanel.userId] = chanel\n } else {\n unknownUsers.push(userId)\n }\n }\n\n if (unknownUsers.length === 0) {\n return Promise.resolve(result)\n }\n\n /**\n * @memo we not use Promise.reject()\n */\n return new Promise((resolve) => {\n this._restClient\n .callMethod(this._getPublicListMethod, {\n users: unknownUsers\n })\n .then((response: AjaxResult) => {\n const data = (response.getData() as SuccessPayload<TypePublicIdDescriptor>).result\n\n /**\n * @memo test this\n */\n this.setPublicIds(Object.values(data))\n\n for (const userId of unknownUsers) {\n const chanel = this._publicIds.get(userId)\n if (chanel) {\n result[chanel.userId] = chanel\n }\n }\n\n resolve(result)\n })\n .catch((error: Error | string) => {\n this.getLogger().error('some error in getPublicIds', { error })\n return resolve({})\n })\n })\n }\n\n /**\n * @param {TypePublicIdDescriptor[]} publicIds\n */\n public setPublicIds(publicIds: TypePublicIdDescriptor[]): void {\n publicIds.forEach((publicIdDescriptor: TypePublicIdDescriptor) => {\n const userId = Number(publicIdDescriptor.user_id)\n this._publicIds.set(userId, {\n userId: userId,\n publicId: publicIdDescriptor.public_id,\n signature: publicIdDescriptor.signature,\n start: new Date(publicIdDescriptor.start),\n end: new Date(publicIdDescriptor.end)\n } as TypeChanel)\n })\n }\n}\n"],"names":[],"mappings":"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"}