closeheat
Version:
Static Website Hosting with CMS without touching your code.
79 lines (64 loc) • 1.66 kB
JavaScript
var Authorized, Authorizer, Log, Promise, _, pkg, request;
Promise = require('bluebird');
request = Promise.promisify(require('request'));
_ = require('lodash');
pkg = require('../package.json');
Authorizer = require('./authorizer');
Log = require('./log');
module.exports = Authorized = (function() {
function Authorized() {}
Authorized.request = function(opts) {
Log = require('./log');
if (!_.isPlainObject(opts)) {
Log.error("Request opts is not an object: " + opts);
}
opts.qs = _.merge(opts.form || {}, {
api_token: this.token()
});
opts.headers = {
'X-CLI-Version': pkg.version
};
return request(opts).then(function(resp) {
var Errors, Permissions;
Permissions = require('./permissions');
Permissions.check(resp);
Errors = require('./errors');
Errors.check(resp);
return resp[0].body;
});
};
Authorized.post = function(url, data) {
if (data == null) {
data = {};
}
this.validateUrl(url);
return this.request({
url: url,
form: data,
json: true,
method: 'post'
});
};
Authorized.get = function(url) {
this.validateUrl(url);
return this.request({
url: url,
json: true,
method: 'get'
});
};
Authorized.validateUrl = function(url) {
if (_.isString(url)) {
return;
}
Log.p("Url " + url + " is not a string");
return process.exit();
};
Authorized.token = function() {
var authorizer;
Authorizer = require('./authorizer');
authorizer = new Authorizer();
return authorizer.accessToken();
};
return Authorized;
})();