ecoportal-api-v2 1.1.1 → 1.1.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: a951381010ef926bce6a42eceb729ed3b8adfe8344ee75161e060e741675f405
4
- data.tar.gz: 8808bef7b78d1b333de9af88d9e2eac68511213ce0312efadc79d25ef520ff8a
3
+ metadata.gz: 99d119cc599b33a68117699108312e7a885ec570cbab5ea43087b1366f79cda2
4
+ data.tar.gz: a3de4653f9319c0d5a39edc4b7d113666b16241bdfb3cab98e3185ff6bfd153e
5
5
  SHA512:
6
- metadata.gz: 75fea111bdc18536084d87d9899a4185a0f8573d3aa0567a355263bb39855880663d5af3f1443c72c6e1d2dd24b1c0420aa5a9777ddd0345209debec4334af9b
7
- data.tar.gz: 42e2db2fcaca353e334b892267fd01df6702708ff79f3ed44474d79dc26d879532af761c7da78cfcb1c1b1abb313c033e80f7da1d21385f02195a88bd800d47c
6
+ metadata.gz: 8437419e3eda3f7dfccffb48c4ba5b309cb670f1cdd18470e79b38ad2fba19f9c7b1498b19d4f0f241a7ae80fbbffe0a5a168a99314398c0e59bfa2119a9a1d3
7
+ data.tar.gz: 6fd2348676568bca1b50701b7f142c4e8531f3f735d7db73d00764a65ced988c4054f26dea14004d89225db9b1a6213f3b2c7c47bc1a9021cca098d24e29dacb
data/CHANGELOG.md CHANGED
@@ -1,12 +1,28 @@
1
1
  # Change Log
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
- ## [1.1.2] - 2023-03-xx
4
+ ## [1.1.4] - 2023-06-xx
5
5
 
6
6
  ### Added
7
7
  ### Changed
8
8
  ### Fixed
9
9
 
10
+ ## [1.1.3] - 2023-06-28
11
+
12
+ ### Added
13
+ - `Ecoportal::API::V2::Page::Component::ContractorEntitiesField`
14
+ - Added support for contractor entities fields.
15
+
16
+ ## [1.1.2] - 2023-04-17
17
+
18
+ ### Changed
19
+ - Require ruby version `2.7.2`
20
+ - Soften max version on **gem** dependencies
21
+ - Upgrade core `ecoportal-api` gem
22
+
23
+ ### Fixed
24
+ - `Ecoportal::API::Common::Content::DoubleModel` was not copying `doc` at root level
25
+
10
26
  ## [1.1.1] - 2023-03-09
11
27
 
12
28
  ### Added
@@ -13,7 +13,7 @@ Gem::Specification.new do |spec|
13
13
  spec.homepage = "https://www.ecoportal.com"
14
14
  spec.licenses = %w[MIT]
15
15
 
16
- spec.required_ruby_version = '>= 2.4.4'
16
+ spec.required_ruby_version = '>= 2.7.2'
17
17
 
18
18
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
19
19
  f.match(%r{^(test|spec|features)/})
@@ -22,12 +22,12 @@ Gem::Specification.new do |spec|
22
22
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
23
  spec.require_paths = ["lib"]
24
24
 
25
- spec.add_development_dependency "bundler", ">= 2.2.17", "< 2.3"
26
- spec.add_development_dependency "rspec", ">= 3.10.0", "< 3.11"
27
- spec.add_development_dependency "rake", ">= 13.0.3", "< 13.1"
28
- spec.add_development_dependency "yard", ">= 0.9.26", "< 0.10"
29
- spec.add_development_dependency "redcarpet", ">= 3.5.1", "< 3.6"
25
+ spec.add_development_dependency "bundler", ">= 2.4.9", "< 3"
26
+ spec.add_development_dependency "rspec", ">= 3.10.0", "< 4"
27
+ spec.add_development_dependency "rake", ">= 13.0.3", "< 14"
28
+ spec.add_development_dependency "yard", ">= 0.9.26", "< 1"
29
+ spec.add_development_dependency "redcarpet", ">= 3.5.1", "< 4"
30
30
  spec.add_development_dependency "pry" , ">= 0.14"
