UNPKG

@lokalise/node-api

Version:
73 lines (61 loc) 1.94 kB
import type { PaginatedResult } from "../interfaces/paginated_result.js"; import { Contributor } from "../models/contributor.js"; import type { ProjectOnly, ProjectWithPagination, } from "../types/common_get_params.js"; import type { ContributorCreateData, ContributorDeleted, ContributorUpdateData, } from "../types/contributors.js"; import { BaseCollection } from "./base_collection.js"; export class Contributors extends BaseCollection<Contributor> { protected static override prefixURI = "projects/{!:project_id}/contributors/{:id}"; protected get elementClass(): new ( json: Record<string, unknown>, ) => Contributor { return Contributor; } protected override get rootElementName(): string { return "contributors"; } protected override get rootElementNameSingular(): string | null { return "contributor"; } list( request_params: ProjectWithPagination, ): Promise<PaginatedResult<Contributor>> { return this.doList(request_params) as Promise<PaginatedResult<Contributor>>; } create( contributor_params: ContributorCreateData | ContributorCreateData[], request_params: ProjectOnly, ): Promise<Contributor[]> { const body = { contributors: this.objToArray(contributor_params) }; return this.doCreateArray(body, request_params); } get( contributor_id: string | number, request_params: ProjectOnly, ): Promise<Contributor> { return this.doGet(contributor_id, request_params); } me(request_params: ProjectOnly): Promise<Contributor> { return this.doGet("me", request_params); } update( contributor_id: string | number, contributor_params: ContributorUpdateData, request_params: ProjectOnly, ): Promise<Contributor> { return this.doUpdate(contributor_id, contributor_params, request_params); } delete( contributor_id: string | number, request_params: ProjectOnly, ): Promise<ContributorDeleted> { return this.doDelete(contributor_id, request_params); } }