-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
69 lines (57 loc) · 2.06 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
const express = require('express');
const bodyParser = require("body-parser");
const rTracer = require('cls-rtracer');
const axios = require('axios');
var cors = require('cors')
const logger = require('./logger');
global.rTracer = rTracer;
const app = express()
const port = process.env.PORT || 8080
app.use(cors())
app.use(bodyParser.urlencoded({
parameterLimit: 100000,
limit: '50mb',
extended: false
}));
app.use(bodyParser.json());
app.use(rTracer.expressMiddleware(
{
useHeader: true,
headerName: 'auth_tracer_id'
}
))
app.get('/ping', async(req,res) => {
return res.send({'success' : 1})
})
app.post('/', async (req, res) => {
logger.info('>>>>>>>>>>>>>> Execution Starts Here >>>>>>>>>>>>>>')
logger.info(`Request headers: ${JSON.stringify(req.headers)}, body: ${JSON.stringify(req.body)}, query: ${JSON.stringify(req.query)}, URL: ${JSON.stringify(req.url)}, IP: ${req.ip}`);
let start_time = Date.now()
let result = await API_CALL(req.body.options);
logger.info(`Response data: ${JSON.stringify(result)}`)
logger.info(`Response time: ${Date.now() - start_time} MS`)
logger.info('>>>>>>>>>>>>>> Execution Ends Here >>>>>>>>>>>>>>')
return res.send(result)
})
const API_CALL = async (data) => {
try {
if(!data || typeof data != 'object' || Object.keys(data).length === 0) {
return {success: 0, message: "Options is required!"}
}
if(!data.url || data.url.trim() == '') {
return {success: 0, message: "Url is required!"}
}
if(!data.method || data.method.trim() == '') {
return {success: 0, message: "Method is required!"}
}
let response = await axios(data);
logger.info(`Response from axios | Status: ${response.status}`)
return {success: 1, message: response.data}
} catch (error) {
console.log(error)
return {success: 0, message: `Failed with error: ${error.toString()}`}
}
}
app.listen(port, () => {
logger.info(`Example app listening at http://127.0.0.1:${port}`);
})