Sha256: ba6fbb5207e3806f19667f48f6551c5bd934b0c4d1a47b731832d67132a9027e

Contents?: true

Size: 1.63 KB

Versions: 1

Compression:

Stored size: 1.63 KB

Contents

# encoding: utf-8

require 'savon'

class Request
  # Initialize params.
  def initialize(id_number, first_name, last_name, birth_year, version, open_timeout, read_timeout, log, wsdl)
    @id_number = id_number
    @first_name = first_name
    @last_name = last_name
    @birth_year = birth_year
    @version = version
    @open_timeout = open_timeout
    @read_timeout = read_timeout
    @log = log
    @wsdl = wsdl
  end

  # Initialize the SOAP client
  def sorgula
    kps_client = Savon.client(
      wsdl: @wsdl,
      soap_version: @version,
      open_timeout: @open_timeout,
      read_timeout: @read_timeout,
      log: @log
    )

  # Create message pattern
    message = {
      "TCKimlikNo" => @id_number.to_s,
      "Ad" => @first_name.tr('ı', 'I').tr('i', 'İ').upcase,
      "Soyad" => @last_name.tr('ı', 'I').tr('i', 'İ').upcase,
      "DogumYili" => @birth_year.to_s
    }

  # Make the SOAP request and handle errors.
    begin
      response = kps_client.call(:tc_kimlik_no_dogrula, message: message)
    rescue Savon::SOAPFault => error
      puts "SOAP fault. Error: #{error}"
    rescue Savon::HTTPError => error
      puts "HTTP connection error. Error: #{error}"
    end

  # Get the SOAP response and handle errors.
    begin
      bool_value = response.body[:tc_kimlik_no_dogrula_response][:tc_kimlik_no_dogrula_result]
      return bool_value
    rescue NoMethodError => error
      response.nil? ? (puts "Errors occured. Response is nil! Error: #{error}") : (puts "There is an error with the response. Error: #{error}")
    rescue Savon::InvalidResponseError => error
      puts "Not a valid response! Error: #{error}"
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mernis-1.0.1 lib/mernis/request.rb