ecoportal-api-v2 1.1.2 → 1.1.4

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: fa5ea635d5dd6ea66c4b9cc4c8600b73b0df6cf03f13c5e1a7df17deaf5a4232
4
- data.tar.gz: 05c9e704cd669859e0cd92e53f7e3d132eeea1c81d9f733b8ac890ebd3a6c9a2
3
+ metadata.gz: e7774c15da9ae5d6ff253f7a3d3035d6943e6d4de9b68dbd648ea16b6b815b9e
4
+ data.tar.gz: b87045d030a5648294c0d9ed186cb2324d4df008e19fdb97d6ae2d8a4cc3fe38
5
5
  SHA512:
6
- metadata.gz: 43abd514484022e5732b3f187c8da5eb744887b6dde31ef666445af71289e31d6e95d5cca97674d608bb876ac18f3236ab3b6e51ed59f33d5663d1523143e6d4
7
- data.tar.gz: e3fad6061fc3ed020fadc88c2444d80526d2c8605a814efc4009fa35a8c5a8a1e8781990bbf3b51eb9a96bb739336dde6c132fda31c1b69bc154cbaeb88aca5b
6
+ metadata.gz: c4586c46e7921caa02d561e9a4b13ff2f2c1cc41d64f4501fff54edb6edb733a43b9adb8d38e93a95c1fbd475f6e837ef6a5ce4a003c338e81dd1d729201f223
7
+ data.tar.gz: b388223450b1324e3a6e46051b07e2266e275c561ffdc2506354714f259a81e825e5772c22a9608d13c6d90b3e76b2b4a2ce372fc231108f78532a7068335c3b
data/CHANGELOG.md CHANGED
@@ -1,12 +1,24 @@
1
1
  # Change Log
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
- ## [1.1.3] - 2023-04-xx
4
+ ## [1.1.4] - 2024-02-xx
5
5
 
6
6
  ### Added
7
+ - Support for new fields
8
+ - `Ecoportal::API::V2::Page::Component::ActionsField`
9
+ - `Ecoportal::API::V2::Page::Component::MailboxField`
10
+
7
11
  ### Changed
12
+ - core gem **upgrade**
13
+
8
14
  ### Fixed
9
15
 
16
+ ## [1.1.3] - 2023-06-28
17
+
18
+ ### Added
19
+ - `Ecoportal::API::V2::Page::Component::ContractorEntitiesField`
20
+ - Added support for contractor entities fields.
21
+
10
22
  ## [1.1.2] - 2023-04-17
11
23
 
12
24
  ### Changed
@@ -29,5 +29,5 @@ Gem::Specification.new do |spec|
29
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.4', '< 0.10'
32
+ spec.add_dependency 'ecoportal-api', '>= 0.9.5', '< 0.10'
33
33
  end
