create user balances after register

This commit is contained in:
João Geonizeli
2021-08-15 19:46:54 -03:00
parent dd2e9d5ece
commit 4e4d124502
2 changed files with 44 additions and 0 deletions

View File

@@ -34,4 +34,12 @@ class User < ApplicationRecord
def full_name
"#{first_name} #{last_name}"
end
after_create do
create_balances
end
def create_balances
CreateUserBalances.new(self).call
end
end

View File

@@ -0,0 +1,36 @@
# frozen_string_literal: true
class CreateUserBalances
attr_reader :user
def initialize(user)
@user = user
end
def call
return nil if Rails.env.test?
ActiveRecord::Base.transaction do
create_fiat_balance
create_balances
end
end
private
def create_fiat_balance
FiatBalance.find_or_create_by!(
user_id: user.id
)
end
def create_balances
Currency.in_batches.each do |relation|
relation.each do |currency|
Balance.find_or_create_by(
user_id: user.id,
currency_id: currency.id,
)
end
end
end
end