eco-helpers 2.3.3 → 2.4.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: 4cf51ce07b09a2eaa798de0b8524206de5a91160bd3d5df2af980c8985bfbdda
4
- data.tar.gz: a203cc025f972e1b35c605450f42556911b913d43f8b860ff8e6f346eb93fb91
3
+ metadata.gz: 84e0b3626647d968a77ecc7dbc9dbe052be392ff7590f9f32c2402d4a0fdb45b
4
+ data.tar.gz: cfd6e253e91d50bd62ffb4cbad8556214a3519ccaf9fdd148c681170ad150466
5
5
  SHA512:
6
- metadata.gz: ff86775ef30897999f6e109cb7a442fb0d8eaeae789715a91f62483d56c181a553f99a8d6c6aa7ce406da0577bfe1b0c90a02fcc918dbde7d8cecba398df032a
7
- data.tar.gz: a16c1de5d41090ad98adcd8540da800a5bb0857c7f15bbc9c88898d0885d2f9ae9392a1b699c4d26e8378d9799d750a509230924076ffc1570a2418b08bfffb0
6
+ metadata.gz: 4162b785935a8f161ad5030e8ffbd72defd3ed10f50b6d4944b219c0faed84f5cd57efee5a1c43ed41c2f4efdbbcb5ab7356c426dbecd2ebaca2a0da79bba90a
7
+ data.tar.gz: 5c5ad42b25f53b92fcac214555fb7b2ab9b5af0c033367b375b6ae55334ce0ffa7ecca74d05bac7dd3a75aba7761d9f7be91d5fab44310eb664eeed3df758f83
data/CHANGELOG.md CHANGED
@@ -1,15 +1,23 @@
1
1
  # Change Log
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
- ## [2.3.4] - 2023-03-xx
4
+ ## [2.4.4] - 2023-03-xx
5
5
 
6
6
  ### Added
7
- - Added new option `-input-encoding` to specify the encoding of an input file
8
-
9
7
  ### Changed
10
- - `ecoportal-api` **gem** update
8
+ ### Fixed
9
+
10
+ ## [2.4.3] - 2023-03-23
11
11
 
12
12
  ### Fixed
13
+ - `Eco::API::MicroCases#take_email_from_account` it was failing at the very (when restoring the original account)
14
+ - Comes from back-end issue. Adding account with preferences.kiosk_enabled would return:
15
+ - `{"errors"=>["account > preferences > kiosk_enabled is an unknown field"]}`
16
+
17
+ ## [2.4.2] - 2023-03-17
18
+
19
+ ### Fixed
20
+ - `Eco::API::Common::People::EntryFactory#entries` _bom_ **encoding** (get back support)
13
21
 
14
22
  ## [2.3.3] - 2023-03-16
15
23
 
@@ -18,7 +26,7 @@ All notable changes to this project will be documented in this file.
18
26
 
19
27
  ### Changed
20
28
  - `ecoportal-api` **gem** update
21
-
29
+
22
30
 
23
31
  ## [2.3.2] - 2023-03-10
24
32
 
data/eco-helpers.gemspec CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
14
14
  spec.homepage = "https://www.ecoportal.com"
15
15
  spec.licenses = %w[MIT]
16
16
 
17
- spec.required_ruby_version = '>= 2.5.0'
17
+ spec.required_ruby_version = '>= 2.7.2'
18
18
 
19
19
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
20
20
  f.match(%r{^(test|spec|features)/})
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
24
24
  #spec.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
25
25
  spec.require_paths = ["lib"]
26
26
 
27
- spec.add_development_dependency "bundler", ">= 2.2.17", "< 2.3"
27
+ spec.add_development_dependency "bundler", ">= 2.4.8", "< 2.5"
28
28
  spec.add_development_dependency "rspec", ">= 3.10.0", "< 3.11"
29
29
  spec.add_development_dependency "rake", ">= 13.0.3", "< 13.1"
30
30
  spec.add_development_dependency "yard", ">= 0.9.26", "< 0.10"
@@ -193,14 +193,16 @@ module Eco
193
193
  logger.error("File does not exist: #{file}")
194
194
  exit(1)
195
195
  end
196
- ext = File.extname(file)
196
+ #ext = File.extname(file)
197
197
  encoding ||= Eco::API::Common::Session::FileManager.encoding(file)
198
+ encoding = (encoding == "bom") ? "#{encoding}|utf-8": encoding
199
+ puts "File encoding: '#{encoding}'" unless !encoding || encoding == 'utf-8'
198
200
  read_with_tolerance(file, encoding: encoding)
199
201
  end
200
202
 
201
203
  def read_with_tolerance(file, encoding:)
202
204
  if content = File.read(file, encoding: encoding)
203
- content = content.encode("utf-8")
205
+ content = content.encode("utf-8") unless encoding.include?('utf-8')
204
206
  tolerance = 5
205
207
  content.scrub do |bytes|
206
208
  replacement = '<' + bytes.unpack('H*')[0] + '>'
@@ -36,27 +36,33 @@ module Eco
36
36
  return false if dest_email.to_s.strip.empty?
