80 lines
2.0 KiB
JavaScript
80 lines
2.0 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 |