31
31
 
32
- spec.add_dependency 'ecoportal-api', '>= 0.9.1', '< 0.10'
32
+ spec.add_dependency 'ecoportal-api', '>= 0.9.4', '< 0.10'
33
33
  end
@@ -274,7 +274,7 @@ module Ecoportal
274
274
  self.class.enforce!(doc)
275
275
 
276
276
  if (_parent == self) || read_only
277
- @doc = doc
277
+ @doc = JSON.parse(doc.to_json)
278
278
  @original_doc = JSON.parse(@doc.to_json)
279
279
  end
280
280
 
@@ -0,0 +1,124 @@
1
+ module Ecoportal
2
+ module API
3
+ class V2
4
+ class Page
5
+ class Component
6
+ class ContractorEntitiesField < Page::Component
7
+ passboolean :is_me_button
8
+ passboolean :show_approval_status
9
+
10
+ passboolean :singular
11
+
12
+ passarray :contractor_entities_ids
13
+ pass_reader :cached_people
14
+
15
+ passboolean :grant_permissions_enabled
16
+ passthrough :apply_attached_contractors_permissions_to
17
+ passthrough :admin_access, :regular_access
18
+ embeds_one :attached_contractors_permissions_flags, klass: "Ecoportal::API::V2::Page::PermissionFlags"
19
+ embeds_one :attached_contractors_admin_permissions_flags, klass: "Ecoportal::API::V2::Page::PermissionFlags"
20
+
21
+ def empty?
22
+ contractor_entities_ids.empty?
23
+ end
24
+
25
+ # Attaches people
26
+ def add(*ids)
27
+ contractor_entities_ids << ids
28
+ end
29
+
30
+ # Deletes people
31
+ def delete(*ids)
32
+ contractor_entities_ids.reject! {|id| ids.include?(id)}
33
+ end
34
+
35
+ def to_s(delimiter: "\n")
36
+ contractor_entities_ids.to_a.join(delimiter)
37
+ end
38
+
39
+ # Quick config helper
40
+ # @param conf [Symbol, Array<Symbol>]
41
+ # - `:snapshot` to set mode to `snapshot`
42
+ # - `:live` to set mode to `live`
43
+ # - `:me_button` to display `ME` button
44
+ # - `:permits` to define the permissions
45
+ # - `:all` for _entire page/all stages_
46
+ # - `:stages` for _all stages containing this field_
47
+ # - `:page` for _page only_
48
+ # - `:stage` for _only the stage containing this field when attached_
49
+ # - `:restructure`
50
+ # - `:configure`
51
+ # - `:can_permission`
52
+ # - `:create_actions`
53
+ # - `:admin_actions`
54
+ # - `:subscribed`
55
+ # - `:subscribed_to_tasks`
56
+ # - `requires: number` to fine the number of required people to be attached
57
+ def configure(*conf)
58
+ conf.each_with_object([]) do |cnf, unused|
59
+ case cnf
60
+ when :me_button
61
+ self.is_me_button = true
62
+ when :singular
63
+ self.singular = true
64
+ when Hash
65
+ supported = [:singular, :permits]
66
+ unless (rest = hash_except(cnf.dup, *supported)).empty?
67
+ unused.push(rest)
68
+ end
69
+
70
+ if cnf.key?(:singular) then self.singular = !!cnf[:singular] end
71
+ if cnf.key?(:permits)
72
+ if permits = cnf[:permits]
73
+ self.regular_access = true
74
+ configure_permits(*[permits].flatten.compact)
75
+ else
76
+ self.regular_access = false
77
+ end
78
+ end
79
+ if cnf.key?(:admin_permits)
80
+ if permits = cnf[:permits]
81
+ self.admin_access = true
82
+ configure_permits(*[permits].flatten.compact)
83
+ else
84
+ self.admin_access = false
85
+ end
86
+ end
87
+ else
88
+ unused.push(cnf)
89
+ end
90
+ end.yield_self do |unused|
91
+ super(*unused)
92
+ end
93
+ end
94
+
95
+ private
96
+
97
+ def configure_permits(*conf, to: :regular)
98
+ conf.each_with_object([]) do |cnf, flags|
99
+ permits_scope = :apply_attached_contractors_permissions_to=
100
+ case cnf
101
+ when :all
102
+ send(permits_scope, "page")
103
+ when :stages
104
+ send(permits_scope, "all_stages")
105
+ when :page
106
+ send(permits_scope, "page_only")
107
+ when :stage
108
+ send(permits_scope, "current_stage")
109
+ else
110
+ flags.push(cnf)
111
+ end
112
+ end.yield_self do |flags|
113
+ target_flags = :attached_contractors_admin_permissions_flags if to == :admin
114
+ target_flags ||= :attached_contractors_permissions_flags
115
+ self.send(target_flags).configure *flags
116
+ end
117
+ end
118
+
119
+ end
120
+ end
121
+ end
122
+ end
123
+ end
124
+ end
@@ -14,6 +14,7 @@ module Ecoportal
14
14
  class_resolver :plain_text_field_class, "Ecoportal::API::V2::Page::Component::PlainTextField"
