bx-rest
Version:
Bitrix24 REST API client angular, vue or typescript
120 lines (119 loc) • 4.48 kB
TypeScript
import { iBXRestParamSort } from '../../base/sort';
import { iBXRestYesNo } from '../../base/yes-no';
import { iBXRestFilterGenerator } from '../../base/filter-generator';
import { iBXRestPagination } from '../../base/api-pagination-bx';
import { iBXRestHttpTask, iBXRestHttpTaskGroupHttp, iBXRestTask } from '../task';
import { iBXRestTaskFieldsName } from '../base/fields-name';
import { SnakeToCamelCase } from 'snake-camel-types';
import { ToUpperCaseKeys } from '../../../base/upper-case-keys';
import { ObjectToSnake } from 'ts-case-convert/lib/caseConvert';
export interface iBXRestTasksTaskListHttp<S extends iBXRestTaskFieldsName[], CustomFields = object> {
tasks: iBXRestHttpTasksTaskList<S, CustomFields>[] | undefined;
}
export type iBXRestHttpTasksTaskList<S extends iBXRestTaskFieldsName[], CustomFields = object> = {
[K in SnakeToCamelCase<Lowercase<S[number]>>]: iBXRestHttpTask[K];
} & CustomFields;
export type iBXRestTasksTaskList<S extends iBXRestTaskFieldsName[], CustomFields = object> = {
[K in SnakeToCamelCase<Lowercase<S[number]>>]: iBXRestTask[K];
} & CustomFields;
/**
* Если при запросе tasks.task.list не указывать выводимые поля (select) отдаст этот набор
*/
export interface iBXRestTasksTaskListHttpDefault 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;
}
/**
* Если при запросе tasks.task.list не указывать выводимые поля (select) отдаст этот набор
*/
export interface iBXRestTasksTaskListDefault extends Partial<iBXRestTask> {
closedDate: Date | undefined;
createdDate: Date;
durationFact: string;
group: iBXRestHttpTaskGroupHttp;
additionalData: any[];
id: number;
image: string;
membersCount: number;
name: string;
opened: boolean;
groupId: number;
projectId: string;
timeEstimate: string;
timeSpentInLogs: string;
title: string;
}
export interface iBXRestParamTasksList<CustomFields extends object> extends iBXRestPagination {
order?: iBXRestParamTaskListOrder;
filter?: iBXRestFilterGenerator<iBXRestParamTaskListFilter>;
select?: (iBXRestTaskFieldsName | keyof ToUpperCaseKeys<ObjectToSnake<CustomFields>> | '*' | 'UF_*')[];
}
export interface iBXRestParamTaskListOrder {
ID?: iBXRestParamSort;
TITLE?: iBXRestParamSort;
TIME_SPENT_IN_LOGS?: iBXRestParamSort;
DATE_START?: iBXRestParamSort;
CREATED_DATE?: iBXRestParamSort;
CHANGED_DATE?: iBXRestParamSort;
CLOSED_DATE?: iBXRestParamSort;
START_DATE_PLAN?: iBXRestParamSort;
END_DATE_PLAN?: iBXRestParamSort;
DEADLINE?: iBXRestParamSort;
REAL_STATUS?: iBXRestParamSort;
STATUS_COMPLETE?: iBXRestParamSort;
PRIORITY?: iBXRestParamSort;
MARK?: iBXRestParamSort;
CREATED_BY_LAST_NAME?: iBXRestParamSort;
RESPONSIBLE_LAST_NAME?: iBXRestParamSort;
GROUP_ID?: iBXRestParamSort;
TIME_ESTIMATE?: iBXRestParamSort;
ALLOW_CHANGE_DEADLINE?: iBXRestParamSort;
ALLOW_TIME_TRACKING?: iBXRestParamSort;
MATCH_WORK_TIME?: iBXRestParamSort;
FAVORITE?: iBXRestParamSort;
SORTING?: iBXRestParamSort;
MESSAGE_ID?: iBXRestParamSort;
}
export interface iBXRestParamTaskListFilter {
ID?: number | number[];
ACTIVITY_DATE?: string;
PARENT_ID?: number;
GROUP_ID?: number | number[];
CREATED_BY?: number | number[];
STATUS_CHANGED_BY?: number;
PRIORITY?: number;
FORUM_TOPIC_ID?: number;
RESPONSIBLE_ID?: number | number[];
TITLE?: string;
TAG?: string;
REAL_STATUS?: number | number[];
STATUS?: number | number[];
MARK?: number;
SITE_ID?: number;
ADD_IN_REPORT?: iBXRestYesNo;
ALLOW_TIME_TRACKING?: iBXRestYesNo;
DATE_START?: Date | string;
DEADLINE?: Date | string;
CREATED_DATE?: Date | string;
CLOSED_DATE?: Date | string;
CHANGED_DATE?: Date | string;
ACCOMPLICE?: number | number[];
AUDITOR?: number | number[];
DEPENDS_ON?: number;
ONLY_ROOT_TASKS?: iBXRestYesNo;
STAGE_ID?: number | number[] | string | string[];
UF_CRM_TASK?: number | number[] | string | string[] | any;
}