class Tenios::API::Verification

Constants

DOCUMENT_TYPES
OPTIONS
PDF_FILE_SIGNATURE

Attributes

client[R]

Public Class Methods

new(client) click to toggle source
# File lib/tenios/api/verification.rb, line 10
def initialize(client)
  @client = client
end

Public Instance Methods

create(options) click to toggle source
# File lib/tenios/api/verification.rb, line 23
def create(options)
  payload = build_payload(options)
  client.post("/verification/create", **payload)
end

Private Instance Methods

build_option(options) click to toggle source
# File lib/tenios/api/verification.rb, line 47
def build_option(options)
  lambda do |name|
    value = options.fetch(name)
    validate = :"validate_#{name}!"
    send validate, value if respond_to? validate, true
    [name, value]
  end
end
build_payload(options) click to toggle source
# File lib/tenios/api/verification.rb, line 42
def build_payload(options)
  to_option = build_option(options)
  OPTIONS.map(&to_option).to_h
end
validate_document_data!(data) click to toggle source
# File lib/tenios/api/verification.rb, line 65
def validate_document_data!(data)
  return if data.start_with? PDF_FILE_SIGNATURE

  raise ArgumentError, "invalid document_data: should be a base64 encoded pdf file"
end
validate_document_type!(type) click to toggle source
# File lib/tenios/api/verification.rb, line 56
def validate_document_type!(type)
  return if DOCUMENT_TYPES.include? type

  raise ArgumentError, "invalid document_type: #{type}"
end