15
15
  class_resolver :rich_text_field_class, "Ecoportal::API::V2::Page::Component::RichTextField"
16
16
  class_resolver :people_field_class, "Ecoportal::API::V2::Page::Component::PeopleField"
17
+ class_resolver :contractor_entities_field_class, "Ecoportal::API::V2::Page::Component::ContractorEntitiesField"
17
18
  class_resolver :checklist_field_class, "Ecoportal::API::V2::Page::Component::ChecklistField"
18
19
  class_resolver :action_field_class, "Ecoportal::API::V2::Page::Component::ActionField"
19
20
  class_resolver :files_field_class, "Ecoportal::API::V2::Page::Component::FilesField"
@@ -59,6 +60,8 @@ module Ecoportal
59
60
  rich_text_field_class
60
61
  when "people"
61
62
  people_field_class
63
+ when "contractor_entities"
64
+ contractor_entities_field_class
62
65
  when "checklist"
63
66
  checklist_field_class
64
67
  when "page_action","checklist_task"
@@ -229,6 +232,7 @@ require 'ecoportal/api/v2/page/component/gauge_field'
229
232
  require 'ecoportal/api/v2/page/component/plain_text_field'
230
233
  require 'ecoportal/api/v2/page/component/rich_text_field'
231
234
  require 'ecoportal/api/v2/page/component/people_field'
235
+ require 'ecoportal/api/v2/page/component/contractor_entities_field'
232
236
  require 'ecoportal/api/v2/page/component/checklist_field'
233
237
  require 'ecoportal/api/v2/page/component/action_field'
234
238
  require 'ecoportal/api/v2/page/component/files_field'
@@ -1,5 +1,5 @@
1
1
  module Ecoportal
2
2
  module API
3
- GEM2_VERSION = "1.1.1"
3
+ GEM2_VERSION = "1.1.3"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ecoportal-api-v2
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oscar Segura
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-03-09 00:00:00.000000000 Z
11
+ date: 2023-06-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -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.9
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '2.3'
22
+ version: '3'
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.9
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '2.3'
32
+ version: '3'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: rspec
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -39,7 +39,7 @@ dependencies:
39
39
  version: 3.10.0
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
- version: '3.11'
42
+ version: '4'
43
43
  type: :development
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
@@ -49,7 +49,7 @@ dependencies:
49
49
  version: 3.10.0
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
- version: '3.11'
52
+ version: '4'
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: rake
55
55
  requirement: !ruby/object:Gem::Requirement
@@ -59,7 +59,7 @@ dependencies:
59
59
  version: 13.0.3
60
60
  - - "<"
61
61
  - !ruby/object:Gem::Version
62
- version: '13.1'
62
+ version: '14'
63
63
  type: :development
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
@@ -69,7 +69,7 @@ dependencies:
69
69
  version: 13.0.3
