diff --git a/lib/siteleaf.js b/lib/siteleaf.js index 9c0bdf0..081eabb 100644 --- a/lib/siteleaf.js +++ b/lib/siteleaf.js @@ -1,40 +1,44 @@ -var rp = require("request-promise"); -var merge = require("merge"); -var request; +export default class Siteleaf { + constructor(options = {}) { + this.options = { + apiKey: process.env['SITELEAF_APIKEY'], + apiSecret: process.env['SITELEAF_APISECRET'], + ...options + }; -function Siteleaf(options) { - this.options = options || {}; - this.options = merge({ - apiKey: process.env['SITELEAF_APIKEY'], - apiSecret: process.env['SITELEAF_APISECRET'] - }, this.options); - - request = rp.defaults({ - baseUrl: "https://api.siteleaf.com/v2/", - auth: { - user: this.options.apiKey, - pass: this.options.apiSecret - }, - headers: { + this.baseUrl = "https://api.siteleaf.com/v2/"; + this.headers = { 'Content-Type': 'application/json', - 'User-Agent': 'Siteleaf-Node/0.1.0' - }, - json: true - }); -}; - -Siteleaf.prototype.request = function(uri, options){ - options = options || {}; - options = merge(options, { uri: uri }); - var self = this; + 'User-Agent': 'Siteleaf-Node/0.3.0' + }; + } - return request(options).catch(function(err){ - self.onerror(err) - }); -}; + async request(uri, options = {}) { + const requestOptions = { + method: options.method || 'GET', + headers: { + ...this.headers, + ...options.headers + }, + body: options.body ? JSON.stringify(options.body) : undefined, + auth: { + user: this.options.apiKey, + pass: this.options.apiSecret + } + }; -Siteleaf.prototype.onerror = function(err) { - console.error(err.response.body); -}; + try { + const response = await fetch(`${this.baseUrl}${uri}`, requestOptions); + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + return await response.json(); + } catch (err) { + this.onerror(err); + } + } -module.exports = Siteleaf; + onerror(err) { + console.error(err.message); + } +} \ No newline at end of file diff --git a/package.json b/package.json index fc24bbb..2e36792 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "siteleaf", "description": "Siteleaf v2 API library", - "version": "0.2.0", + "version": "0.3.0", "author": { "name": "Siteleaf" }, @@ -26,10 +26,5 @@ "url": "https://github.com/siteleaf/siteleaf-node/issues" }, "homepage": "https://github.com/siteleaf/siteleaf-node#readme", - "directories": {}, - "dependencies": { - "bluebird": "^2.10.2", - "merge": "^1.2.0", - "request-promise": "^1.0.1" - } + "directories": {} }