Comparing version 0.2.0 to 0.2.1
{ | ||
"name": "fln-rest", | ||
"version": "0.2.0", | ||
"version": "0.2.1", | ||
"description": "REST for client and server application", | ||
@@ -5,0 +5,0 @@ "scripts": { |
@@ -51,8 +51,17 @@ // @ts-check | ||
app.post('/api/proxy/', (req, res) => { | ||
self.proxy(req, res); | ||
}); | ||
let conf = _conf[req.body.target] | ||
let data = req.body.data | ||
self.doProxy(conf, data) | ||
.then(result => { | ||
res.status(result.status).json(result.payload) | ||
}) | ||
.catch(err => { | ||
res.status(err.status).json(err.error); | ||
}) | ||
}) | ||
} | ||
} | ||
static proxy(req, res){ | ||
/* static proxy(req, res){ | ||
let json, | ||
@@ -112,3 +121,65 @@ r = _conf[req.body.target], | ||
}, complete); | ||
} */ | ||
static doProxy(conf, data){ | ||
let json | ||
return new Promise((resolve, reject) => { | ||
if (!conf){ | ||
reject({status:404}); | ||
} | ||
json = typeof(conf.request)=='function' ? conf.request(data || {}) : (data || conf.request); | ||
process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; | ||
function doResponseSuccess(payload){ | ||
let body = payload.body | ||
resolve({status:200, body}) | ||
//res.status(200).json(payload); | ||
} | ||
function complete(err, response){ | ||
if (err){ | ||
if (conf.response){ | ||
return conf.response(err, null, (error, payload)=>{ | ||
if (error){ | ||
reject({status:500, error}) | ||
//res.status(500).json(error); | ||
}else{ | ||
doResponseSuccess(payload); | ||
} | ||
}); | ||
}else{ | ||
return reject({status:500, error:err}) //res.status(500).json(err); | ||
} | ||
} | ||
if (response.statusCode!=200){ | ||
return resolve({status: response.statusCode}) //res.status(response.statusCode).json(); | ||
} | ||
if (conf.response){ | ||
return conf.response(null, response, (error, payload)=>{ | ||
if (error){ | ||
return reject({status:500, error}) //res.status(500).json(error); | ||
}else{ | ||
doResponseSuccess(payload); | ||
} | ||
}); | ||
}else{ | ||
doResponseSuccess(response); | ||
} | ||
} | ||
request({ | ||
url : conf.url, | ||
method : conf.method, | ||
json : json, | ||
qs : conf.method=='GET' ? json : null, | ||
headers: conf.headers | ||
}, complete) | ||
}) | ||
} | ||
} |
78451
2143