@bondsoftware/bondmx-sdk
Version:
167 lines • 5.92 kB
JavaScript
;
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