prodio
Version:
Simplified project management
52 lines (49 loc) • 1.09 kB
JavaScript
var Hapi = require('hapi');
var Joi = require('joi');
var routeConfig = {
/*
description: "Used to proxy a request from the client to an external endpoint.",
validate: {
query: Joi.object({url: Joi.string().required() }).options({allowUnknown: true})
},
*/
handler: {
proxy: {
mapUri: function(req, cb){
if(!req.query.url){
req.raw.res.end('Need URL');
}else{
return cb(null, req.query.url);
}
},
passThrough: true
}
}
};
module.exports = function(options, next){
var config = options.config;
var server = options.hapi;
server.route([
{
method: 'GET',
path: config.route + 'proxy',
config: routeConfig
},
{
method: 'POST',
path: config.route + 'proxy',
config: routeConfig
},
{
method: 'PUT',
path: config.route + 'proxy',
config: routeConfig
},
{
method: 'DELETE',
path: config.route + 'proxy',
config: routeConfig
},
]);
next();
};