-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathindex.ts
More file actions
47 lines (42 loc) · 1.98 KB
/
index.ts
File metadata and controls
47 lines (42 loc) · 1.98 KB
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
import { generatePaymentId } from 'services/clientPaymentService'
import { parseAddress, parseCreatePaymentIdPOSTRequest } from 'utils/validators'
import { RESPONSE_MESSAGES } from 'constants/index'
import { runMiddleware } from 'utils/index'
import Cors from 'cors'
const cors = Cors({
methods: ['POST']
})
export default async (req: any, res: any): Promise<void> => {
await runMiddleware(req, res, cors)
if (req.method === 'POST') {
try {
const { amount, fields, address } = parseCreatePaymentIdPOSTRequest(req.body)
const parsedAddress = parseAddress(address)
const paymentId = await generatePaymentId(parsedAddress, amount, fields)
res.status(200).json({ paymentId })
} catch (error: any) {
switch (error.message) {
case RESPONSE_MESSAGES.ADDRESS_NOT_PROVIDED_400.message:
res.status(RESPONSE_MESSAGES.ADDRESS_NOT_PROVIDED_400.statusCode).json(RESPONSE_MESSAGES.ADDRESS_NOT_PROVIDED_400)
break
case RESPONSE_MESSAGES.INVALID_ADDRESS_400.message:
res.status(RESPONSE_MESSAGES.INVALID_ADDRESS_400.statusCode).json(RESPONSE_MESSAGES.INVALID_ADDRESS_400)
break
case RESPONSE_MESSAGES.INVALID_FIELDS_FORMAT_400.message:
res.status(RESPONSE_MESSAGES.INVALID_FIELDS_FORMAT_400.statusCode).json(RESPONSE_MESSAGES.INVALID_FIELDS_FORMAT_400)
break
case RESPONSE_MESSAGES.INVALID_FIELD_STRUCTURE_400.message:
res.status(RESPONSE_MESSAGES.INVALID_FIELD_STRUCTURE_400.statusCode).json(RESPONSE_MESSAGES.INVALID_FIELD_STRUCTURE_400)
break
case RESPONSE_MESSAGES.INVALID_AMOUNT_400.message:
res.status(RESPONSE_MESSAGES.INVALID_AMOUNT_400.statusCode).json(RESPONSE_MESSAGES.INVALID_AMOUNT_400)
break
default:
res.status(500).json({ statusCode: 500, message: error.message })
}
}
} else {
res.status(RESPONSE_MESSAGES.METHOD_NOT_ALLOWED_405.statusCode)
.json(RESPONSE_MESSAGES.METHOD_NOT_ALLOWED_405)
}
}