83 lines
1.9 KiB
JavaScript
83 lines
1.9 KiB
JavaScript
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
|