forked from efipay/sdk-node-apis-efi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhandler.js
67 lines (51 loc) · 1.82 KB
/
handler.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
import { testEfi } from './efiServices'
const apiVersion = 'v1.0'
const app = require('lambda-api')({
version: apiVersion,
base: 'billing', // change api bath here, final url will for instance: aws_api_gateway_url/prod/billing/status
logger: {
level: 'info', // debug
timestamp: () => new Date().toUTCString(), // custom timestamp
stack: true
}})
app.use((req, res, next) => {
res.cors() // Define Middleware
next()
})
const generateResult = (status, result) => {
const jRes = {
status: status,
stage: '' + process.env.stage,
result: result,
version: apiVersion
}
return jRes
}
// API routes
app.get('/status', async (req, res) => {
return { status: 'ok' }
})
app.get('/efi', async (req, res) => {
console.log('/efi Received event:', JSON.stringify(req.body, null, 2))
let event = req.body
await testEfi()
res.header('Access-Control-Allow-Origin', '*')
res.header('Access-Control-Allow-Credentials', 'true')
return res.status(200).json(generateResult('ok', {})) // result
})
app.options('/*', (req, res) => {
// Add CORS headers
res.header('Access-Control-Allow-Origin', '*')
res.header('Access-Control-Allow-Methods', 'GET, PUT, POST, DELETE, OPTIONS')
res.header('Access-Control-Allow-Headers', 'StoreId', 'storeid', 'Content-Type, Authorization, Content-Length, X-Requested-With')
res.status(200).send({})
})
// ----------------------------------------------------------------------------//
// Main router handler
// ----------------------------------------------------------------------------//
// module.exports.router
export const router = async (event, context) => {
console.log('router:' + process.env.stage)
context.callbackWaitsForEmptyEventLoop = false
return await app.run(event, context)
}