37
37
  end
38
38
 
39
- account_json = JSON.parse(account.to_json)
39
+ account_json = _take_email_account_json(account)
40
40
  person.email = account_email
41
41
 
42
42
  if success = _take_email_remove_account!(person, context: context)
43
43
  if success = _take_email_acquire_account!(person, target_email, account: {}, context: context)
44
44
  if success = _take_email_email_free_up!(person, dest_email: dest_email, context: context)
45
45
  if success = _take_email_remove_account!(person, context: context)
46
+ # Bring back the original account
46
47
  if success = _take_email_acquire_account!(person, account_email, account: account_json, context: context)
48
+ success = true
47
49
  person.email = target_email
48
50
  end
49
51
  end
50
52
  else # free up target email
51
53
  # restore
52
- if _take_email_remove_account!(person, context: context)
53
- _take_email_acquire_account!(person, account_email, account: account_json, context: context)
54
+ reverted = false
55
+ if reverted ||= _take_email_remove_account!(person, context: context)
56
+ reverted ||= _take_email_acquire_account!(person, account_email, account: account_json, context: context)
54
57
  end
58
+ puts "Could not revert back to the original account #{person.identify}" unless reverted
55
59
  success = false
56
60
  end
57
61
  else # aquire other account
58
62
  # restore
59
- _take_email_acquire_account!(person, account_email, account: account_json, context: context)
63
+ unless _take_email_acquire_account!(person, account_email, account: account_json, context: context)
64
+ puts "Could not bring back the original account we want to update the email to '#{target_email}' #{person.identify}"
65
+ end
60
66
  success = false
61
67
  end
62
68
  end
@@ -65,6 +71,21 @@ module Eco
65
71
 
66
72
  private
67
73
 
74
+ def _take_email_account_json(account)
75
+ JSON.parse(account.to_json).tap do |hash|
76
+ hash.delete("user_id")
77
+ hash.delete("permissions_merged")
78
+ hash.delete("permissions_preset")
79
+ hash.delete("prefilter")
80
+ if pref = hash["preferences"]
81
+ hash["preferences"] = pref.reject do |attr, value|
82
+ attr.start_with?("kiosk")
83
+ end
84
+ end
85
+ end
86
+ end
87
+
88
+ # Bring the account of the `target_email` taken, so we can change the email of this account
68
89
  def _take_email_acquire_account!(person, target_email, account: {}, context: "Session")
69
90
  person.account = account
70
91
  person.account.send_invites = false
@@ -72,6 +93,7 @@ module Eco
72
93
  micro.person_update!(person, reason: "bring account with email '#{target_email}'", context: context)
73
94
  end
74
95
 
96
+ # Free up the email (`target_email`) of the account that has it taken to `dest_email`
75
97
  def _take_email_email_free_up!(person, dest_email:, target_email: nil, context: "Session")
76
98
  target_email ||= person.email
77
99
  person.email = dest_email.is_a?(Proc)? dest_email.call(target_email) : dest_email
@@ -83,7 +105,6 @@ module Eco
83
105
  person.account = nil
84
106
  micro.person_update!(person, reason: "remove account", context: context)
85
107
  end
86
-
87
108
  end
88
109
  end
89
110
  end
data/lib/eco/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Eco
2
- VERSION = "2.3.3"
2
+ VERSION = "2.4.3"
3
3
  end
metadata CHANGED
@@ -1,11 +1,11 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eco-helpers
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.3
4
+ version: 2.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oscar Segura
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2018-09-05 00:00:00.000000000 Z
@@ -16,20 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 2.2.17
19
+ version: 2.4.8
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '2.3'
22
+ version: '2.5'
23
23
  type: :development
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 2.2.17
29
+ version: 2.4.8
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '2.3'
32
+ version: '2.5'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: rspec
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -390,7 +390,7 @@ dependencies:
390
390
  - - "<"
391
391
  - !ruby/object:Gem::Version
392
392
  version: '0.7'
393
- description:
393
+ description:
394
394
  email:
395
395
  - oscar@ecoportal.co.nz
396
396
  executables: []
@@ -675,7 +675,7 @@ homepage: https://www.ecoportal.com
675
675
  licenses:
676
676
  - MIT
677
677
  metadata: {}
678
- post_install_message:
678
+ post_install_message:
679
679
  rdoc_options: []
680
680
  require_paths:
681
681
  - lib
@@ -683,15 +683,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
683
683
  requirements:
684
684
  - - ">="
685
685
  - !ruby/object:Gem::Version
686
- version: 2.5.0
686
+ version: 2.7.2
687
687
  required_rubygems_version: !ruby/object:Gem::Requirement
688
688
  requirements:
689
689
  - - ">="
690
690
  - !ruby/object:Gem::Version
691
691
  version: '0'
692
692
  requirements: []
693
- rubygems_version: 3.0.3
694
- signing_key:
693
+ rubygems_version: 3.1.4
694
+ signing_key:
695
695
  specification_version: 4
696
696
  summary: eco-helpers to manage people api cases
697
697
  test_files: []