Есть типы Транзакций: "Пополнение", "Перевод"
Я создал следующие классы с методами для работы с сущностями
class TransactionService {
...
createTransfer(args) {}
createIncrease(args) {}
}
class BalanceService {
increase(args) {}
decrease(args) {}
}
В общем писал код следуюшим образом
// Начисляем юзеру на баланс
await BalanceService.increase(args);
// Создаем транзакцию на пополнение
await Transaction.createIncrease(args);
Ну вроде логично все. И тут в задаче появлись новые валюты и типы транзакций и я подумал - "А мое решение вообще адекватное?".
Сейчас чтобы каждый раз например не писать проверку на валюту в разных файлах и вызывать соответствующий метод типа
currencyId === 1 ? BalanceService.increaseRUB(args) : BalanceService.increaseUSD(args);
Я подумал, а что если уже в самом методе транзакций вызывать методы взаимодействия с балансом.
class TransactionService {
async createIncrease(args) {
...
// тут проверка валюты и начисление баланса
...
}
}
Как вы считаете норм идея или можно еще как то по другому реализовать?