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(); };