backblaze-b2
Advanced tools
Comparing version 0.9.6 to 0.9.7
@@ -0,1 +1,7 @@ | ||
### v0.9.7 (January 5, 2016) - The good response release | ||
Features | ||
- Updated all instance functions to return API response in success callback [link](https://github.com/yakovkhalinsky/backblaze-b2/pull/8) | ||
### v0.9.6 (December 18, 2015) - The information release | ||
@@ -2,0 +8,0 @@ |
@@ -5,3 +5,3 @@ var sha1 = require('node-sha1'); | ||
var utils = require('./../utils'); | ||
var headers = require('../headers'); | ||
var headersUtil = require('../headers'); | ||
var request = require('../request'); | ||
@@ -28,3 +28,3 @@ var conf = require('../../conf'); | ||
}; | ||
headers.addInfoHeaders(options, info); | ||
headersUtil.addInfoHeaders(options, info); | ||
return request.sendRequest(options); | ||
@@ -149,18 +149,4 @@ }; | ||
function processDownloadResponse(response, body) { | ||
var headers = [ | ||
{ key: 'X-Bz-File-Id', name: 'fileId' }, | ||
{ key: 'X-Bz-File-Name', name: 'filename' }, | ||
{ key: 'X-Bz-Content-Sha1', name: 'sha1' } | ||
]; | ||
var obj = { data: body }; | ||
headers.forEach(processHeader); | ||
function processHeader(headersMapping) { | ||
var key = headersMapping.key.toLowerCase(); | ||
var name = headersMapping.name; | ||
obj[name] = response.headers[key]; | ||
} | ||
headersUtil.addBzHeaders(response.headers, obj); | ||
return obj; | ||
@@ -167,0 +153,0 @@ } |
@@ -33,1 +33,38 @@ var conf = require('../conf'); | ||
}; | ||
exports.addBzHeaders = function(headers, targetObj) { | ||
var keys = Object.keys(headers); | ||
return keys.filter(isBzHeader) | ||
.map(getKeyObj) | ||
.map(setKeyValue); | ||
function isBzHeader(header) { | ||
return /^X-Bz-/i.test(header); | ||
} | ||
function getKeyObj(header) { | ||
var replacement = /^X-Bz-Info-/i.test(header) ? /X-Bz-Info-/i : /X-Bz-/i; | ||
return { | ||
original: header, | ||
header: camelCase(header.replace(replacement, '')) | ||
}; | ||
} | ||
function setKeyValue(headerObj) { | ||
targetObj[headerObj.header] = headers[headerObj.original]; | ||
} | ||
function camelCase(header) { | ||
return header.split('-') | ||
.map(firstLetterCapitalise) | ||
.join(''); | ||
} | ||
function firstLetterCapitalise(word, index) { | ||
if (index === 0) { // skip first letter | ||
return word; | ||
} | ||
return word[0].toUpperCase() + word.substr(1); | ||
} | ||
}; |
@@ -44,3 +44,3 @@ | ||
context.downloadUrl = authResponse.downloadUrl; | ||
deferred.resolve(); | ||
deferred.resolve(authResponse); | ||
} | ||
@@ -47,0 +47,0 @@ }; |
{ | ||
"name": "backblaze-b2", | ||
"version": "0.9.6", | ||
"version": "0.9.7", | ||
"description": "Node.js Library for the Backblaze B2 Storage Service", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
@@ -36,2 +36,5 @@ ### Backblaze B2 Node.js Library | ||
// All functions on the b2 instance return the response from the B2 API in the success callback | ||
// i.e. b2.foo(...).then(function(b2JsonResponse) {}) | ||
// create b2 object instance | ||
@@ -38,0 +41,0 @@ var b2 = new B2({ |
@@ -10,5 +10,11 @@ var expect = require('expect.js'); | ||
var authResponse; | ||
var actualAuthResponse; | ||
var errorMessage; | ||
beforeEach(function() { | ||
requestOptions = null; | ||
authResponse = null; | ||
actualAuthResponse = null; | ||
errorMessage = null; | ||
bogusRequestModule = function(options, cb) { | ||
@@ -41,6 +47,14 @@ requestOptions = options; | ||
auth.authorize(b2).then(done); | ||
auth.authorize(b2).then(function(response) { | ||
actualAuthResponse = response; | ||
done(); | ||
}); | ||
}); | ||
it('Should set correct auth header in request options', function() { | ||
expect(actualAuthResponse).to.eql({ | ||
authorizationToken: 'foo', | ||
apiUrl: 'https://foo', | ||
downloadUrl: 'https://bar' | ||
}); | ||
expect(requestOptions.headers).to.eql({ Authorization: 'Basic dW5pY29ybnM6cmFpbmJvd3M=' }); | ||
@@ -47,0 +61,0 @@ }); |
@@ -375,4 +375,4 @@ var expect = require('expect.js'); | ||
fileId: 'fileIdAbcd1234', | ||
filename: 'unicorns-download.png', | ||
sha1: 'file_hash' | ||
fileName: 'unicorns-download.png', | ||
contentSha1: 'file_hash' | ||
}); | ||
@@ -440,4 +440,4 @@ }); | ||
fileId: 'fileIdAbcd1234', | ||
filename: 'unicorns-download.png', | ||
sha1: 'file_hash' | ||
fileName: 'unicorns-download.png', | ||
contentSha1: 'file_hash' | ||
}); | ||
@@ -444,0 +444,0 @@ }); |
@@ -88,3 +88,3 @@ var expect = require('expect.js'); | ||
var bogusAuthPromise; | ||
var isResolved; | ||
var resolvedWith; | ||
var rejectMessage; | ||
@@ -96,7 +96,7 @@ var b2; | ||
beforeEach(function() { | ||
isResolved = false; | ||
resolvedWith= undefined; | ||
rejectMessage = undefined; | ||
bogusAuthPromise = { | ||
resolve: function() { | ||
isResolved = true; | ||
resolve: function(response) { | ||
resolvedWith = response; | ||
}, | ||
@@ -116,3 +116,7 @@ reject: function(message) { | ||
expect(rejectMessage).to.be(undefined); | ||
expect(isResolved).to.be(true); | ||
expect(resolvedWith).to.eql({ | ||
authorizationToken: 'unicorns', | ||
apiUrl: 'https://foo', | ||
downloadUrl: 'https://bar' | ||
}); | ||
expect(b2.authorizationToken).to.be('unicorns'); | ||
@@ -127,3 +131,3 @@ expect(b2.apiUrl).to.be('https://foo'); | ||
expect(rejectMessage).to.be('Something went wrong'); | ||
expect(isResolved).to.be(false); | ||
expect(resolvedWith).to.be(undefined); | ||
expect(b2.authorizationToken).to.be(undefined); | ||
@@ -130,0 +134,0 @@ expect(b2.apiUrl).to.be(undefined); |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
60687
1458
115