juice-shop
35 строк · 1.3 Кб
1/*
2* Copyright (c) 2014-2024 Bjoern Kimminich & the OWASP Juice Shop contributors.
3* SPDX-License-Identifier: MIT
4*/
5
6import { type Request, type Response, type NextFunction } from 'express'
7import { WalletModel } from '../models/wallet'
8import { CardModel } from '../models/card'
9
10module.exports.getWalletBalance = function getWalletBalance () {
11return async (req: Request, res: Response, next: NextFunction) => {
12const wallet = await WalletModel.findOne({ where: { UserId: req.body.UserId } })
13if (wallet != null) {
14res.status(200).json({ status: 'success', data: wallet.balance })
15} else {
16res.status(404).json({ status: 'error' })
17}
18}
19}
20
21module.exports.addWalletBalance = function addWalletBalance () {
22return async (req: Request, res: Response, next: NextFunction) => {
23const cardId = req.body.paymentId
24const card = cardId ? await CardModel.findOne({ where: { id: cardId, UserId: req.body.UserId } }) : null
25if (card != null) {
26WalletModel.increment({ balance: req.body.balance }, { where: { UserId: req.body.UserId } }).then(() => {
27res.status(200).json({ status: 'success', data: req.body.balance })
28}).catch(() => {
29res.status(404).json({ status: 'error' })
30})
31} else {
32res.status(402).json({ status: 'error', message: 'Payment not accepted.' })
33}
34}
35}
36