const express = require("express") const router = express.Router() const { requireAuth } = require('./../../middleware/authmiddleware') const bodyParser = require('body-parser') var numbtest = /^\d+\.?\d*$/; const bank = require('./../../model/bank.js') const User = require('./../../model/user.js') router.use(bodyParser.json()) const speakeasy = require('speakeasy') async function Fill(){ if (!await bank.findOne()) { await bank.create({ balance: 5000 }) } } Fill() router.get("/value",async (req, res) => { const response = await bank.findOne() return res.json({status: "success", balance: response.balance}) }) router.post("/transaction/:id",async (req, res) => { const {apiKey, amount} = req.body if (!apiKey || !amount){ return res.json({status: "error", error: "Missing parameters"}) } if (apiKey !== "5#t#!aH52QAzY4@HF0C1k5quK&piuY9C"){ return res.json({status: "error", error: "Missing parameters"}) } if (isNaN(amount) === true){ return res.json({status: "error", error: "Amount must be a number!"}) } const response = await bank.findOne() if (amount > response.balance){ return res.json({status: "error", error: "Not enough money"}) } const user = await User.findOne({userid: req.params.id}) if (!user){ return res.json({status: "error", error: "User not found"}) } if (amount < 0){ // negative if (user.coins - Math.abs(amount) < 0){ // they will have negative coins return res.json({status: "error", error: "User will have negative coins."}) }else{ user.coins += amount user.markModified('coins') await user.save() } } if (amount > 0){ user.coins += amount user.markModified('coins') await user.save() } response.balance += amount * -1 response.markModified('balance') await response.save() return res.json({status: "success", balance: response.balance}) }) module.exports = router