You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

152 lines
3.7 KiB
JavaScript

const express = require('express');
const router = express.Router();
const connection = require("../connection");
/* GET users listing. */
/* router.get('/', function(req, res, next) {
res.send('respond with a resource');
}); */
/*
AddAccount()
POST route for /accounts
with body = {
"id":598,
"type": "saving",
"account_no": "111222333",
"balance": "500",
"date" : "2020-09-11",
"max_limit": "10000"
}
*/
router.post("/", (request, response) => {
console.log(request.body);
//
connection.query(`INSERT INTO accounts(user_id, acct_type, acct_number, balance, max_limit)
VALUES (${request.body.userid},'${request.body.type}', '${request.body.account_no}', ${request.body.balance}, ${request.body.max_limit})`,
(err, result) => {
if (err) {
response.send("Some record error occur");
}
else {
response.send("Record saved successfully");
}
});
});
// ShowAccounts()
// GET route for /accounts query (AddUser)
router.get("/", (request, response) => {
console.log(request.body);
//
strQuery = "SELECT * FROM accounts";
if (request.query.id != null) {
strQuery += ` WHERE user_id = ${request.query.id}`
}
else if (request.query.name != null) {
strQuery = `SELECT u.name, a.* FROM accounts AS a
INNER JOIN users AS u
ON u.user_id = a.user_id
WHERE u.name = '${request.query.name}'`;
}
if (request.query.limit > 0) {
strQuery += ` LIMIT ${request.query.limit}`
}
connection.query(strQuery,
(err, result) => {
if (err) {
response.send("Some error occur");
}
else {
response.send(result);
}
});
});
// DeleteAccount()
// DELETE route for /accounts query
router.delete("/:account_no", (request, response) => {
console.log(request.params);
//
strQuery = `DELETE FROM accounts WHERE acct_number = '${request.params.account_no}'`;
console.log(strQuery);
connection.query(strQuery,
(err, result) => {
if (err) {
response.send("Some error occur");
}
else {
response.send(result);
}
});
});
// UpdateAccountBalance()
// PUT route for /accounts query
router.put("/name", (request, response) => {
console.log(request.body);
//
strQuery = `UPDATE accounts SET balance = ${request.body.balance} WHERE acct_number = ${request.body.account_no})`;
console.log(strQuery);
connection.query(strQuery,
(err, result) => {
if (err) {
response.send("Some error occur");
}
else {
response.send(result);
}
});
});
// GetHighestBalance()
// GET route for /accounts/highest query
router.get("/highest", (request, response) => {
console.log(request.body);
//
strQuery = `SELECT u.user_id, u.name, SUM(a.balance) AS total FROM accounts AS a
INNER JOIN users AS u
ON a.user_id = u.user_id
GROUP BY a.user_id
ORDER BY total DESC
LIMIT 1`;
console.log(strQuery);
connection.query(strQuery,
(err, result) => {
if (err) {
response.send("Some error occur");
}
else {
response.send(result);
}
});
});
// GetLowestBalance()
// GET route for /accounts/lowest query
router.get("/lowest", (request, response) => {
console.log(request.body);
//
strQuery = `SELECT u.user_id, u.name, SUM(a.balance) AS total FROM accounts AS a
INNER JOIN users AS u
ON a.user_id = u.user_id
GROUP BY a.user_id
ORDER BY total ASC
LIMIT 1`;
console.log(strQuery);
connection.query(strQuery,
(err, result) => {
if (err) {
response.send("Some error occur");
}
else {
response.send(result);
}
});
});
module.exports = router;