@lokalise/node-api
Version:
Official Lokalise API 2.0 Node.js client
94 lines (81 loc) • 2.23 kB
text/typescript
import type { BulkResult } from "../interfaces/bulk_result.js";
import type { CursorPaginatedResult } from "../interfaces/cursor_paginated_result.js";
import { GlossaryTerm } from "../models/glossary_term.js";
import type { ProjectOnly } from "../types/common_get_params.js";
import type {
CreateTermsParams,
ListTermsParams,
TermsDeleted,
UpdateTermsParams,
} from "../types/glossary_terms.js";
import { BaseCollection } from "./base_collection.js";
export class GlossaryTerms extends BaseCollection<GlossaryTerm> {
protected static override prefixURI =
"projects/{!:project_id}/glossary-terms/{:id}";
protected get elementClass(): new (
json: Record<string, unknown>,
) => GlossaryTerm {
return GlossaryTerm;
}
protected override get rootElementName(): string {
return "data";
}
protected override get rootElementNameSingular(): string | null {
return "data";
}
get(
term_id: string | number,
request_params: ProjectOnly,
): Promise<GlossaryTerm> {
return this.doGet(term_id, request_params);
}
list(
request_params: ListTermsParams,
): Promise<CursorPaginatedResult<GlossaryTerm>> {
return this.doListCursor(request_params);
}
create(
term_params: CreateTermsParams,
request_params: ProjectOnly,
): Promise<BulkResult<GlossaryTerm>> {
return this.createPromise(
"POST",
request_params,
this.populateArrayFromJsonBulk,
term_params,
);
}
update(
term_params: UpdateTermsParams,
request_params: ProjectOnly,
): Promise<BulkResult<GlossaryTerm>> {
return this.createPromise(
"PUT",
request_params,
this.populateArrayFromJsonBulk,
term_params,
"projects/{!:project_id}/glossary-terms",
);
}
delete(
term_ids: number[],
request_params: ProjectOnly,
): Promise<TermsDeleted> {
const keys = { terms: term_ids };
return this.createPromise<TermsDeleted>(
"DELETE",
request_params,
this.populateFromBulkDelete,
keys,
"projects/{!:project_id}/glossary-terms",
);
}
private populateFromBulkDelete(
json: Record<string, unknown>,
_headers: Headers,
): TermsDeleted {
const dataRecord = json as Record<string, Record<string, unknown>>;
const jsonData = dataRecord.data;
return jsonData as TermsDeleted;
}
}