egov_utils 1.5.0.alpha10 → 1.5.0.alpha11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5be2f7d146ffd93939d4439e5499f8c6bb3850bb7c71f4e966b5c985497fa99f
4
- data.tar.gz: dbe8a432e8db4a475b40507a6b30977c63f6503faa5055c2906fac9f49ef75f6
3
+ metadata.gz: 1ed4c6bdd27ab9c2423bc2e68e5fd8b06d5e21d2f2e411e52e52dc066db560c3
4
+ data.tar.gz: d4d4fec938a553811e3d8889055a0863f57f3ea66f5788a6ac6112230ff1d827
5
5
  SHA512:
6
- metadata.gz: cfc3b34cad592a56c854f03a9f5831162718c2fcd817f3d421efec9383b0a918eb764623b9cbac2a54ed54371848cbd9a6e23d7407dd113612eb354a7663d9a6
7
- data.tar.gz: f12174cc8e38f84ee8dcf1534e9ef6f4cb5fa913c669bb964dbf7f039b3d8b2d16a617c87600ac7faa6438953ac7c7bf04b7dec0de0aea11fd9516a8d2f4a143
6
+ metadata.gz: 165986c704bcb0dbe843eb4ad1492dcf449e99141efd6ad6691d65d1ccc709ca37c88773c09e36a45c212538369ae2df4edb3a4ef5615108ca5e3fd21f2d4e3f
7
+ data.tar.gz: 387830b245543af1c1b0f239706ef927c6d4cba2c55a54dfb1c8dfdcc51c08ac7ebf652c6a8d7d275040a2fd1fb9236e0e2c4052d881e80546503c13db9b9237
@@ -12,7 +12,7 @@ module EgovUtils
12
12
 
13
13
  def strategy_class
14
14
  if Rails.env.production?
15
- EgovUtils::Iszr::Addresses::FetchForLegalPerson::FromRemoteReposiory
15
+ EgovUtils::Iszr::FindAddressByIco
16
16
  else
17
17
  EgovUtils::Iszr::Addresses::FetchForLegalPerson::FromSampleData
18
18
  end
