UNPKG

bx-rest

Version:

Bitrix24 REST API client angular, vue or typescript

53 lines (52 loc) 2.19 kB
import { iBXRestTaskFieldsName } from '../base/fields-name'; import { iBXRestHttpTask, iBXRestHttpTaskGroupHttp, iBXRestTask } from '../task'; import { SnakeToCamelCase } from 'snake-camel-types'; import { ToUpperCaseKeys } from '../../../base/upper-case-keys'; import { ObjectToSnake } from 'ts-case-convert/lib/caseConvert'; export interface iBXRestParamTasksTaskGet<CustomFields extends object> { taskId: number; select?: (iBXRestTaskFieldsName | keyof ToUpperCaseKeys<ObjectToSnake<CustomFields>> | '*' | 'UF_*')[]; } export interface iBXRestParamTasksTaskGetBase { taskId: number; select?: (iBXRestTaskFieldsName | '*' | 'UF_*')[]; } export interface iBXRestTasksTaskGetHttpBase<S extends iBXRestTaskFieldsName[]> { task: iBXRestHttpTasksTaskGetBase<S> | undefined; } export interface iBXRestTasksTaskGetHttp<S extends iBXRestTaskFieldsName[], CustomFields = object> { task: iBXRestHttpTasksTaskGet<S, CustomFields> | undefined; } export type iBXRestTasksTaskGetBase<S extends iBXRestTaskFieldsName[]> = { [K in SnakeToCamelCase<Lowercase<S[number]>>]: iBXRestTask[K]; }; export type iBXRestTasksTaskGet<S extends iBXRestTaskFieldsName[], CustomFields> = { [K in SnakeToCamelCase<Lowercase<S[number]>>]: iBXRestTask[K]; } & CustomFields; export type iBXRestHttpTasksTaskGetBase<S extends iBXRestTaskFieldsName[]> = { [K in SnakeToCamelCase<Lowercase<S[number]>>]: iBXRestHttpTask[K]; }; type iBXRestHttpTasksTaskGet<S extends iBXRestTaskFieldsName[], CustomFields> = { [K in SnakeToCamelCase<Lowercase<S[number]>>]: iBXRestHttpTask[K]; } & CustomFields; /** * Если при запросе tasks.task.get не указывать выводимые поля (select) отдаст этот набор */ export interface iBXRestTasksTaskGetHttpDefault extends iBXRestHttpTask { closedDate: null; createdDate: string; durationFact: string; group: iBXRestHttpTaskGroupHttp; additionalData: any[]; id: string; image: string; membersCount: number; name: string; opened: boolean; groupId: string; projectId: string; timeEstimate: string; timeSpentInLogs: string; title: string; } export {};