@@ -0,0 +1,37 @@
1
+ module Ecoportal
2
+ module API
3
+ class V2
4
+ class Page
5
+ class Component
6
+ class ActionsField < Page::Component
7
+ passboolean :create_actions
8
+ passthrough :required_completed
9
+ passboolean :filled_in?
10
+ passarray :permitted_person_schema_ids, order_matters: false
11
+
12
+ passboolean :enable_attaching_actions
13
+ passarray :action_ids, :all_actions, order_matters: false
14
+ passarray :open_actions, :closed_actions, :overdue_actions, order_matters: false
15
+ passthrough :actions_hash
16
+ passarray :action_recurrence_ids, order_matters: false
17
+
18
+ def empty?
19
+ action_ids.to_a.empty?
20
+ end
21
+
22
+ # Adds a task with `name` short description
23
+ # @return [Ecoportal::API::V2::Page::Component::Action]
24
+ def attach_action (*ids, force: false)
25
+ raise "Can't attach actions" unless enable_attaching_actions && force
26
+ action_ids << ids
27
+ end
28
+
29
+ def to_s(delimiter: "\n")
30
+ action_ids.join(delimiter)
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,125 @@
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
+ passthrough :requires_number
12
+
13
+ passarray :contractor_entities_ids
14
+ passboolean :show_approval_status
15
+
16
+ passboolean :grant_permissions_enabled
17
+ passthrough :apply_attached_contractors_permissions_to
18
+ passthrough :admin_access, :regular_access
19
+ embeds_one :attached_contractors_permissions_flags, klass: "Ecoportal::API::V2::Page::PermissionFlags"
20
+ embeds_one :attached_contractors_admin_permissions_flags, klass: "Ecoportal::API::V2::Page::PermissionFlags"
21
+
22
+ def empty?
23
+ contractor_entities_ids.empty?
24
+ end
25
+
26
+ # Attaches people
27
+ def add(*ids)
28
+ contractor_entities_ids << ids
29
+ end
30
+
31
+ # Deletes people
32
+ def delete(*ids)
33
+ contractor_entities_ids.reject! {|id| ids.include?(id)}
34
+ end
35
+
36
+ def to_s(delimiter: "\n")
37
+ contractor_entities_ids.to_a.join(delimiter)
38
+ end
39
+
40
+ # Quick config helper
41
+ # @param conf [Symbol, Array<Symbol>]
42
+ # - `:snapshot` to set mode to `snapshot`
43
+ # - `:live` to set mode to `live`
44
+ # - `:me_button` to display `ME` button
45
+ # - `:permits` to define the permissions
46
+ # - `:all` for _entire page/all stages_
47
+ # - `:stages` for _all stages containing this field_
48
+ # - `:page` for _page only_
49
+ # - `:stage` for _only the stage containing this field when attached_
50
+ # - `:restructure`
51
+ # - `:configure`
52
+ # - `:can_permission`
53
+ # - `:create_actions`
54
+ # - `:admin_actions`
55
+ # - `:subscribed`
56
+ # - `:subscribed_to_tasks`
57
+ # - `requires: number` to fine the number of required people to be attached
58
+ def configure(*conf)
59
+ conf.each_with_object([]) do |cnf, unused|
60
+ case cnf
61
+ when :me_button
62
+ self.is_me_button = true
63
+ when :singular
64
+ self.singular = true
65
+ when Hash
66
+ supported = [:singular, :permits]
67
+ unless (rest = hash_except(cnf.dup, *supported)).empty?
68
+ unused.push(rest)
69
+ end
70
+
71
+ if cnf.key?(:singular) then self.singular = !!cnf[:singular] end
72
+ if cnf.key?(:permits)
73
+ if permits = cnf[:permits]
74
+ self.regular_access = true
75
+ configure_permits(*[permits].flatten.compact)
76
+ else
77
+ self.regular_access = false
78
+ end
79
+ end
80
+ if cnf.key?(:admin_permits)
81
+ if permits = cnf[:permits]
82
+ self.admin_access = true
83
+ configure_permits(*[permits].flatten.compact)
84
+ else
85
+ self.admin_access = false
86
+ end
87
+ end
88
+ else
89
+ unused.push(cnf)
90
+ end
91
+ end.yield_self do |unused|
92
+ super(*unused)
93
+ end
94
+ end
95
+
96
+ private
97
+
98
+ def configure_permits(*conf, to: :regular)
99
+ conf.each_with_object([]) do |cnf, flags|
100
+ permits_scope = :apply_attached_contractors_permissions_to=
101
+ case cnf
102
+ when :all
103
+ send(permits_scope, "page")
104
+ when :stages
105
+ send(permits_scope, "all_stages")
106
+ when :page
107
+ send(permits_scope, "page_only")
108
+ when :stage
109
+ send(permits_scope, "current_stage")
110
+ else
111
+ flags.push(cnf)
112
+ end
113
+ end.yield_self do |flags|
114
+ target_flags = :attached_contractors_admin_permissions_flags if to == :admin
115
+ target_flags ||= :attached_contractors_permissions_flags
116
+ self.send(target_flags).configure *flags
117
+ end
118
+ end
119
+
120
+ end
121
+ end
122
+ end
123
+ end
124
+ end
125
+ end
@@ -0,0 +1,18 @@
1
+ module Ecoportal
2
+ module API
3
+ class V2
4
+ class Page
5
+ class Component
6
+ class MailboxField < Page::Component
7
+ passarray :email_ids
8
+ passthrough :address_id
9
+
10
+ def to_s(delimiter: "\n")
11
+ email_ids.to_a.join(delimiter)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -14,13 +14,16 @@ 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"
20
+ class_resolver :actions_field_class, "Ecoportal::API::V2::Page::Component::ActionsField"
19
21
  class_resolver :files_field_class, "Ecoportal::API::V2::Page::Component::FilesField"
20
22
  class_resolver :images_field_class, "Ecoportal::API::V2::Page::Component::ImagesField"
21
23
  class_resolver :signature_field_class, "Ecoportal::API::V2::Page::Component::SignatureField"
22
24
  class_resolver :reference_field_class, "Ecoportal::API::V2::Page::Component::ReferenceField"
23
25
  class_resolver :law_field_class, "Ecoportal::API::V2::Page::Component::LawField"
26
+ class_resolver :mailbox_field_class, "Ecoportal::API::V2::Page::Component::MailboxField"
24
27
  class_resolver :chart_field_class, "Ecoportal::API::V2::Page::Component::ChartField"
25
28
  class_resolver :chart_fr_field_class, "Ecoportal::API::V2::Page::Component::ChartFrField"
26
29
 
@@ -59,10 +62,14 @@ module Ecoportal
59
62
  rich_text_field_class
60
63
  when "people"
61
64
  people_field_class
65
+ when "contractor_entities"
66
+ contractor_entities_field_class
62
67
  when "checklist"
63
68
  checklist_field_class
64
69
  when "page_action","checklist_task"
