refactor: messaging
This commit is contained in:
@@ -5,6 +5,7 @@ import User from '../model/user';
|
||||
import { db } from '../util/db';
|
||||
import Transaction from '../model/transaction';
|
||||
import { SendRequest, SendResponse} from '../messages/Send';
|
||||
import { GenericMessage as Err} from '../messages/Message';
|
||||
|
||||
|
||||
const router = express.Router();
|
||||
@@ -15,15 +16,14 @@ router.post('/', requireAuth, async (req, res) => {
|
||||
const data : SendRequest = req.body;
|
||||
const recipient = await User.findOne({where: {userID: data.recipientID}})
|
||||
if ( Number(data.amount) <= 0) {
|
||||
// TODO return SendResponse here and everywhere else in this file
|
||||
return res.status(400).json({ error: 'Invalid transfer amount' });
|
||||
return res.status(400).json(new Err('Invalid transfer amount'));
|
||||
}
|
||||
if (!recipient) {
|
||||
return res.status(404).json({ error: 'Recipient not found' });
|
||||
return res.status(404).json(new Err('Recipient not found' ));
|
||||
}
|
||||
if (Number(sender.balance) < Number(data.amount)){
|
||||
logger.error(`Insufficient balance: ${sender.balance} < ${data.amount}`)
|
||||
return res.status(402).json({error: 'Insufficient balance'})
|
||||
logger.debug(`Insufficient balance: ${sender.balance} < ${data.amount}`)
|
||||
return res.status(402).json(new Err('Insufficient balance'))
|
||||
}
|
||||
|
||||
await db.transaction(async (t) =>{
|
||||
@@ -36,10 +36,10 @@ router.post('/', requireAuth, async (req, res) => {
|
||||
reference: data.reference
|
||||
});
|
||||
})
|
||||
return res.status(200).json({balance: sender.balance, amount: data.amount});
|
||||
return res.status(200).json(new SendResponse(sender.balance))
|
||||
} catch (err) {
|
||||
logger.error('Failed to commit transaction:', err);
|
||||
return res.status(500).json({ error: 'Failed to commit transaction' });
|
||||
return res.status(500).json(new Err('Failed to commit transaction' ));
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user