70
70
  - - "<"
71
71
  - !ruby/object:Gem::Version
72
- version: '13.1'
72
+ version: '14'
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: yard
75
75
  requirement: !ruby/object:Gem::Requirement
@@ -79,7 +79,7 @@ dependencies:
79
79
  version: 0.9.26
80
80
  - - "<"
81
81
  - !ruby/object:Gem::Version
82
- version: '0.10'
82
+ version: '1'
83
83
  type: :development
84
84
  prerelease: false
85
85
  version_requirements: !ruby/object:Gem::Requirement
@@ -89,7 +89,7 @@ dependencies:
89
89
  version: 0.9.26
90
90
  - - "<"
91
91
  - !ruby/object:Gem::Version
92
- version: '0.10'
92
+ version: '1'
93
93
  - !ruby/object:Gem::Dependency
94
94
  name: redcarpet
95
95
  requirement: !ruby/object:Gem::Requirement
@@ -99,7 +99,7 @@ dependencies:
99
99
  version: 3.5.1
100
100
  - - "<"
101
101
  - !ruby/object:Gem::Version
102
- version: '3.6'
102
+ version: '4'
103
103
  type: :development
104
104
  prerelease: false
105
105
  version_requirements: !ruby/object:Gem::Requirement
@@ -109,7 +109,7 @@ dependencies:
109
109
  version: 3.5.1
110
110
  - - "<"
111
111
  - !ruby/object:Gem::Version
112
- version: '3.6'
112
+ version: '4'
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: pry
115
115
  requirement: !ruby/object:Gem::Requirement
@@ -130,7 +130,7 @@ dependencies:
130
130
  requirements:
131
131
  - - ">="
132
132
  - !ruby/object:Gem::Version
133
- version: 0.9.1
133
+ version: 0.9.4
134
134
  - - "<"
135
135
  - !ruby/object:Gem::Version
136
136
  version: '0.10'
@@ -140,11 +140,11 @@ dependencies:
140
140
  requirements:
141
141
  - - ">="
142
142
  - !ruby/object:Gem::Version
143
- version: 0.9.1
143
+ version: 0.9.4
144
144
  - - "<"
145
145
  - !ruby/object:Gem::Version
146
146
  version: '0.10'
147
- description:
147
+ description:
148
148
  email:
149
149
  - rien@ecoportal.co.nz
150
150
  - oscar@ecoportal.co.nz
@@ -197,6 +197,7 @@ files:
197
197
  - lib/ecoportal/api/v2/page/component/chart_fr_field.rb
198
198
  - lib/ecoportal/api/v2/page/component/checklist_field.rb
199
199
  - lib/ecoportal/api/v2/page/component/checklist_item.rb
200
+ - lib/ecoportal/api/v2/page/component/contractor_entities_field.rb
200
201
  - lib/ecoportal/api/v2/page/component/date_field.rb
201
202
  - lib/ecoportal/api/v2/page/component/file.rb
202
203
  - lib/ecoportal/api/v2/page/component/files_field.rb
@@ -249,7 +250,7 @@ homepage: https://www.ecoportal.com
249
250
  licenses:
250
251
  - MIT
251
252
  metadata: {}
252
- post_install_message:
253
+ post_install_message:
253
254
  rdoc_options: []
254
255
  require_paths:
255
256
  - lib
@@ -257,15 +258,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
257
258
  requirements:
258
259
  - - ">="
259
260
  - !ruby/object:Gem::Version
260
- version: 2.4.4
261
+ version: 2.7.2
261
262
  required_rubygems_version: !ruby/object:Gem::Requirement
262
263
  requirements:
263
264
  - - ">="
264
265
  - !ruby/object:Gem::Version
265
266
  version: '0'
266
267
  requirements: []
267
- rubygems_version: 3.0.3
268
- signing_key:
268
+ rubygems_version: 3.4.12
269
+ signing_key:
269
270
  specification_version: 4
270
271
  summary: A collection of helpers for interacting with the ecoPortal MS's V2 API
271
272
  test_files: []