egov_utils 1.5.1 → 1.5.3

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: 9fc6111a6eb2353e73a8739cf9ec6deef39850bafd759d57bd1da1d712de94ac
4
- data.tar.gz: 511095327a6726e8722f6ffc5d06a0d77a8b0191fa7039e067d0d415e5cb732c
3
+ metadata.gz: c4593b9fed372b8713bd8ad41ae00a18aeed092632bc34b8372498e1d31fb6c8
4
+ data.tar.gz: 505909e434b0a286b79f862d668929494abe0111da958ea9a98a52a4ed2b4964
5
5
  SHA512:
6
- metadata.gz: 60f5e7271165702e73938b59da2efcfcc47f9dd3568dd9733e844d143b88470b871a4651273b10c5e507e694e29417a1ef75c829a4ce8738601602068a4c590d
7
- data.tar.gz: 82b126e04ea180491ee30fc030c6989f383b116752ec2ac41d1a6cacbcf55547ddad9afc190223f9c528ff4bfb4941bd75ad7ac07e15cf4b87e30f5c1de56592
6
+ metadata.gz: fed720bca91e3b70ba619ca64c93f02bb9f95522b5d45abc3060dd3e1a8cc74076926f05517f5625344d59cb9245503d317d0199877a552a865a52d582bbc89c
7
+ data.tar.gz: b30b6e1328c71cceb6efcf3504a7f805ff888ca72c727838cb053c98f5fa9e75d6d94d1995ec7a48f7ac1205bc94dbb2e926a9a1dd505fc04b6b9755d483914c
@@ -59,6 +59,46 @@ module EgovUtils
59
59
  person_entity.to_s
60
60
  end
61
61
 
62
+ def self.find_or_create_from_remote_id(create_attrs)
63
+ remote_id = create_attrs[:remote_id].presence
64
+ person_type = create_attrs[:person_type].presence
65
+
66
+ person = if remote_id.present?
67
+ EgovUtils::Person.find_by(
68
+ remote_id: remote_id.presence,
69
+ person_type: person_type.presence
70
+ )
71
+ end
72
+ return person if person
73
+
74
+ if remote_id
75
+ attributes =
76
+ if person_type == 'natural'
77
+ Iszr::NaturalPeople::SearchByRemoteId.run!(remote_id:)
78
+ else
79
+ Iszr::LegalPeople::SearchByRemoteId.run!(remote_id:)
80
+ end.to_h
81
+
82
+ person_entity =
83
+ if person_type == 'natural'
84
+ NaturalPerson.find_or_initialize_by(attributes.except(:remote_id))
85
+ else
86
+ LegalPerson.find_or_initialize_by(attributes.except(:remote_id))
87
+ end
88
+
89
+ if person_entity.persisted?
90
+ person_entity.person.update!(remote_id:)
91
+ else
92
+ person_entity.save(validate: false)
93
+ end
94
+ person_entity.person
95
+ else
96
+ new(create_attrs).tap do
97
+ _1.save(validate: false)
98
+ end
99
+ end
100
+ end
101
+
62
102
  private
63
103
 
64
104
  def set_person_from_remote_id
@@ -25,7 +25,7 @@ module EgovUtils
25
25
  end
26
26
 
27
27
  def current_non_ldap_groups
28
- @current_non_ldap_groups ||= user.groups.where(ldap_uid: nil)
28
+ @current_non_ldap_groups ||= user.groups.select { _1.ldap_uid.nil? }
29
29
  end
30
30
  end
31
31
  end
@@ -86,5 +86,16 @@
86
86
  "district": "Hlavní město Praha",
87
87
  "region": "Hlavní město Praha",
88
88
  "country": 203
89
+ },
90
+ {
91
+ "remote_id": "1234",
92
+ "street": "Vzorová",
93
+ "house_number": "123",
94
+ "orientation_number": "1",
95
+ "city": "Praha",
96
+ "postcode": "13000",
97
+ "district": "Hlavní město Praha",
98
+ "region": "Hlavní město Praha",
99
+ "country": 203
89
100
  }
90
101
  ]
@@ -54,5 +54,12 @@
54
54
  "birth_date": "1984-01-27",
55
55
  "birth_place": "Ankh-Morpork",
56
56
  "remote_id": "789"
57
+ },
58
+ {
59
+ "firstname": "Tom",
60
+ "lastname": "Dundek",
61
+ "birth_date": "1990-10-01",
62
+ "birth_place": "Ústí nad Labem",
63
+ "remote_id": "1234"
57
64
  }
58
65
  ]
@@ -1,3 +1,3 @@
1
1
  module EgovUtils
2
- VERSION = '1.5.1'
2
+ VERSION = '1.5.3'
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.1
4
+ version: 1.5.3
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: 2025-09-19 00:00:00.000000000 Z
11
+ date: 2025-11-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -220,6 +220,20 @@ dependencies:
220
220
  - - ">="
221
221
  - !ruby/object:Gem::Version
222
222
  version: '0'
223
+ - !ruby/object:Gem::Dependency
224
+ name: nkf
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ type: :runtime
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
223
237
  - !ruby/object:Gem::Dependency
224
238
  name: request_store_rails
225
239
  requirement: !ruby/object:Gem::Requirement