65
70
  action_field_class
71
+ when "actions_list"
72
+ actions_field_class
66
73
  when "file"
67
74
  files_field_class
68
75
  when "image_gallery"
@@ -73,6 +80,8 @@ module Ecoportal
73
80
  reference_field_class
74
81
  when "law"
75
82
  law_field_class
83
+ when "mailbox"
84
+ mailbox_field_class
76
85
  when "chart"
77
86
  chart_field_class
78
87
  when "frequency_rate_chart"
@@ -229,12 +238,15 @@ require 'ecoportal/api/v2/page/component/gauge_field'
229
238
  require 'ecoportal/api/v2/page/component/plain_text_field'
230
239
  require 'ecoportal/api/v2/page/component/rich_text_field'
231
240
  require 'ecoportal/api/v2/page/component/people_field'
241
+ require 'ecoportal/api/v2/page/component/contractor_entities_field'
232
242
  require 'ecoportal/api/v2/page/component/checklist_field'
233
243
  require 'ecoportal/api/v2/page/component/action_field'
244
+ require 'ecoportal/api/v2/page/component/actions_field'
234
245
  require 'ecoportal/api/v2/page/component/files_field'
235
246
  require 'ecoportal/api/v2/page/component/images_field'
236
247
  require 'ecoportal/api/v2/page/component/signature_field'
237
248
  require 'ecoportal/api/v2/page/component/reference_field'
238
249
  require 'ecoportal/api/v2/page/component/law_field'
250
+ require 'ecoportal/api/v2/page/component/mailbox_field'
239
251
  require 'ecoportal/api/v2/page/component/chart_field'
240
252
  require 'ecoportal/api/v2/page/component/chart_fr_field'
@@ -1,5 +1,5 @@
1
1
  module Ecoportal
2
2
  module API
3
- GEM2_VERSION = "1.1.2"
3
+ GEM2_VERSION = "1.1.4"
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.2
4
+ version: 1.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oscar Segura
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-04-17 00:00:00.000000000 Z
11
+ date: 2024-01-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -130,7 +130,7 @@ dependencies:
130
130
  requirements:
131
131
  - - ">="
132
132
  - !ruby/object:Gem::Version
133
- version: 0.9.4
133
+ version: 0.9.5
134
134
  - - "<"
135
135
  - !ruby/object:Gem::Version
136
136
  version: '0.10'
@@ -140,7 +140,7 @@ dependencies:
140
140
  requirements:
141
141
  - - ">="
142
142
  - !ruby/object:Gem::Version
143
- version: 0.9.4
143
+ version: 0.9.5
144
144
  - - "<"
145
145
  - !ruby/object:Gem::Version
146
146
  version: '0.10'
@@ -184,6 +184,7 @@ files:
184
184
  - lib/ecoportal/api/v2/page/component.rb
185
185
  - lib/ecoportal/api/v2/page/component/action.rb
186
186
  - lib/ecoportal/api/v2/page/component/action_field.rb
187
+ - lib/ecoportal/api/v2/page/component/actions_field.rb
187
188
  - lib/ecoportal/api/v2/page/component/chart_field.rb
188
189
  - lib/ecoportal/api/v2/page/component/chart_field/benchmark.rb
189
190
  - lib/ecoportal/api/v2/page/component/chart_field/config.rb
@@ -197,6 +198,7 @@ files:
197
198
  - lib/ecoportal/api/v2/page/component/chart_fr_field.rb
198
199
  - lib/ecoportal/api/v2/page/component/checklist_field.rb
199
200
  - lib/ecoportal/api/v2/page/component/checklist_item.rb
201
+ - lib/ecoportal/api/v2/page/component/contractor_entities_field.rb
200
202
  - lib/ecoportal/api/v2/page/component/date_field.rb
201
203
  - lib/ecoportal/api/v2/page/component/file.rb
202
204
  - lib/ecoportal/api/v2/page/component/files_field.rb
@@ -208,6 +210,7 @@ files:
208
210
  - lib/ecoportal/api/v2/page/component/images_field.rb
209
211
  - lib/ecoportal/api/v2/page/component/law.rb
210
212
  - lib/ecoportal/api/v2/page/component/law_field.rb
213
+ - lib/ecoportal/api/v2/page/component/mailbox_field.rb
211
214
  - lib/ecoportal/api/v2/page/component/number_field.rb
212
215
  - lib/ecoportal/api/v2/page/component/people_field.rb
213
216
  - lib/ecoportal/api/v2/page/component/people_viewable_field.rb
@@ -264,7 +267,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
264
267
  - !ruby/object:Gem::Version
265
268
  version: '0'
266
269
  requirements: []
267
- rubygems_version: 3.1.4
270
+ rubygems_version: 3.4.12
268
271
  signing_key:
269
272
  specification_version: 4
270
273
  summary: A collection of helpers for interacting with the ecoPortal MS's V2 API