@crowdin/crowdin-api-client
Version:
JavaScript library for Crowdin API
78 lines (77 loc) • 2.99 kB
TypeScript
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;
}
}