class Validocno::Validator

Constants

CONTROL_URI

Public Class Methods

new(doc_number) click to toggle source
# File lib/validocno/validator.rb, line 6
def initialize(doc_number)
  @doc_number = doc_number
end

Public Instance Methods

check_response(response) click to toggle source
# File lib/validocno/validator.rb, line 43
def check_response(response)
  return true if response.code == 200
  fail StandardError, "#{response.code}: #{response.message}"
end
response_string() click to toggle source
# File lib/validocno/validator.rb, line 10
def response_string
  response = RestClient.get(CONTROL_URI, :params => { :qr => @doc_number })
  check_response(response)

  document = Nokogiri::HTML(response)

  node = document.at_css(".qrWidgetDocumentCheckResult")

  if node.nil? || node.children.empty?
    fail StandardError, 'Cannot parse document status string.'
  else
    node.children.at_css("div").text.strip
  end
end
response_strings() click to toggle source
# File lib/validocno/validator.rb, line 35
def response_strings
  {
    :valid => "Dokument #{@doc_number} on kehtiv.",
    :expired => "Dokument #{@doc_number} on kehtetu.",
    :invalid => "Dokumenti #{@doc_number} ei ole välja antud."
  }
end
validate() click to toggle source
# File lib/validocno/validator.rb, line 25
def validate
  response_string_result = response_string
  is_valid = response_string_result == response_strings[:valid]

  {
    :valid => is_valid,
    :message => response_string_result
  }
end