UNPKG

@vanakaru/ekilex-api-client

Version:

A node api client for the Ekilex API

56 lines 1.97 kB
"use strict"; 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