# frozen_string_literal: true module EgovUtils module Iszr class FindPersonByAifo < Request string :remote_id private def handle_response! { firstname: response_body.xpath('//Jmeno').text.capitalize, lastname: response_body.xpath('//Prijmeni').text.capitalize, birth_date: response_body.xpath('//DatumNarozeni').text, birth_place: response_body.xpath('//Lokalita/Nazev').text } end def body Nokogiri::XML::Builder.new do |xml| xml[service_id].RobCtiAifo2( 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance', 'xsi:schemaLocation' => 'urn:cz:isvs:iszr:schemas:IszrRobCtiAifo2:v1 IszrRobCtiAifo2.xsd', 'xmlns:abs' => 'urn:cz:isvs:iszr:schemas:IszrAbstract:v1', 'xmlns:E276' => 'urn:cz:isvs:iszr:schemas:IszrRobCtiAifo2:v1', 'xmlns:reg' => 'urn:cz:isvs:reg:schemas:RegTypy:v1', 'xmlns:rod' => 'urn:cz:isvs:rob:schemas:RobDotazyData:v1', 'xmlns:rob' => 'urn:cz:isvs:rob:schemas:RobTypy:v1' ) { xml['abs'].ZadostInfo { xml['reg'].CasZadosti Time.current.iso8601 xml['reg'].Agenda EgovUtils::Settings['iszr']['agenda'] xml['reg'].AgendovaRole EgovUtils::Settings['iszr']['agendova_role'] xml['reg'].Ovm '00025429' xml['reg'].Ais EgovUtils::Settings['iszr']['ais'] xml['reg'].Subjekt '00025429' xml['reg'].Uzivatel 'Administrator' xml['reg'].DuvodUcel 'ztotozneni' xml['reg'].AgendaZadostId SecureRandom.uuid } xml['abs'].AutorizaceInfo { xml['abs'].SeznamUdaju 'Aifo Prijmeni Jmeno DatumNarozeni RUIANCti AdresaPobytu MistoNarozeni' } xml['abs'].MapaAifo(nacistData: true) { xml['reg'].PrevodAifo { xml['reg'].LokalniAifo 1 xml['reg'].GlobalniAifo remote_id } } xml[service_id].Zadost { xml[service_id].RobCtiAifo2Data { xml['rod'].Aifo 1 xml['rod'].VyuzitiPoskytnuti 'poskytnuti' } } } end end def service_id 'E276' end end end end