egov_utils 1.5.1 → 1.5.2

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: 00a812c26a6b677a4a10133a12d51d5ebaf45d3b26153cc3cf98500c54c6a0e4
4
+ data.tar.gz: 55fb7eb4ff838991649061d715dbb6d0835ab6b90e611a71163e4bf8f3b07688
5
5
  SHA512:
6
- metadata.gz: 60f5e7271165702e73938b59da2efcfcc47f9dd3568dd9733e844d143b88470b871a4651273b10c5e507e694e29417a1ef75c829a4ce8738601602068a4c590d
7
- data.tar.gz: 82b126e04ea180491ee30fc030c6989f383b116752ec2ac41d1a6cacbcf55547ddad9afc190223f9c528ff4bfb4941bd75ad7ac07e15cf4b87e30f5c1de56592
6
+ metadata.gz: 99707ae89bc0a01b0510da1859267a00bf16bca2aaa35e3d70ce6f6af6a96512b57dfc852f19a60c5604dfa5c5d9ea5c597c0c9ec662c73b81096a8f133739a8
7
+ data.tar.gz: 45f59f259aa0010bca3b153a680d2a0ec171ef3d55562e7fc4e0c75e8d8775a129ec531bc7175a443858936d884c60d1042ecdc60257cef31d46fa5a4fc14ce9
@@ -59,6 +59,44 @@ 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
+ person_entity.person
92
+ end
93
+ else
94
+ new(create_attrs).tap do
95
+ _1.save(validate: false)
96
+ end
97
+ end
98
+ end
99
+
62
100
  private
63
101
 
64
102
  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.2'
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.2
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-03 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