UNPKG

acuityschedulingenterprise

Version:
59 lines (46 loc) 1.5 kB
/** * AcuityScheduling Class */ var request = require("request"); var pkg = require("../package"); function AcuityScheduling(config) { config = config || {}; this.base = config.base || AcuityScheduling.base; this.apiKey = config.apiKey; this.userId = config.userId; return this; } AcuityScheduling.base = "https://acuityscheduling.com"; AcuityScheduling.agent = "AcuityScheduling-js/" + pkg.version; AcuityScheduling.prototype._request = function (path, options, cb) { options = options || {}; if (!cb) { cb = typeof options === "function" ? options : function () {}; } path = typeof path === "string" ? path : ""; var config = { url: this.base + (path.charAt(0) === "/" ? "" : "/") + path, json: true, }; // Set configurable options: if (options.auth) config.auth = options.auth; if (options.body) config.body = options.body; if (options.method) config.method = options.method; if (options.qs) config.qs = options.qs; config.headers = options.headers || {}; // User agent: config.headers["User-Agent"] = AcuityScheduling.agent; return request(config, function (err, response, body) { if (err) return cb(err, response, body); cb(err, response, body); }); }; AcuityScheduling.prototype.request = function (path, options, cb) { options = options || {}; options.auth = options.auth || { user: this.userId + "", pass: this.apiKey, }; return this._request(path, options, cb); }; module.exports = AcuityScheduling;