Created
November 17, 2014 13:08
-
-
Save dwaligora/71ed8a3b37348350c628 to your computer and use it in GitHub Desktop.
error handling node
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
'use strict'; | |
var util = require('util'), | |
_ = require('lodash'), | |
nvbUtil = require('../../lib/nvb-util'), | |
session = require('../../lib/session'), | |
config = require('../../config'), | |
settingsManager = require('../../lib/settings'); | |
/** | |
* Check if given client may be handled by zipper service. | |
* Checking is based on url subdomains {client}.{domain} | |
* | |
* @param {Request} req | |
* @param {Response} res | |
* @param {Function} next | |
* @returns {*} | |
*/ | |
module.exports.authenticationBySubdomain = function(req, res, next) { | |
var RequestUtil = new nvbUtil.Request(req), | |
subdomains = RequestUtil.extractSubdomains(config.app.domain); | |
if (subdomains.length < 2) { | |
var err = new Error( | |
util.format( | |
'middleware::authenticationBySubdomain requesting host does not contain proper ' + | |
'subdomain pattern "{storage}.{client}.%s"', | |
config.app.domain | |
) | |
); | |
err.context = 'api'; | |
err.formatter = 'json'; | |
err.httpStatus = 500; | |
return next(err); | |
} | |
var clientId = subdomains[subdomains.length - 1], | |
provider = subdomains[subdomains.length - 2]; | |
settingsManager.getSetting('client', clientId, function(err, data) { | |
if (err) { | |
console.log(typeof err); | |
var err = new Error(err.message); | |
err.kernel = 'api'; | |
err.formatter = 'json'; | |
err.httpStatus = 404; | |
next(err); | |
} | |
session.setClient(clientId); | |
session.setProvider(provider); | |
return next(); | |
}); | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment