ubivar
Advanced tools
Comparing version 0.1.3-beta10 to 0.1.3-beta11
@@ -15,4 +15,3 @@ /* Ubivar API client factory | ||
ubivar.log.level("warn") | ||
return ubivar | ||
} |
@@ -13,3 +13,2 @@ var _ = require("lodash") | ||
this.ubivar = ubivar | ||
this.log = ubivar.log | ||
} | ||
@@ -16,0 +15,0 @@ |
var path = require("path") | ||
, fs = require("fs") | ||
, bunyan = require("bunyan") | ||
, _ = require("lodash") | ||
@@ -15,2 +14,3 @@ , RESOURCES = [ | ||
, "fx" | ||
, "bins" | ||
, "me" | ||
@@ -51,3 +51,2 @@ ] | ||
this.set("auth", token) | ||
this.log = bunyan.createLogger({ "name": theName}) | ||
} | ||
@@ -54,0 +53,0 @@ |
{ | ||
"name": "ubivar", | ||
"version": "0.1.3-beta10", | ||
"version": "0.1.3-beta11", | ||
"description": "API wrapper to Ubivar", | ||
@@ -26,5 +26,4 @@ "main": "lib/index.js", | ||
"dependencies": { | ||
"bunyan": "^1.3.4", | ||
"lodash": "^3.3.1" | ||
} | ||
} |
@@ -127,18 +127,6 @@ # Ubivar node.js bindings | ||
+ [list(params)](https://www.ubivar.com/docs/nodejs#list_fx) | ||
```js | ||
ubivar.fx.list({ | ||
"cur_from" : "CAD" // default to EUR | ||
, "cur_to" : "GBP" // default to USD | ||
, "date" : "2015-01-01" // default to today | ||
}, function(err, res){ | ||
// returns the CAD/GBP FX of the day | ||
}) | ||
``` | ||
+ [BINs](https://www.ubivar.com/docs/nodejs#bin) | ||
+ [list(params)](https://www.ubivar.com/docs/nodejs#list_bin) | ||
+ [Status](https://www.ubivar.com/docs/nodejs#status) | ||
+ [list(params)](https://www.ubivar.com/docs/nodejs#list_status) | ||
```js | ||
ubivar.status.list(function(err, res){ | ||
// returns uptime status of the web and API resources | ||
}) | ||
``` | ||
@@ -145,0 +133,0 @@ ## Configuration |
@@ -13,3 +13,3 @@ "use strict" | ||
, allResources = ubivar.get("resources") | ||
, specialResources = ["me", "fx", "status"] | ||
, specialResources = ["me", "fx", "bins", "status"] | ||
, genericResources = _.difference(allResources, specialResources) | ||
@@ -34,10 +34,2 @@ | ||
it("Should have a logger", function() { | ||
_.each(genericResources, function(resource){ | ||
_.each(methods, function(method){ | ||
expect(ubivar[resource]["log"]).to.exist | ||
}) | ||
}) | ||
}) | ||
it("Should have CRUD(L) methods", function() { | ||
@@ -81,16 +73,13 @@ _.each(genericResources, function(resource){ | ||
var ubivar = require("../../lib")(token, "latest") | ||
ubivar.me.retrieve(function(err, res){ | ||
var me = res.data[0] | ||
, vrand = ""+Math.random() | ||
me.primary_phone= vrand | ||
ubivar.me.update(me, function(err, res){ | ||
if(!err && res.status === 200 && vrand === res.data[0]["primary_phone"]){ | ||
done() | ||
} else { | ||
console.log("\n\nError:", err | ||
, "\nResponse:" , res | ||
, "\nVrand:" , vrand) | ||
done(new Error("Should update me")) | ||
} | ||
}) | ||
, vrand = ""+Math.random() | ||
ubivar.me.update({"primary_phone": vrand}, function(err, res){ | ||
if(!err && res.status === 200 && vrand === res.data[0]["primary_phone"]){ | ||
return done() | ||
} | ||
console.log("\n\nError:", err | ||
, "\nResponse:" , res | ||
, "\nVrand:" , vrand) | ||
done(new Error("Should update me")) | ||
}) | ||
@@ -137,3 +126,3 @@ }) | ||
done(new Error("Returned 'cur_to' does not default to USD")) | ||
} else if((new Date()-new Date(fx.date))/(1000*60*60*24) > 1){ | ||
} else if((new Date()-new Date(fx.date))/(1000*60*60*24) > 2){ | ||
done(new Error("Latest FX should be less than one day old")) | ||
@@ -202,19 +191,104 @@ } else if(!_.isNumber(fx.rate)) { | ||
ubivar.status.list(function(err, res){ | ||
var result = !err && res.data.length > 0 ? res.data[0] : null | ||
, fields = ["id", "timestamp", "url", "status"] | ||
if(err){ | ||
done(err) | ||
} else if(res.data.length === 0 ){ done(new Error("Did not return results")) | ||
} else if(!res.data[0].id ){ done(new Error("Should have an id")) | ||
} else if(!res.data[0].timestamp){ done(new Error("Should have a timestamp")) | ||
} else if(!res.data[0].name ){ done(new Error("Should have a name")) | ||
} else if(!res.data[0].url ){ done(new Error("Should have a url")) | ||
} else if(!res.data[0].interval ){ done(new Error("Should have an interval")) | ||
} else if(!res.data[0].status ){ done(new Error("Should have a status")) | ||
} else if(!res.data[0].alltimeuptimeratio){ done(new Error("Should have an all time uptime ratio")) | ||
} else{ | ||
done() | ||
} | ||
return done(err) | ||
} else if(res.data.length === 0){ | ||
return done(new Error("Did not return results" )) | ||
} | ||
_.each(fields, function(field){ | ||
if(!_.has(result, field)){ | ||
return done(new Error("Should have a '" + field + "'")) | ||
} | ||
}) | ||
done() | ||
}) | ||
}) | ||
it("Should filter status based on timestamp", function(done){ | ||
var begin = "2015-03-30 23:00:00" | ||
, end = "2015-03-30 24:00:00" | ||
ubivar.status.list({"timestamp":{ "gte":begin , "lte":end}}, function(err, res){ | ||
var results = !err && res.data.length > 0 ? res.data : null | ||
if(err){ | ||
return done(err) | ||
} else if(res.data.length === 0){ | ||
return done(new Error("Did not return results" )) | ||
} | ||
begin = new Date(begin) | ||
end = new Date(end) | ||
_.each(results, function(result){ | ||
var time = new Date(result.timestamp) | ||
if((time-begin)<0 || (end-time)<0){ | ||
return done(new Error("Should return statuses within ["+begin,",",end+"]: ", time)) | ||
} | ||
}) | ||
done() | ||
}) | ||
}) | ||
}) | ||
describe("Bank Identification Number", function(){ | ||
it("Should list a valid set of BINs", function(done){ | ||
ubivar.bins.list(function(err, res){ | ||
var result = !err && res.data.length > 0 ? res.data[0] : null | ||
, fields = ["id","brand","country_code","country_name","bank","card_type","card_category"] | ||
if(err){ return done(err) | ||
} else if(res.data.length === 0){ | ||
return done(new Error("Did not return results" )) | ||
} | ||
_.each(fields, function(field){ | ||
if(!_.has(result, field)){ | ||
return done(new Error("Should have a '" + field + "'")) | ||
} | ||
}) | ||
done() | ||
}) | ||
}) | ||
it("Should 'start_after' and 'end_before'", function(done){ | ||
var begin = 400400 | ||
, end = 400500 | ||
ubivar.bins.list({"start_after":begin, "end_before":end}, function(err, res){ | ||
var results = !err && res.data.length > 0 ? res.data : null | ||
if(err){ return done(err) | ||
} else if(res.data.length === 0){ | ||
return done(new Error("Did not return results" )) | ||
} | ||
_.each(results, function(result){ | ||
if(result.id <= begin || result.id >= end){ | ||
return done(new Error("Not a BIN with ["+begin+","+end+"]: " + result.id)) | ||
} | ||
}) | ||
done() | ||
}) | ||
}) | ||
it("Should select only 'visa' brands", function(done){ | ||
ubivar.bins.list({"brand":"visa"}, function(err, res){ | ||
var results = !err && res.data.length > 0 ? res.data : null | ||
if(err){ return done(err) | ||
} else if(res.data.length === 0){ | ||
return done(new Error("Did not return results" )) | ||
} | ||
_.each(results, function(result){ | ||
if(result.brand.toLowerCase().indexOf("visa") < 0){ | ||
return done(new Error("Not a 'visa' brand: " + result.brand)) | ||
} | ||
}) | ||
done() | ||
}) | ||
}) | ||
}) | ||
_.each(genericResources, function(resource){ | ||
@@ -221,0 +295,0 @@ describe(resource[0].toUpperCase() + resource.slice(1) |
@@ -9,3 +9,3 @@ "use strict" | ||
var rootProps = ["log","_api"] | ||
var rootProps = ["_api"] | ||
, subProps = ["auth","protocol","timeout","resources","revokedCerts","headers","request"] | ||
@@ -12,0 +12,0 @@ , methods = ["create", "retrieve", "update", "del", "list"] |
46433
1
1009
155
- Removedbunyan@^1.3.4
- Removedbalanced-match@1.0.2(transitive)
- Removedbrace-expansion@1.1.11(transitive)
- Removedbunyan@1.8.15(transitive)
- Removedconcat-map@0.0.1(transitive)
- Removeddtrace-provider@0.8.8(transitive)
- Removedglob@6.0.4(transitive)
- Removedinflight@1.0.6(transitive)
- Removedinherits@2.0.4(transitive)
- Removedminimatch@3.1.2(transitive)
- Removedminimist@1.2.8(transitive)
- Removedmkdirp@0.5.6(transitive)
- Removedmoment@2.30.1(transitive)
- Removedmv@2.1.1(transitive)
- Removednan@2.19.0(transitive)
- Removedncp@2.0.0(transitive)
- Removedonce@1.4.0(transitive)
- Removedpath-is-absolute@1.0.1(transitive)
- Removedrimraf@2.4.5(transitive)
- Removedsafe-json-stringify@1.2.0(transitive)
- Removedwrappy@1.0.2(transitive)