internetee-registry/app/interactions/domains/check_balance/mass.rb
2020-12-15 14:27:32 +05:00

33 lines
863 B
Ruby

module Domains
module CheckBalance
class Mass < ActiveInteraction::Base
array :domains do
object class: Epp::Domain
end
string :operation
integer :period
string :unit
float :balance
attr_accessor :total_price
def execute
calculate_total_price
balance >= @total_price
end
def calculate_total_price
@total_price = 0
domains.each do |domain|
task = Domains::CheckBalance::SingleDomain.run(domain: domain,
operation: 'renew',
period: period,
unit: unit)
task.valid? ? @total_price += task.result : errors.merge!(task.errors)
end
end
end
end
end