Comparing version 1.0.1 to 1.0.2
29
index.js
@@ -1,24 +0,29 @@ | ||
var _ = require('lodash'); | ||
var _ = require('lodash') | ||
, Apogee; | ||
exports.configuration = { | ||
header: 'X-API-Version' | ||
Apogee = function () { | ||
this.configuration = { | ||
header: 'X-API-Version' | ||
}; | ||
}; | ||
exports.config = function (options) { | ||
Apogee.prototype.configure = function (options) { | ||
options = options || {}; | ||
exports.configuration = _.extend(exports.configuration, options); | ||
this.configuration = _.extend(this.configuration, options); | ||
}; | ||
exports.limit = function (version) { | ||
Apogee.prototype.limit = function (version) { | ||
if ('string' !== typeof(version)) { | ||
throw new Error('Please supply a version for this route.'); | ||
} | ||
var self = this; | ||
return function (req, res, next) { | ||
var header; | ||
res.header(exports.configuration.header, version); | ||
res.header(self.configuration.header, version); | ||
if (req.header(exports.configuration.header)) { | ||
header = req.header(exports.configuration.header); | ||
if (req.header(self.configuration.header)) { | ||
header = req.header(self.configuration.header); | ||
} | ||
@@ -28,3 +33,3 @@ | ||
return next(); | ||
} else if (!header && (version === exports.configuration.default)) { | ||
} else if (!header && (version === self.configuration.default)) { | ||
return next(); | ||
@@ -36,1 +41,3 @@ } | ||
}; | ||
module.exports = new Apogee(); |
@@ -9,3 +9,3 @@ { | ||
}, | ||
"version": "1.0.1", | ||
"version": "1.0.2", | ||
"repository": "git://github.com/originalmachine/apogee.git", | ||
@@ -12,0 +12,0 @@ "main": "index.js", |
@@ -19,3 +19,3 @@ var apogee = require('../') | ||
this.app = express(); | ||
apogee.config({ header: 'x-apogee-version', default: '1' }); | ||
apogee.configure({ header: 'x-apogee-version', default: '1' }); | ||
this.app.use(require('errorhandler')()); | ||
@@ -82,3 +82,3 @@ }); | ||
var app = express(); | ||
apogee.config({ header: 'x-apogee-version' }); | ||
apogee.configure({ header: 'x-apogee-version' }); | ||
app.route('/widgets').all(apogee.limit('v2')).get(function (req, res) { | ||
@@ -85,0 +85,0 @@ res.json({ message: 'v2' }); |
7372
113