// case 0: pass through
// —> | —>
// case 1: whitelist
// routes = {
// a: b,
// b: c
// }
// case 2: single transformation
// data = [user_id, ride_id, food_id, price] —> [user_id, price]
// case 3: multiple transformation
// data = [
// [user_id, ride_id],
// [price, delivery_charge],
// [lat, lng]
// ] —> [user_id, ride_id, price, lat, lng]
/**
## map and pass through
proxy = Proxy({
host,
map(req) {
return {
/api/quest/:id/: 'v1/quest/:id'
}
},
proxyReqOptDecorator(reqOptions) {
return reqOptions;
},
filter(req) {
whitelist = [a,b,c,d,e]
return whitelist in req ? true : false;
}
})
use('api/quest', proxy)
## transformation
app.get('api/quest/template', proxyPostRequest, (req, res, next) => {
res.end(request(req).then(transform));
})
app.get('api/quest/multiple', proxyPostRequest, (req, res, next) => {
resolve = Promise.all(request(a), request(b), request(c)).then(tranform);
})
use('api/quest', proxy)
.all((req, res, next) => {
if(!proxy.filter(req)) next();
res.
})
*/