@@ -0,0 +1,78 @@
1
+ module EgovUtils
2
+ module Iszr
3
+ module LegalPeople
4
+ class FindAddressByIco < Request
5
+ string :remote_id
6
+
7
+ private
8
+
9
+ def handle_response!
10
+ EgovUtils::Address.new(
11
+ street:
12
+ response_body.xpath('//UliceNazev').text.presence || response_body.xpath('//CastObceNazev').text,
13
+ house_number: response_body.xpath('//CisloDomovni').text,
14
+ orientation_number: response_body.xpath('//CisloOrientacni').text,
15
+ city: response_body.xpath('//ObecNazev').text,
16
+ postcode: response_body.xpath('//PostaKod').text,
17
+ egov_identifier: response_body.xpath('//AdresniMistoKod').text,
18
+ country: 203,
19
+ district: district.name,
20
+ region: region.name
21
+ )
22
+ end
23
+
24
+ def body
25
+ Nokogiri::XML::Builder.new do |xml|
26
+ xml['e256'].RosCtiIco2(
27
+ 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance',
28
+ 'xsi:schemaLocation' => 'urn:cz:isvs:iszr:schemas:IszrRosCtiIco2:v1 IszrRosCtiIco2.xsd',
29
+ 'xmlns:abs' => 'urn:cz:isvs:iszr:schemas:IszrAbstract:v1',
30
+ 'xmlns:e256' => 'urn:cz:isvs:iszr:schemas:IszrRosCtiIco2:v1',
31
+ 'xmlns:reg' => 'urn:cz:isvs:reg:schemas:RegTypy:v1',
32
+ 'xmlns:ros' => 'urn:cz:isvs:ros:schemas:RosDotazyData:v2'
33
+ ) {
34
+ xml['abs'].ZadostInfo {
35
+ xml['reg'].CasZadosti Time.current.iso8601
36
+ xml['reg'].Agenda EgovUtils::Settings['iszr']['agenda']
37
+ xml['reg'].AgendovaRole EgovUtils::Settings['iszr']['agendova_role']
38
+ xml['reg'].Ovm '00025429'
39
+ xml['reg'].Ais EgovUtils::Settings['iszr']['ais']
40
+ xml['reg'].Subjekt '00025429'
41
+ xml['reg'].Uzivatel 'Administrator'
42
+ xml['reg'].DuvodUcel 'ztotozneni'
43
+ xml['reg'].AgendaZadostId SecureRandom.uuid
44
+ }
45
+ xml['abs'].AutorizaceInfo {
46
+ xml['abs'].SeznamUdaju 'ObchodniNazev AdresaSidla ROBCti ROSCti RUIANCti'
47
+ }
48
+ xml['e256'].Zadost {
49
+ xml['e256'].RosCtiIco2Data {
50
+ xml['ros'].Ico remote_id
51
+ }
52
+ }
53
+ }
54
+ end
55
+ end
56
+
57
+ def response_error_code
58
+ @response_error_code ||=
59
+ response_body.xpath('//VysledekSubKod').last&.text&.presence
60
+ end
61
+
62
+ def internal_error_code
63
+ return unless response_error_code
64
+
65
+ if response_error_code == 'ZAZNAM NENALEZEN'
66
+ "not_found"
67
+ elsif response_error_code == 'PREKROCEN POCET'
68
+ "multiple_records_found"
69
+ end
70
+ end
71
+
72
+ def service_id
73
+ 'E256'
74
+ end
75
+ end
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,63 @@
1
+ # frozen_string_literal: true
2
+
3
+ module EgovUtils
4
+ module Iszr
5
+ class FindPersonByAifo < Request
6
+ string :remote_id
7
+
8
+ private
9
+
10
+ def handle_response!
11
+ {
12
+ name: response_body.xpath('//OsobaNazev').text.capitalize,
13
+ ico: remote_id
14
+ }
15
+ end
16
+
17
+ def body
18
+ Nokogiri::XML::Builder.new do |xml|
19
+ xml[service_id].RobCtiAifo2(
20
+ 'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance',
21
+ 'xsi:schemaLocation' => 'urn:cz:isvs:iszr:schemas:IszrRobCtiAifo2:v1 IszrRobCtiAifo2.xsd',
22
+ 'xmlns:abs' => 'urn:cz:isvs:iszr:schemas:IszrAbstract:v1',
23
+ 'xmlns:E276' => 'urn:cz:isvs:iszr:schemas:IszrRobCtiAifo2:v1',
24
+ 'xmlns:reg' => 'urn:cz:isvs:reg:schemas:RegTypy:v1',
25
+ 'xmlns:rod' => 'urn:cz:isvs:rob:schemas:RobDotazyData:v1',
26
+ 'xmlns:rob' => 'urn:cz:isvs:rob:schemas:RobTypy:v1'
27
+ ) {
28
+ xml['abs'].ZadostInfo {
29
+ xml['reg'].CasZadosti Time.current.iso8601
30
+ xml['reg'].Agenda EgovUtils::Settings['iszr']['agenda']
31
+ xml['reg'].AgendovaRole EgovUtils::Settings['iszr']['agendova_role']
32
+ xml['reg'].Ovm '00025429'
33
+ xml['reg'].Ais EgovUtils::Settings['iszr']['ais']
34
+ xml['reg'].Subjekt '00025429'
35
+ xml['reg'].Uzivatel 'Administrator'
36
+ xml['reg'].DuvodUcel 'ztotozneni'
37
+ xml['reg'].AgendaZadostId SecureRandom.uuid
38
+ }
39
+ xml['abs'].AutorizaceInfo {
40
+ xml['abs'].SeznamUdaju 'Aifo Prijmeni Jmeno DatumNarozeni RUIANCti AdresaPobytu MistoNarozeni'
41
+ }
42
+ xml['abs'].MapaAifo(nacistData: true) {
43
+ xml['reg'].PrevodAifo {
44
+ xml['reg'].LokalniAifo 1
45
+ xml['reg'].GlobalniAifo remote_id
46
+ }
47
+ }
48
+ xml[service_id].Zadost {
49
+ xml[service_id].RobCtiAifo2Data {
50
+ xml['rod'].Aifo 1
51
+ xml['rod'].VyuzitiPoskytnuti 'poskytnuti'
52
+ }
53
+ }
54
+ }
55
+ end
56
+ end
57
+
58
+ def service_id
59
+ 'E276'
60
+ end
61
+ end
62
+ end
63
+ end
@@ -6,32 +6,45 @@ module EgovUtils
6
6
 
7
7
  private
8
8
 
9
+ def handle_response!
10
+ if internal_error_code
11
+ errors.add(:base, internal_error_code)
12
+ return
13
+ end
14
+
15
+ EgovUtils::Services::Iszr::LegalPeople.new(
16
+ name: response_body.xpath('//NazevOsoby').text.capitalize,
17
+ ico: response_body.xpath('//Ico').text,
18
+ remote_id: response_body.xpath('//Ico').text
19
+ )
20
+ end
21
+
9
22
  def body
