adapater-interface
Version:
This is a base clase that allows consistency when implementing communication with vendors
40 lines (34 loc) • 1.35 kB
JavaScript
var request = require('request');
class Adapter {
async update() {
console.log("From base class: Create method needs to be overriden");
throw new Error("From base class: Create method needs to be overriden");
}
async create() {
console.log("From base class: Create method needs to be overriden");
throw new Error("From base class: Create method needs to be overriden");
}
async get() {
console.log("From base class: Update method needs to be overriden");
throw new Error("From base class: Update method needs to be overriden");
}
async sendRequest(url, method = 'GET', headers = null, body = null, isJson = true) {
return new Promise((resolve, reject) => {
const requestOptions = {
method,
url,
headers: headers,
body: body,
json: isJson
};
request(requestOptions, function (err, res, body) {
if (res.statusCode !== 200 || res.statusCode !== 201) {
console.log(`There was an error calling: ${url}`);
return reject(res.statusMessage);
}
resolve(body);
});
})
}
}
module.exports = Adapter;