UNPKG

@lokalise/node-api

Version:
88 lines (76 loc) 2.1 kB
import type { BulkResult } from "../interfaces/bulk_result.js"; import type { PaginatedResult } from "../interfaces/paginated_result.js"; import { Language } from "../models/language.js"; import type { PaginationParams, ProjectOnly, ProjectWithPagination, } from "../types/common_get_params.js"; import type { CreateLanguageParams, LanguageDeleted, UpdateLanguageParams, } from "../types/languages.js"; import { BaseCollection } from "./base_collection.js"; export class Languages extends BaseCollection<Language> { protected static override prefixURI = "projects/{!:project_id}/languages/{:id}"; protected get elementClass(): new ( json: Record<string, unknown>, ) => Language { return Language; } protected override get rootElementName(): string { return "languages"; } protected override get rootElementNameSingular(): string | null { return "language"; } system_languages( params: PaginationParams = {}, ): Promise<PaginatedResult<Language>> { return this.createPromise( "GET", params, this.populateArrayFromJson, null, "system/languages", ) as Promise<PaginatedResult<Language>>; } list( request_params: ProjectWithPagination, ): Promise<PaginatedResult<Language>> { return this.doList(request_params) as Promise<PaginatedResult<Language>>; } create( raw_body: CreateLanguageParams | CreateLanguageParams[], request_params: ProjectOnly, ): Promise<BulkResult<Language>> { const body = { languages: this.objToArray(raw_body) }; return this.createPromise( "POST", request_params, this.populateArrayFromJsonBulk, body, ); } get( lang_id: string | number, request_params: ProjectOnly, ): Promise<Language> { return this.doGet(lang_id, request_params); } update( lang_id: string | number, lang_params: UpdateLanguageParams, request_params: ProjectOnly, ): Promise<Language> { return this.doUpdate(lang_id, lang_params, request_params); } delete( lang_id: string | number, request_params: ProjectOnly, ): Promise<LanguageDeleted> { return super.doDelete(lang_id, request_params); } }