@vanakaru/ekilex-api-client
Version:
A node api client for the Ekilex API
56 lines • 1.97 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Words = void 0;
const http_client_1 = require("../http/http-client");
class Words {
constructor(httpClient) {
this.httpClient = httpClient;
}
getSearchPath(searchTerm, datasets) {
const sanitizedSearchTerm = encodeURIComponent(searchTerm);
const path = `word/search/${sanitizedSearchTerm}`;
const uniqueDatasetList = Array.from(new Set(datasets));
if (!uniqueDatasetList.length) {
return path;
}
return `${path}/${uniqueDatasetList.join(',')}`;
}
getWordDetailsPath(wordId, datasets) {
const sanitizedWordId = encodeURIComponent(wordId);
const path = `word/details/${sanitizedWordId}`;
const uniqueDatasetList = Array.from(new Set(datasets));
if (!uniqueDatasetList.length) {
return path;
}
return `${path}/${uniqueDatasetList.join(',')}`;
}
getWordCreatePath(wordCreateDto) {
const dataset = encodeURIComponent(wordCreateDto.lexemeDataset);
return `word/create?crudRoleDataset=${dataset}`;
}
search(searchTerm, datasets = []) {
const request = {
method: http_client_1.Method.Get,
path: this.getSearchPath(searchTerm, datasets),
};
return this.httpClient.request(request);
}
getDetails(wordId, datasets = []) {
const request = {
method: http_client_1.Method.Get,
path: this.getWordDetailsPath(wordId, datasets),
};
return this.httpClient.request(request);
}
create(payload) {
// TODO alidate and sanitize payload
const request = {
method: http_client_1.Method.Post,
path: this.getWordCreatePath(payload),
data: payload,
};
return this.httpClient.request(request);
}
}
exports.Words = Words;
//# sourceMappingURL=words.js.map