UNPKG

@bondsoftware/bondmx-sdk

Version:
167 lines 5.92 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.createApiHandler = void 0; const axios_1 = require("axios"); function createApiHandler({ options }) { var { store } = options; var config = options; var sessionId = null; /** * Logout. * @returns {void} */ const logout = () => __awaiter(this, void 0, void 0, function* () { return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () { if (typeof store !== 'undefined') yield store.clear(); config.Logout = true; config.sessionId = null; return resolve(true); })); }); /** * Get sessionId. * @returns {string} */ function getSessionId() { return config.sessionId; } /** * Get the base URL. * @returns {string} */ function getBaseURL() { return `${config.Endpoint}`; } /** * Generate the request headers. * @returns {Promise<{}>} */ function getRequestHeaders(overrideHeaders) { return new Promise((resolve, reject) => { if (overrideHeaders) { return resolve(overrideHeaders); } return isAuthenticated().then(() => { const headers = { 'Authorization': `Bearer ${config.sessionId}`, 'Accept': 'application/vnd.bondmx.v1+json', 'Content-Type': 'application/json' }; return resolve(headers); }).catch(error => { reject(error); }); }); } /** * Set idToken * @returns {void} */ function setSessionId(sessionId) { config.sessionId = sessionId; config.OverrideIdToken = null; } /** * Trigger a GET request on the target URL and return the member received in the response. * @param url {string} * @param params {Object=} * @param overrideBaseUrl {string} * @param overrideHeaders {Object=} * @returns {Member} member */ function get(url, params = {}, overrideBaseUrl = null, overrideHeaders = null) { return getRequestHeaders(overrideHeaders).then((headers) => { return axios_1.default.get((overrideBaseUrl ? overrideBaseUrl : getBaseURL()) + url, { 'params': params, 'headers': headers }).catch((error) => { throw error.response; }); }); } /** * Trigger a POST request on the target URL and return the member received in the response. * @param url {string} * @param formData {Object=} * @param overrideBaseUrl {string} * @param overrideHeaders {Object=} * @returns {Member} member */ function post(url, formData = {}, overrideBaseUrl = null, overrideHeaders = null) { return getRequestHeaders(overrideHeaders).then(headers => { return axios_1.default.post((overrideBaseUrl ? overrideBaseUrl : getBaseURL()) + url, formData, { 'headers': headers }).catch((error) => { throw error.response; }); }); } /** * Trigger a PATCH request on the target URL and return the member received in the response. * @param url {string} * @param formData {Object=} * @param overrideBaseUrl {string} * @param overrideHeaders {Object=} * @returns {Member} member */ function patch(url, formData = {}, overrideBaseUrl = null, overrideHeaders = null) { return getRequestHeaders(overrideHeaders).then(headers => { return axios_1.default.patch((overrideBaseUrl ? overrideBaseUrl : getBaseURL()) + url, formData, { 'headers': headers }).catch((error) => { throw error.response; }); }); } /** * Trigger a POST request on the target URL and return the member received in the response. * @param url {string} * @param formData {Object=} * @param overrideBaseUrl {string} * @param overrideHeaders {Object=} * @returns {Member} member */ function remove(url, formData = {}, overrideBaseUrl = null, overrideHeaders = null) { return getRequestHeaders(overrideHeaders).then(headers => { return axios_1.default.delete((overrideBaseUrl ? overrideBaseUrl : getBaseURL()) + url, { data: formData, 'headers': headers }).catch((error) => { throw error.response; }); }); } /** * Check to see if use is authenticated * @returns {Promise<string>} member */ function isAuthenticated() { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () { return resolve(true); })); }); } return { get, post, patch, delete: remove, isAuthenticated, logout, config, }; } exports.createApiHandler = createApiHandler; ; //# sourceMappingURL=handler.js.map