radius-read
Version:
Realtime Dashboard
61 lines • 2.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.APIService = void 0;
const tslib_1 = require("tslib");
const request_1 = tslib_1.__importDefault(require("request"));
const result_model_1 = require("./../models/result.model");
/**
* Service for managing API routes and handling requests.
*/
class APIService {
/**
* Creates an instance of APIService.
*/
constructor() { }
/**
* Executes an HTTP request with the specified method, URL, headers, and payload.
* @param method
* @param url
* @param headers
* @param payload
* @returns
*/
static executeRequest(method, url, headers, payload) {
return new Promise((resolve) => {
var result = new result_model_1.EntityResult();
let options = {
method: method,
url: url,
headers: headers,
strictSSL: new URL(url).protocol === 'https:' ? true : false
};
if (['POST', 'PUT', 'PATCH', 'DELETE'].includes(method)) {
options.json = payload;
}
(0, request_1.default)(options, (error, response, body) => {
if (error) {
result.ResultType = result_model_1.EntityResultType.Failed;
result.Exception = error;
resolve(result);
}
if (response) {
if (typeof (response === null || response === void 0 ? void 0 : response.body) === 'string')
response = JSON.parse(response === null || response === void 0 ? void 0 : response.body);
else
response = response === null || response === void 0 ? void 0 : response.body;
if (response.RespType === "Failed" || response.EvType === "Failed") {
result.ResultType = result_model_1.EntityResultType.Failed;
result.Exception = response;
}
else {
result.ResultType = result_model_1.EntityResultType.Success;
result.Response = response;
}
resolve(result);
}
});
});
}
}
exports.APIService = APIService;
//# sourceMappingURL=api.service.js.map