Я разрабатываю приложение, в котором мне нужно выполнить дополнительную проверку при создании объекта.
Я пытался использовать ловушки и функцию beforeValidate, но она не работает.Я пытаюсь завершить проверку, если отправленное значение больше, чем значение в БД (вычисленное значение на основе пользовательского запроса).
Transaction.beforeValidate(function(transaction, options) {
sequelize.query(
'SELECT SUM(IF(type = "buy", number_of_shares, number_of_shares * -1)) as remaining FROM transactions WHERE account_id = $account_id',
{
bind: {
account_id: req.body.account_id
},
type: sequelize.QueryTypes.SELECT
}
).then(result => {
if (req.body.type == "sell" && result.remaining < req.body.number_of_shares) {
throw error('Number of remaining shares is less than what you are trying to sell.') // psudeo code
}
}).then(result => {
return sequelize.Promise.resolve(user);
})
})