2016-05-15 17:51:48 +00:00
|
|
|
"use strict";
|
|
|
|
/// <reference path="./typings/main.d.ts" />
|
|
|
|
var plugins = require("./cflare.plugins");
|
|
|
|
var CflareAccount = (function () {
|
|
|
|
function CflareAccount() {
|
|
|
|
}
|
|
|
|
CflareAccount.prototype.authCheck = function () {
|
|
|
|
return (this.authEmail && this.authKey); //check if auth is available
|
|
|
|
};
|
|
|
|
;
|
|
|
|
CflareAccount.prototype.auth = function (optionsArg) {
|
|
|
|
this.authEmail = optionsArg.email;
|
|
|
|
this.authKey = optionsArg.key;
|
|
|
|
};
|
2016-05-16 01:29:29 +00:00
|
|
|
CflareAccount.prototype.getZoneId = function (domainName) {
|
|
|
|
var done = plugins.q.defer();
|
|
|
|
this.listZones(domainName)
|
|
|
|
.then(function (responseArg) {
|
|
|
|
var filteredResponse = responseArg.result.filter(function (zoneArg) {
|
|
|
|
return zoneArg.name === domainName;
|
|
|
|
});
|
|
|
|
if (filteredResponse.length >= 1) {
|
|
|
|
done.resolve(filteredResponse[0].id);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
plugins.beautylog.error("the domain " + domainName.blue + " does not appear to be in this account!");
|
|
|
|
done.reject(undefined);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
return done.promise;
|
|
|
|
};
|
2016-05-15 17:51:48 +00:00
|
|
|
CflareAccount.prototype.createRecord = function () {
|
|
|
|
var done = plugins.q.defer();
|
|
|
|
return done.promise;
|
|
|
|
};
|
|
|
|
;
|
|
|
|
CflareAccount.prototype.removeRecord = function () {
|
|
|
|
var done = plugins.q.defer();
|
|
|
|
return done.promise;
|
|
|
|
};
|
|
|
|
;
|
2016-05-16 01:29:29 +00:00
|
|
|
CflareAccount.prototype.updateRecord = function () {
|
|
|
|
};
|
|
|
|
;
|
2016-05-15 17:51:48 +00:00
|
|
|
CflareAccount.prototype.listRecords = function (domainName) {
|
2016-05-16 01:29:29 +00:00
|
|
|
var _this = this;
|
2016-05-15 17:51:48 +00:00
|
|
|
var done = plugins.q.defer();
|
2016-05-16 01:29:29 +00:00
|
|
|
this.getZoneId(domainName)
|
|
|
|
.then(function (domainIdArg) {
|
|
|
|
_this.request("GET", "/zones/" + domainIdArg + "/dns_records?per_page=100")
|
|
|
|
.then(function (responseArg) {
|
|
|
|
done.resolve(responseArg);
|
|
|
|
});
|
|
|
|
});
|
2016-05-15 17:51:48 +00:00
|
|
|
return done.promise;
|
|
|
|
};
|
2016-05-16 01:29:29 +00:00
|
|
|
CflareAccount.prototype.listZones = function (domainName) {
|
2016-05-15 17:51:48 +00:00
|
|
|
var done = plugins.q.defer();
|
2016-05-16 01:29:29 +00:00
|
|
|
var requestRoute = "/zones?per_page=50";
|
|
|
|
if (domainName)
|
|
|
|
requestRoute = requestRoute + "&name=" + domainName;
|
|
|
|
var result = {};
|
|
|
|
this.request("GET", requestRoute)
|
2016-05-15 17:51:48 +00:00
|
|
|
.then(function (responseArg) {
|
2016-05-16 01:29:29 +00:00
|
|
|
result = responseArg;
|
|
|
|
done.resolve(result);
|
2016-05-15 17:51:48 +00:00
|
|
|
});
|
|
|
|
return done.promise;
|
|
|
|
};
|
|
|
|
;
|
2016-05-16 01:29:29 +00:00
|
|
|
CflareAccount.prototype.request = function (methodArg, routeArg, bodyArg) {
|
2016-05-15 17:51:48 +00:00
|
|
|
var done = plugins.q.defer();
|
|
|
|
var options = {
|
|
|
|
method: methodArg,
|
|
|
|
url: "https://api.cloudflare.com/client/v4" + routeArg,
|
|
|
|
headers: {
|
|
|
|
"Content-Type": "application/json",
|
|
|
|
"X-Auth-Email": this.authEmail,
|
|
|
|
"X-Auth-Key": this.authKey
|
2016-05-16 01:29:29 +00:00
|
|
|
},
|
|
|
|
json: bodyArg
|
2016-05-15 17:51:48 +00:00
|
|
|
};
|
|
|
|
plugins.request(options, function (err, res, body) {
|
|
|
|
if (!err && res.statusCode == 200) {
|
|
|
|
var responseObj = JSON.parse(body);
|
|
|
|
done.resolve(responseObj);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
console.log(err);
|
|
|
|
console.log(res);
|
|
|
|
done.reject(err);
|
|
|
|
}
|
|
|
|
;
|
|
|
|
});
|
|
|
|
return done.promise;
|
|
|
|
};
|
|
|
|
return CflareAccount;
|
|
|
|
}());
|
|
|
|
exports.CflareAccount = CflareAccount;
|
|
|
|
;
|
|
|
|
|
2016-05-16 01:29:29 +00:00
|
|
|
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNmbGFyZS5jbGFzc2VzLmNmbGFyZWFjY291bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDRDQUE0QztBQUM1QyxJQUFPLE9BQU8sV0FBVyxrQkFBa0IsQ0FBQyxDQUFDO0FBRzdDO0lBTUk7SUFFQSxDQUFDO0lBTE8saUNBQVMsR0FBakI7UUFDSSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLDRCQUE0QjtJQUN6RSxDQUFDOztJQUlELDRCQUFJLEdBQUosVUFBSyxVQUFvQztRQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxpQ0FBUyxHQUFULFVBQVUsVUFBaUI7UUFDdkIsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQzthQUNyQixJQUFJLENBQUMsVUFBQyxXQUFXO1lBQ2QsSUFBSSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFDLE9BQU87Z0JBQ3JELE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQztZQUN2QyxDQUFDLENBQUMsQ0FBQztZQUNILEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDO2dCQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3pDLENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDSixPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLElBQUksR0FBRyx5Q0FBeUMsQ0FBQyxDQUFDO2dCQUNyRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzNCLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUNQLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxvQ0FBWSxHQUFaO1FBQ0ksSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDOztJQUNELG9DQUFZLEdBQVo7UUFDSSxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7O0lBQ0Qsb0NBQVksR0FBWjtJQUVBLENBQUM7O0lBQ0QsbUNBQVcsR0FBWCxVQUFZLFVBQWlCO1FBQTdCLGlCQVVDO1FBVEcsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQzthQUNyQixJQUFJLENBQUMsVUFBQyxXQUFXO1lBQ2QsS0FBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUMsU0FBUyxHQUFHLFdBQVcsR0FBRywyQkFBMkIsQ0FBQztpQkFDcEUsSUFBSSxDQUFDLFVBQVMsV0FBVztnQkFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUM5QixDQUFDLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUNELGlDQUFTLEdBQVQsVUFBVSxVQUFrQjtRQUN4QixJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLElBQUksWUFBWSxHQUFHLG9CQUFvQixDQUFBO1FBQ3ZDLEVBQUUsQ0FBQSxDQUFDLFVBQVUsQ0FBQztZQUFDLFlBQVksR0FBRyxZQUFZLEdBQUcsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUNuRSxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUMsWUFBWSxDQUFDO2FBQzNCLElBQUksQ0FBQyxVQUFTLFdBQVc7WUFDdEIsTUFBTSxHQUFHLFdBQVcsQ0FBQztZQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQzs7SUFDRCwrQkFBTyxHQUFQLFVBQVEsU0FBZ0IsRUFBQyxRQUFlLEVBQUMsT0FBUTtRQUM3QyxJQUFJLElBQUksR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLElBQUksT0FBTyxHQUFHO1lBQ1YsTUFBTSxFQUFDLFNBQVM7WUFDaEIsR0FBRyxFQUFDLHNDQUFzQyxHQUFHLFFBQVE7WUFDckQsT0FBTyxFQUFDO2dCQUNKLGNBQWMsRUFBQyxrQkFBa0I7Z0JBQ2pDLGNBQWMsRUFBQyxJQUFJLENBQUMsU0FBUztnQkFDN0IsWUFBWSxFQUFDLElBQUksQ0FBQyxPQUFPO2FBQzVCO1lBQ0QsSUFBSSxFQUFDLE9BQU87U0FDZixDQUFDO1FBQ0YsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUMsVUFBUyxHQUFHLEVBQUUsR0FBRyxFQUFFLElBQUk7WUFDM0MsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxDQUFDLFVBQVUsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNoQyxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQzlCLENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDSixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3JCLENBQUM7WUFBQSxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBQ0wsb0JBQUM7QUFBRCxDQXZGQSxBQXVGQyxJQUFBO0FBdkZZLHFCQUFhLGdCQXVGekIsQ0FBQTtBQUFBLENBQUMiLCJmaWxlIjoiY2ZsYXJlLmNsYXNzZXMuY2ZsYXJlYWNjb3VudC5qcyIsInNvdXJjZXNDb250
|