10
23
  Nokogiri::XML::Builder.new do |xml|
11
- xml['e20'].RosCtiIco(
24
+ xml['e256'].RosCtiIco2(
12
25
  'xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance',
13
- 'xsi:schemaLocation' => 'urn:cz:isvs:iszr:schemas:IszrRosCtiIco:v1 IszrRosCtiIco.xsd',
26
+ 'xsi:schemaLocation' => 'urn:cz:isvs:iszr:schemas:IszrRosCtiIco2:v1 IszrRosCtiIco2.xsd',
14
27
  'xmlns:abs' => 'urn:cz:isvs:iszr:schemas:IszrAbstract:v1',
15
- 'xmlns:e20' => 'urn:cz:isvs:iszr:schemas:IszrRosCtiIco:v1',
28
+ 'xmlns:e256' => 'urn:cz:isvs:iszr:schemas:IszrRosCtiIco2:v1',
16
29
  'xmlns:reg' => 'urn:cz:isvs:reg:schemas:RegTypy:v1',
17
30
  'xmlns:ros' => 'urn:cz:isvs:ros:schemas:RosDotazyData:v2'
18
31
  ) {
19
32
  xml['abs'].ZadostInfo {
20
- xml['reg'].CasZadosti Time.current
21
- xml['reg'].Agenda 'A482'
22
- xml['reg'].AgendovaRole 'CTENAR'
33
+ xml['reg'].CasZadosti Time.current.iso8601
34
+ xml['reg'].Agenda EgovUtils::Settings['iszr']['agenda']
35
+ xml['reg'].AgendovaRole EgovUtils::Settings['iszr']['agendova_role']
23
36
  xml['reg'].Ovm '00025429'
24
- xml['reg'].Ais '124'
25
- xml['reg'].Uzivatel 'Uzivatel156'
26
- xml['reg'].AgendaZadostId '5a7b9af0-f759-4632-ab96-7bb06df1b98c'
37
+ xml['reg'].Ais EgovUtils::Settings['iszr']['ais']
38
+ xml['reg'].Subjekt '00025429'
39
+ xml['reg'].Uzivatel 'Administrator'
40
+ xml['reg'].DuvodUcel 'ztotozneni'
41
+ xml['reg'].AgendaZadostId SecureRandom.uuid
27
42
  }
28
43
  xml['abs'].AutorizaceInfo {
29
- xml['abs'].SeznamUdaju 'DatovaSchrankaROS ObchodniNazev PravniForma PravniStav
30
- FyzickaOsoba AdresaSidla Provozovny StatutarniOrgany DatumVznikuOpravneni DatumZanikuOpravneni
31
- Ico Jmeno Prijmeni AdresaPobytu AdresaUradu ROBCti ROSCti RUIANCti'
44
+ xml['abs'].SeznamUdaju 'ObchodniNazev AdresaSidla ROBCti ROSCti RUIANCti'
32
45
  }
33
- xml['e20'].Zadost {
34
- xml['e20'].RosCtiIcoData {
46
+ xml['e256'].Zadost {
47
+ xml['e256'].RosCtiIco2Data {
35
48
  xml['ros'].Ico ico
36
49
  }
37
50
  }
@@ -39,8 +52,23 @@ module EgovUtils
39
52
  end
40
53
  end
41
54
 
55
+ def response_error_code
56
+ @response_error_code ||=
57
+ response_body.xpath('//VysledekSubKod').last&.text&.presence
58
+ end
59
+
60
+ def internal_error_code
61
+ return unless response_error_code
62
+
63
+ if response_error_code == 'ZAZNAM NENALEZEN'
64
+ "not_found"
65
+ elsif response_error_code == 'PREKROCEN POCET'
66
+ "multiple_records_found"
67
+ end
68
+ end
69
+
42
70
  def service_id
43
- 'E20'
71
+ 'E256'
44
72
  end
45
73
  end
46
74
  end
@@ -19,7 +19,7 @@ module EgovUtils
19
19
 
20
20
  def find_person_service
21
21
  if Rails.env.production?
22
- EgovUtils::Iszr::LegalPeople::ProdSearch
22
+ EgovUtils::Iszr::LegalPeople::CreateRequest
23
23
  else
24
24
  EgovUtils::Iszr::LegalPeople::DevSearch
25
25
  end
@@ -9,12 +9,20 @@ module EgovUtils
9
9
  string :remote_id
10
10
 
11
11
  def execute
12
- find_person
12
+ if Rails.env.production?
13
+ find_remote_person
14
+ else
15
+ find_local_person
16
+ end
13
17
  end
14
18
 
15
19
  private
16
20
 
17
- def find_person
21
+ def find_remote_person
22
+ EgovUtils::Iszr::FindPersonByIco.run!(remote_id:)
23
+ end
24
+
25
+ def find_local_person
18
26
  initialize_person.find do |person|
19
27
  person.remote_id == remote_id
20
28
  end
@@ -53,7 +53,6 @@ module EgovUtils
53
53
  birth_place: response_body.xpath('//Lokalita/Nazev').text,
54
54
  remote_id: response_body.xpath('//GlobalniAifo').text
55
55
  )
56
-
57
56
  end
58
57
 
59
58
  def search_stage_one
@@ -18,27 +18,27 @@
18
18
  = label_tag 'birth_date', 'Datum narození'
19
19
  = date_field_tag :birth_date, {}, class: 'form-control'
20
20
  = link_to 'Vyhledat', {}, class: 'btn btn-primary'
21
- .legal_person
22
- .row
23
- = form.fields_for(:legal_person, person.legal_person || EgovUtils::LegalPerson.new) do |fields|
24
- .col-12= fields.text_field(:name)
25
- .col-12.col-sm-6= fields.text_field(:ico)
26
- .col-12.col-sm-6= fields.select2 :legal_form, list_values_for_select(azahara_attribute_for(EgovUtils::LegalPerson, 'legal_form'))
27
- .row
28
- .col-12
29
- = form.fields_for(:residence, person.residence || EgovUtils::Address.new) do |fields|
30
- = render 'egov_utils/addresses/form', form: fields, address: fields.object
31
-
32
- -# .legal-person-row.identification-form.legal_person.row
33
- -# .col-12
34
- -# .card
35
- -# .card-header Ztotožnění právnické osoby
36
- -# .card-body
37
- -# .form
38
- -# .form-group
39
- -# = label_tag 'ico', 'IČO'
40
- -# = text_field_tag :ico, {}, class: 'form-control'
41
- -# = link_to 'Vyhledat', nil, class: 'btn btn-primary'
21
+ -# .legal_person
22
+ -# .row
23
+ -# = form.fields_for(:legal_person, person.legal_person || EgovUtils::LegalPerson.new) do |fields|
24
+ -# .col-12= fields.text_field(:name)
25
+ -# .col-12.col-sm-6= fields.text_field(:ico)
26
+ -# .col-12.col-sm-6= fields.select2 :legal_form, list_values_for_select(azahara_attribute_for(EgovUtils::LegalPerson, 'legal_form'))
27
+ -# .row
28
+ -# .col-12
29
+ -# = form.fields_for(:residence, person.residence || EgovUtils::Address.new) do |fields|
30
+ -# = render 'egov_utils/addresses/form', form: fields, address: fields.object
31
+
32
+ .legal-person-row.identification-form.legal_person.row
33
+ .col-12
34
+ .card
35
+ .card-header Ztotožnění právnické osoby
36
+ .card-body
37
+ .form
38
+ .form-group
39
+ = label_tag 'ico', 'IČO'
40
+ = text_field_tag :ico, {}, class: 'form-control'
41
+ = link_to 'Vyhledat', nil, class: 'btn btn-primary'
42
42
  = form.hidden_field :remote_id
43
43
 
44
44
  :javascript
@@ -1,3 +1,3 @@
1
1
  module EgovUtils
2
- VERSION = '1.5.0.alpha10'
2
+ VERSION = '1.5.0.alpha11'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: egov_utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0.alpha10
4
+ version: 1.5.0.alpha11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ondřej Ezr
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-09-30 00:00:00.000000000 Z
11
+ date: 2024-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -674,7 +674,9 @@ files:
674
674
  - app/services/egov_utils/iszr/addresses/fetch_for_natural_person/from_sample_data.rb
675
675
  - app/services/egov_utils/iszr/client.rb
676
676
  - app/services/egov_utils/iszr/find_address_by_aifo.rb
677
+ - app/services/egov_utils/iszr/find_address_by_ico.rb
677
678
  - app/services/egov_utils/iszr/find_person_by_aifo.rb
679
+ - app/services/egov_utils/iszr/find_person_by_ico.rb
678
680
  - app/services/egov_utils/iszr/legal_people/create_request.rb
679
681
  - app/services/egov_utils/iszr/legal_people/dev_search.rb
680
682
  - app/services/egov_utils/iszr/legal_people/prod_search.rb