architect-sdk
Version:
Essentialz Architect SDK
57 lines (56 loc) • 2.44 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ResourceService = void 0;
var qs_1 = __importDefault(require("qs"));
var const_1 = require("../../const");
var ResourceService = /** @class */ (function () {
function ResourceService(resourceName, httpClient, tokenManager) {
this.resourceName = resourceName;
this.httpClient = httpClient;
this.tokenManager = tokenManager;
}
ResourceService.prototype.getAll = function (options) {
return this.httpClient.get(this.getResourceUrl(), this.getInit(options));
};
ResourceService.prototype.search = function (query, options) {
var params = typeof query === 'string' ? query : qs_1.default.stringify(query);
var url = this.getResourceUrl() + "?" + params;
return this.httpClient.get(url, this.getInit(options));
};
ResourceService.prototype.get = function (id) {
return this.httpClient.get(this.getResourceUrl(id));
};
ResourceService.prototype.create = function (body) {
return this.httpClient.post(this.getResourceUrl(), body);
};
ResourceService.prototype.update = function (id, body) {
return this.httpClient.put(this.getResourceUrl(id), body);
};
ResourceService.prototype.delete = function (id) {
return this.httpClient.delete(this.getResourceUrl(id));
};
ResourceService.prototype.getResourceUrl = function (id) {
var resource = id ? this.resourceName + "/" + id : this.resourceName;
return "api/" + resource;
};
// This should be extracted to http request builder
ResourceService.prototype.getInit = function (options) {
var headers = {};
var token = this.tokenManager.getToken();
if (token) {
headers.Authorization = "Bearer " + token;
}
if (options === null || options === void 0 ? void 0 : options.perPage) {
headers[const_1.HEADER_KEYS.PAGINATION_PER_PAGE] = options.perPage;
}
if (options === null || options === void 0 ? void 0 : options.page) {
headers[const_1.HEADER_KEYS.PAGINATION_PAGE] = options.page;
}
return { headers: headers };
};
return ResourceService;
}());
exports.ResourceService = ResourceService;