class BlazeVerify::Batch

Attributes

id[RW]

Public Class Methods

new(id_or_emails, callback: nil) click to toggle source
# File lib/blazeverify/batch.rb, line 5
def initialize(id_or_emails, callback: nil)
  if id_or_emails.is_a?(Array)
    @emails = id_or_emails
    @callback = callback
  elsif id_or_emails.is_a?(String)
    @id = id_or_emails
  else
    raise ArgumentError, 'expected an array of emails or batch id'
  end

  @client = BlazeVerify::Client.new
end

Public Instance Methods

complete?() click to toggle source
# File lib/blazeverify/batch.rb, line 38
def complete?
  !status.complete?
end
inspect() click to toggle source
# File lib/blazeverify/batch.rb, line 42
def inspect
  ivars = instance_variables.map do |e|
    [e.to_s.delete('@'), instance_variable_get(e)]
  end.to_h
  "#<#{self.class}:0x#{(object_id << 1).to_s(16)}> JSON: " +
    JSON.pretty_generate(ivars)
end
status() click to toggle source
# File lib/blazeverify/batch.rb, line 27
def status
  return nil unless @id
  return @status if @status

  response = @client.request(:get, 'batch', { id: @id })
  bs = BatchStatus.new(response.body)
  @status = bs if bs.complete?

  bs
end
verify() click to toggle source
# File lib/blazeverify/batch.rb, line 18
def verify
  return @id unless @id.nil?

  opts = { emails: @emails.join(','), url: @callback }
  response = @client.request(:post, 'batch', opts)

  @id = response.body['id']
end