UNPKG

@crowdin/crowdin-api-client

Version:
78 lines (77 loc) 2.99 kB
import { CrowdinApi, PaginationOptions, PatchRequest, ResponseList, ResponseObject } from '../core'; export declare class Fields extends CrowdinApi { /** * @param options optional parameters for the request * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.fields.getMany */ listFields(options?: FieldsModel.ListFieldsParams): Promise<ResponseList<FieldsModel.Field>>; /** * @param request request body * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.fields.post */ addField(request: FieldsModel.AddFieldRequest): Promise<ResponseObject<FieldsModel.Field>>; /** * @param fieldId field identifier * @see https://developer.crowdin.com/enterprise/api/v2/#operation/api.fields.get */ getField(fieldId: number): Promise<ResponseObject<FieldsModel.Field>>; /** * @param fieldId field identifier * @see https://developer.crowdin.com/api/v2/#operation/api.fields.delete */ deleteField(fieldId: number): Promise<void>; /** * @param fieldId field identifier * @param request request body * @see https://developer.crowdin.com/api/v2/#operation/api.fields.patch */ editField(fieldId: number, request: PatchRequest[]): Promise<ResponseObject<FieldsModel.Field>>; } export declare namespace FieldsModel { type Entity = 'project' | 'user' | 'task' | 'file' | 'translation' | 'string'; type Type = 'checkbox' | 'radiobuttons' | 'date' | 'datetime' | 'number' | 'labels' | 'select' | 'multiselect' | 'text' | 'textarea' | 'url'; type Place = 'projectCreateModal' | 'projectHeader' | 'projectDetails' | 'projectCrowdsourceDetails' | 'projectSettings' | 'projectTaskEditCreate' | 'projectTaskDetails' | 'projectTaskBoardCard' | 'fileDetails' | 'fileSettings' | 'userEditModal' | 'userDetails' | 'userPopover' | 'stringEditModal' | 'stringDetails' | 'translationUnderContent'; interface Location { place: Place; } interface Option { label: string; value: string; } interface OtherFieldConfig { locations: Location[]; } interface ListFieldConfig extends OtherFieldConfig { options: Option[]; } interface NumberFieldConfig extends OtherFieldConfig { min: number; max: number; units: string; } type Config = ListFieldConfig | NumberFieldConfig | OtherFieldConfig; interface ListFieldsParams extends PaginationOptions { search?: string; entity?: Entity; type?: Type; } interface Field { id: number; name: string; slug: string; type: Type; description: string; entities: Entity[]; config: Config; createdAt: string; updatedAt: string; } interface AddFieldRequest { name: string; slug: string; type: Type; description?: string; entities: Entity[]; config?: Config; } }