ecoportal-api-v2 1.1.1 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
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: []