Skip to content

Commit

Permalink
Create transfers.js
Browse files Browse the repository at this point in the history
  • Loading branch information
KOSASIH authored May 10, 2024
1 parent 89490a3 commit 2c80799
Showing 1 changed file with 31 additions and 0 deletions.
31 changes: 31 additions & 0 deletions src/controllers/transfers.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
const Transfer = require("../models/transfer");
const Account = require("../models/account");

exports.create = async (req, res) => {
const senderAccount = await Account.findById(req.body.sender_account_id);
const receiverAccount = await Account.findById(req.body.receiver_account_id);

if (!senderAccount || !receiverAccount) {
return res.status(400).json({ message: "Account not found" });
}

if (senderAccount.balance < req.body.amount) {
return res.status(400).json({ message: "Insufficient balance" });
}

const transfer = new Transfer({
sender_account_id: req.body.sender_account_id,
receiver_account_id: req.body.receiver_account_id,
amount: req.body.amount,
});

await transfer.save();

senderAccount.balance -= req.body.amount;
receiverAccount.balance += req.body.amount;

await senderAccount.save();
await receiverAccount.save();

res.json({ message: "Transfer successful", transfer });
};

0 comments on commit 2c80799

Please sign in to comment.