bx-rest
Version:
Bitrix24 REST API client angular, vue or typescript
53 lines (52 loc) • 2.19 kB
TypeScript
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 {};