Merge pull request #20 from exstake/feature/create-user-balances-after-register
create user balances after register
This commit is contained in:
@@ -34,4 +34,12 @@ class User < ApplicationRecord
|
|||||||
def full_name
|
def full_name
|
||||||
"#{first_name} #{last_name}"
|
"#{first_name} #{last_name}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
after_create do
|
||||||
|
create_balances
|
||||||
|
end
|
||||||
|
|
||||||
|
def create_balances
|
||||||
|
CreateUserBalances.new(self).call
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
36
app/services/create_user_balances.rb
Normal file
36
app/services/create_user_balances.rb
Normal 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
|
||||||
Reference in New Issue
Block a user