cloudflare/dist/cflare.classes.cflareaccount.js

139 lines
17 KiB
JavaScript
Raw Normal View History

2016-05-15 17:51:48 +00:00
"use strict";
2016-05-24 21:36:06 +00:00
require("typings-global");
2016-05-15 17:51:48 +00:00
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-16 01:44:02 +00:00
CflareAccount.prototype.getRecord = function (domainNameArg, typeArg) {
var done = plugins.q.defer();
this.listRecords(domainNameArg)
.then(function (responseArg) {
var filteredResponse = responseArg.result.filter(function (recordArg) {
return (recordArg.type == typeArg && recordArg.name == domainNameArg);
});
});
return done.promise;
};
;
2016-05-24 21:36:06 +00:00
CflareAccount.prototype.createRecord = function (domainNameArg, typeArg, contentArg) {
var _this = this;
2016-05-15 17:51:48 +00:00
var done = plugins.q.defer();
2016-05-25 04:26:48 +00:00
var domain = new plugins.smartstring.Domain(domainNameArg);
var zoneName = domain.level2 + "." + domain.level1;
this.getZoneId(zoneName)
2016-05-24 21:36:06 +00:00
.then(function (domainIdArg) {
2016-05-25 04:26:48 +00:00
var dataObject = {
name: domain.fullName,
2016-05-24 21:36:06 +00:00
type: typeArg,
content: contentArg
};
2016-05-25 04:26:48 +00:00
_this.request("POST", "/zones/" + domainIdArg + "/dns_records", dataObject)
2016-05-24 21:36:06 +00:00
.then(function (responseArg) {
done.resolve(responseArg);
});
});
2016-05-15 17:51:48 +00:00
return done.promise;
};
;
2016-05-25 04:26:48 +00:00
CflareAccount.prototype.removeRecord = function (domainNameArg, typeArg) {
2016-05-15 17:51:48 +00:00
var done = plugins.q.defer();
2016-05-25 04:26:48 +00:00
var domain = new plugins.smartstring.Domain(domainNameArg);
var zoneName = domain.level2 + "." + domain.level1;
this.listRecords(zoneName)
.then(function (responseArg) {
var filteredResponse = responseArg;
});
2016-05-15 17:51:48 +00:00
return done.promise;
};
;
2016-05-16 01:44:02 +00:00
CflareAccount.prototype.updateRecord = function (domainNameArg, typeArg, valueArg) {
var done = plugins.q.defer();
return done.promise;
2016-05-16 01:29:29 +00:00
};
;
2016-05-24 21:36:06 +00:00
CflareAccount.prototype.listRecords = function (domainNameArg) {
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-24 21:36:06 +00:00
this.getZoneId(domainNameArg)
2016-05-16 01:29:29 +00:00
.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-24 21:36:06 +00:00
CflareAccount.prototype.request = function (methodArg, routeArg, dataArg) {
if (dataArg === void 0) { dataArg = {}; }
2016-05-15 17:51:48 +00:00
var done = plugins.q.defer();
2016-05-24 21:36:06 +00:00
var jsonArg = JSON.stringify(dataArg);
2016-05-15 17:51:48 +00:00
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
},
2016-05-24 21:36:06 +00:00
body: jsonArg
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-25 04:26:48 +00:00
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNmbGFyZS5jbGFzc2VzLmNmbGFyZWFjY291bnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLFFBQU8sZ0JBQWdCLENBQUMsQ0FBQTtBQUN4QixJQUFPLE9BQU8sV0FBVyxrQkFBa0IsQ0FBQyxDQUFDO0FBRzdDO0lBTUk7SUFFQSxDQUFDO0lBTE8saUNBQVMsR0FBakI7UUFDSSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLDRCQUE0QjtJQUN6RSxDQUFDOztJQUlELDRCQUFJLEdBQUosVUFBSyxVQUFvQztRQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDO0lBQ2xDLENBQUM7SUFDRCxpQ0FBUyxHQUFULFVBQVUsVUFBaUI7UUFDdkIsSUFBSSxJQUFJLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQzthQUNyQixJQUFJLENBQUMsVUFBQyxXQUFXO1lBQ2QsSUFBSSxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFDLE9BQU87Z0JBQ3JELE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLFVBQVUsQ0FBQztZQUN2QyxDQUFDLENBQUMsQ0FBQztZQUNILEVBQUUsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQSxDQUFDO2dCQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3pDLENBQUM7WUFBQyxJQUFJLENBQUMsQ0FBQztnQkFDSixPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDLElB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