welsonjs/lib/api.websms.js

104 lines
2.8 KiB
JavaScript

var RAND = require("lib/rand");
var HTTP = require("lib/http");
var WebSMSObject = function() {
this.host = "localhost";
this.token = "";
this.country = "any";
this.operator = "any";
this.product = "";
this.profiles = [];
this.setHost = function(host) {
this.host = host;
return this;
};
this.setToken = function(token) {
this.token = token;
return this;
};
this.setCountry = function(country) {
this.country = country;
return this;
};
this.setOperator = function(operator) {
this.operator = operator;
return this;
};
this.setProduct = function(product) {
this.product = product;
return this;
};
this.addProfile = function(product, country, operator) {
this.profiles.push({
"product": product,
"country": country,
"operator": operator
});
return this;
};
this.buy = function() {
try {
if (this.profiles.length > 0) {
var pf = RAND.one(this.profiles);
this.setProduct(pf.product);
this.setOperator(pf.operator);
this.setCountry(pf.country);
}
var response = HTTP.create()
.setBearerAuth(this.token)
.setUseCache(false)
.setHeader("Accept", "application/json")
.setParameter("country", this.country)
.setParameter("operator", this.operator)
.setParameter("product", this.product)
.open("GET", "https://" + this.host + "/v1/user/buy/activation/:country/:operator/:product")
.send(function(res) {
console.log("Got the number: " + res.phone);
}).responseBody
;
return {
"id": response.id,
"number": response.phone
};
} catch(e) {
console.error(e.message);
}
};
this.get = function(id) {
try {
var response = HTTP.create()
.setBearerAuth(this.token)
.setUseCache(false)
.setHeader("Accept", "application/json")
.setParameter("id", id)
.open("GET", "https://" + this.host + "/v1/user/check/:id")
.send(function(res) {
var messages = res.sms;
messages.forEach(function(x) {
console.log("Got the code: " + x.code);
});
}).responseBody
;
return response.sms.reduce(function(a, x) {
a = x.code;
return a;
}, null);
} catch (e) {
console.error(e.message);
}
};
};
exports.create = function() {
return new WebSMSObject();
};