class Trusona::Workers::TrusonaficationCreator
Creates Trusonafications
Constants
- DEFAULT_TIMEOUT
Public Class Methods
new(service: nil)
click to toggle source
# File lib/trusona/workers/trusonafication_creator.rb, line 10 def initialize(service: nil) @service = service || Trusona::Services::TrusonaficationService.new end
Public Instance Methods
create(params: {}, timeout: nil, &block)
click to toggle source
# File lib/trusona/workers/trusonafication_creator.rb, line 14 def create(params: {}, timeout: nil, &block) raise ArgumentError, 'Missing or empty params hash' if params.nil? || params.empty? resource = Trusona::Resources::Trusonafication.new(params) trusonafication = @service.create(resource) return trusonafication unless block_given? handle_block(trusonafication, @service, timeout, block) end
Private Instance Methods
handle_block(trusonafication, service, timeout, block)
click to toggle source
rubocop:disable Metrics/MethodLength
# File lib/trusona/workers/trusonafication_creator.rb, line 29 def handle_block(trusonafication, service, timeout, block) timeout ||= DEFAULT_TIMEOUT future = Time.now.to_i + timeout while Time.now.to_i < future t = service.get(trusonafication) if t.status == trusonafication.status sleep(1) else block.yield(t) break end end end