apis for accounts, transactions and messages table

main
yikth 5 years ago
parent 10433b9eb2
commit fa4e3f9ec5

@ -8,7 +8,7 @@ const connection = require("../connection");
}); */ }); */
/* /*
AddUser() AddAccount()
POST route for /accounts POST route for /accounts
with body = { with body = {
"id":598, "id":598,
@ -22,8 +22,8 @@ AddUser()
router.post("/", (request, response) => { router.post("/", (request, response) => {
console.log(request.body); console.log(request.body);
// //
connection.query(`INSERT INTO accounts(user_id, acct_type, acct_number, balance, date_created, max_limit) 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.date}, ${request.body.max_limit})`, VALUES (${request.body.userid},'${request.body.type}', '${request.body.account_no}', ${request.body.balance}, ${request.body.max_limit})`,
(err, result) => { (err, result) => {
if (err) { if (err) {
response.send("Some record error occur"); response.send("Some record error occur");
@ -39,7 +39,7 @@ router.post("/", (request, response) => {
router.get("/", (request, response) => { router.get("/", (request, response) => {
console.log(request.body); console.log(request.body);
// //
strQuery = "SELECT * FROM accounts"; strQuery = "SELECT * FROM accounts";
if (request.body.limit > 0) { if (request.body.limit > 0) {
strQuery += ` LIMIT ${request.body.limit}` strQuery += ` LIMIT ${request.body.limit}`
} }
@ -55,4 +55,124 @@ router.get("/", (request, response) => {
}); });
}); });
// DeleteAccount()
// DELETE route for /accounts query
router.delete("/", (request, response) => {
console.log(request.body);
//
strQuery = `DELETE FROM accounts 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);
}
});
});
// GetAccountById()
// GET route for /accounts/id query (AddUser)
router.get("/id", (request, response) => {
console.log(request.body);
//
strQuery = `SELECT * FROM accounts WHERE user_id = ${request.body.id}`;
connection.query(strQuery,
(err, result) => {
if (err) {
response.send("Some error occur");
}
else {
response.send(result);
}
});
});
// GetAccountByName()
// GET route for /accounts/name query
router.get("/name", (request, response) => {
console.log(request.body);
//
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.body.name}'`;
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; module.exports = router;

@ -2,28 +2,12 @@ const express = require('express');
const router = express.Router(); const router = express.Router();
const connection = require("../connection"); const connection = require("../connection");
/* GET users listing. */ // add message
/* router.get('/', function(req, res, next) {
res.send('respond with a resource');
}); */
/*
AddUser()
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) => { router.post("/", (request, response) => {
console.log(request.body); console.log(request.body);
// //
connection.query(`INSERT INTO messages (user_id, id, date, remark) connection.query(`INSERT INTO messages (user_id, date, remark)
VALUES (${request.body.userid}, ${request.body.id}, ${request.body.date}, ${request.body.remark})`, VALUES (${request.body.id}, NOW(), '${request.body.message}')`,
(err, result) => { (err, result) => {
if (err) { if (err) {
response.send("Some record error occur"); response.send("Some record error occur");
@ -34,7 +18,22 @@ router.post("/", (request, response) => {
}); });
}); });
// ShowAccounts() // delete message
router.delete("/", (request, response) => {
console.log(request.body);
//
connection.query(`DELETE FROM messages WHERE id = ${request.body.message_id}`,
(err, result) => {
if (err) {
response.send("Some record error occur");
}
else {
response.send(result);
}
});
});
// ShowMessages()
// GET route for /messages query (AddUser) // GET route for /messages query (AddUser)
router.get("/", (request, response) => { router.get("/", (request, response) => {
console.log(request.body); console.log(request.body);

@ -2,27 +2,11 @@ const express = require('express');
const router = express.Router(); const router = express.Router();
const connection = require("../connection"); const connection = require("../connection");
/* GET users listing. */ // add a transaction
/* router.get('/', function(req, res, next) {
res.send('respond with a resource');
}); */
/*
AddUser()
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) => { router.post("/", (request, response) => {
console.log(request.body); console.log(request.body);
// //
connection.query(`INSERT INTO transactions (acct_number, id, date, type, amount) connection.query(`INSERT INTO transactions (acct_number, date, type, amount)
VALUES ('${request.body.account_no}', ${request.body.date}, '${request.body.type}', ${request.body.amount})`, VALUES ('${request.body.account_no}', ${request.body.date}, '${request.body.type}', ${request.body.amount})`,
(err, result) => { (err, result) => {
if (err) { if (err) {
@ -34,8 +18,23 @@ router.post("/", (request, response) => {
}); });
}); });
// ShowAccounts() // delete a transaction
// GET route for /accounts query (AddUser) router.delete("/", (request, response) => {
console.log(request.body);
//
connection.query(`DELETE FROM transactions WHERE id = ${request.body.id}`,
(err, result) => {
if (err) {
response.send("Some record error occur");
}
else {
response.send(result);
}
});
});
// ShowTransactions()
// GET route for /transactions query (AddUser)
router.get("/", (request, response) => { router.get("/", (request, response) => {
console.log(request.body); console.log(request.body);
// //
@ -55,4 +54,118 @@ router.get("/", (request, response) => {
}); });
}); });
// GetTransactionByAccount
// GET route for /transactions query (AddUser)
router.get("/account", (request, response) => {
console.log(request.body);
//
strQuery = `SELECT * FROM transactions WHERE acct_number = '${request.body.account_no}'`;
connection.query(strQuery,
(err, result) => {
if (err) {
response.send("Some error occur");
}
else {
response.send(result);
}
});
});
// GetTransactionByUserId
// GET route for /transactions query (AddUser)
router.get("/id", (request, response) => {
console.log(request.body);
//
strQuery = `SELECT a.user_id, t.* FROM transactions AS t
INNER JOIN accounts AS a
ON a.acct_number = t.acct_number
WHERE t.acct_number
IN (SELECT acct_number FROM accounts WHERE user_id = ${request.body.id})`;
connection.query(strQuery,
(err, result) => {
if (err) {
response.send("Some error occur");
}
else {
response.send(result);
}
});
});
// GetUsersAverageMonthly
// GET route for /transactions query (AddUser)
router.get("/useravemonthly", (request, response) => {
console.log(request.body);
//
strQuery = `SELECT a.user_id, t.date, AVG(t.amount)
FROM transactions AS t
INNER JOIN accounts AS a
ON a.acct_number = t.acct_number
GROUP BY a.user_id, MONTH(t.date), YEAR(date)
ORDER BY a.user_id`;
connection.query(strQuery,
(err, result) => {
if (err) {
response.send("Some error occur");
}
else {
response.send(result);
}
});
});
// GetTopSpender
// GET route for /transactions query (AddUser)
router.get("/top", (request, response) => {
console.log(request.body);
//
strQuery = `SELECT a.user_id, u.name, a.acct_number, t.date, COUNT(a.user_id) as cmonth
FROM transactions AS t
INNER JOIN accounts AS a
ON a.acct_number = t.acct_number
INNER JOIN users AS u
ON u.user_id = a.user_id
GROUP BY a.user_id, MONTH(t.date), YEAR(t.date)
ORDER BY cmonth DESC
LIMIT 1`;
connection.query(strQuery,
(err, result) => {
if (err) {
response.send("Some error occur");
}
else {
response.send(result);
}
});
});
// GetTypeSpending
// GET route for /transactions query
router.get("/type", (request, response) => {
console.log(request.body);
//
strQuery = `SELECT t1.user_id, t1.ttype, MAX(t1.ctype)
FROM (SELECT a.user_id, a.acct_number, t.date, t.type as ttype, COUNT(t.type) as ctype
FROM transactions AS t
INNER JOIN accounts AS a
ON a.acct_number = t.acct_number
GROUP BY a.user_id, t.type
ORDER BY a.user_id) as t1
GROUP BY t1.user_id`;
connection.query(strQuery,
(err, result) => {
if (err) {
response.send("Some error occur");
}
else {
response.send(result);
}
});
});
module.exports = router; module.exports = router;

Loading…
Cancel
Save