UNPKG

obf-connector

Version:

An API connector for Open Badge Factory

72 lines (59 loc) 1.68 kB
const request = require('request'); const fs = require('fs'); class API { constructor(url, certFile, keyFile) { this.apiURL = url this.apiCertificate = fs.readFileSync(certFile); this.apiKey = fs.readFileSync(keyFile); } call(endpoint, method, data, callback) { const requestOptions = { method: method, url: this.apiURL + endpoint, key: this.apiKey, cert: this.apiCertificate } if (data) { requestOptions.headers = {'content-type' : 'application/json'}; requestOptions.body = JSON.stringify(data); } function requestCallback(error, response, body) { if (!error && response.statusCode == 200) { callback(null, body.trim()); } else { callback(error, body.trim()) } } request(requestOptions, requestCallback); } getMany(endpoint, callback) { this.call(endpoint, 'GET', null, (err, response) => { if (err) throw err; response = response.split(/\r\n/); response = response.join(','); response = "[" + response + "]"; response = JSON.parse(response); callback(null, response); }); } getOne(endpoint, callback) { this.call(endpoint, 'GET', null, (err, response) => { if (err) throw err; response = JSON.parse(response); callback(null, response); }); } post(endpoint, data, callback) { this.call(endpoint, 'POST', data, (err, response) => { if (err) throw err; callback(null); }); } put(endpoint, data, callback) { this.call(endpoint, 'PUT', data, (err, response) => { if (err) throw err; callback(null); }); } } module.exports = API;