@lokalise/node-api
Version:
Official Lokalise API 2.0 Node.js client
73 lines (61 loc) • 1.94 kB
text/typescript
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);
}
}