|
| 1 | +import { fetchTxCountByPaybuttonId } from 'services/transactionService' |
| 2 | +import { RESPONSE_MESSAGES } from 'constants/index' |
| 3 | +import { fetchPaybuttonById } from 'services/paybuttonService' |
| 4 | +import { setSession } from 'utils/setSession' |
| 5 | +import { parseError } from 'utils/validators' |
| 6 | + |
| 7 | +export default async (req: any, res: any): Promise<void> => { |
| 8 | + if (req.method === 'GET') { |
| 9 | + try { |
| 10 | + await setSession(req, res) |
| 11 | + const paybuttonId = req.query.id as string |
| 12 | + const userId = req.session.userId |
| 13 | + const paybutton = await fetchPaybuttonById(paybuttonId) |
| 14 | + if (paybutton.providerUserId !== userId) { |
| 15 | + throw new Error(RESPONSE_MESSAGES.RESOURCE_DOES_NOT_BELONG_TO_USER_400.message) |
| 16 | + } |
| 17 | + const count = await fetchTxCountByPaybuttonId(paybuttonId) |
| 18 | + res.status(200).send(count) |
| 19 | + } catch (err: any) { |
| 20 | + const parsedError = parseError(err) |
| 21 | + switch (parsedError.message) { |
| 22 | + case RESPONSE_MESSAGES.NO_BUTTON_FOUND_404.message: |
| 23 | + res.status(404).json(RESPONSE_MESSAGES.NO_BUTTON_FOUND_404) |
| 24 | + break |
| 25 | + case RESPONSE_MESSAGES.USER_ID_NOT_PROVIDED_400.message: |
| 26 | + res.status(400).json(RESPONSE_MESSAGES.USER_ID_NOT_PROVIDED_400) |
| 27 | + break |
| 28 | + case RESPONSE_MESSAGES.RESOURCE_DOES_NOT_BELONG_TO_USER_400.message: |
| 29 | + res.status(400).json(RESPONSE_MESSAGES.RESOURCE_DOES_NOT_BELONG_TO_USER_400) |
| 30 | + break |
| 31 | + default: |
| 32 | + res.status(500).json({ statusCode: 500, message: err.message }) |
| 33 | + } |
| 34 | + } |
| 35 | + } |
| 36 | +} |
0 commit comments