43 lines
1.5 KiB
JavaScript
43 lines
1.5 KiB
JavaScript
const express = require('express');
|
|
const sdt = require('silly-datetime');
|
|
const app = express();
|
|
const PORT = 1523;
|
|
app.use(express.json());
|
|
|
|
var balance = 0;
|
|
|
|
// 消费
|
|
app.post("/purchase", (req, res) => {
|
|
const value = parseFloat(req.body.amount);
|
|
if (isNaN(value) || !isFinite(req.body.amount)) {
|
|
res.status(400).send(JSON.stringify({code: -102, message: "Illegal data", data: {balance: balance}}));
|
|
return;
|
|
}
|
|
if(value < 0) {
|
|
res.status(400).send(JSON.stringify({code: -101, message: "Amount must be positive.", data: null}));
|
|
} else {
|
|
if (balance - value < 0) {
|
|
res.status(200).send(JSON.stringify({code: 101, message: "Insufficient balance.", data: null}));
|
|
return;
|
|
}
|
|
balance -= value;
|
|
res.status(200).send(JSON.stringify({code: 0, message: "purchased", data: {balance: balance}}));
|
|
}
|
|
});
|
|
|
|
// 充值
|
|
app.post("/recharge", (req, res) => {
|
|
const value = parseFloat(req.body.amount);
|
|
if (isNaN(value) || !isFinite(req.body.amount)) {
|
|
res.status(400).send(JSON.stringify({code: -102, message: "Illegal data", data: null}));
|
|
return;
|
|
}
|
|
balance += value;
|
|
res.status(200).send(JSON.stringify({code: 0, message: "recharged", data: {balance: balance}}));
|
|
});
|
|
|
|
app.get("/balance", (req, res) => {
|
|
res.status(200).send(JSON.stringify({code: 0, message: "success", data: {balance: balance}}))
|
|
});
|
|
|
|
app.listen(PORT, () => console.log(`Listening on port ${PORT}`)); |