ecoportal-api-v2 1.1.2 → 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: fa5ea635d5dd6ea66c4b9cc4c8600b73b0df6cf03f13c5e1a7df17deaf5a4232
4
- data.tar.gz: 05c9e704cd669859e0cd92e53f7e3d132eeea1c81d9f733b8ac890ebd3a6c9a2
3
+ metadata.gz: 99d119cc599b33a68117699108312e7a885ec570cbab5ea43087b1366f79cda2
4
+ data.tar.gz: a3de4653f9319c0d5a39edc4b7d113666b16241bdfb3cab98e3185ff6bfd153e
5
5
  SHA512:
6
- metadata.gz: 43abd514484022e5732b3f187c8da5eb744887b6dde31ef666445af71289e31d6e95d5cca97674d608bb876ac18f3236ab3b6e51ed59f33d5663d1523143e6d4
7
- data.tar.gz: e3fad6061fc3ed020fadc88c2444d80526d2c8605a814efc4009fa35a8c5a8a1e8781990bbf3b51eb9a96bb739336dde6c132fda31c1b69bc154cbaeb88aca5b
6
+ metadata.gz: 8437419e3eda3f7dfccffb48c4ba5b309cb670f1cdd18470e79b38ad2fba19f9c7b1498b19d4f0f241a7ae80fbbffe0a5a168a99314398c0e59bfa2119a9a1d3
7
+ data.tar.gz: 6fd2348676568bca1b50701b7f142c4e8531f3f735d7db73d00764a65ced988c4054f26dea14004d89225db9b1a6213f3b2c7c47bc1a9021cca098d24e29dacb
data/CHANGELOG.md CHANGED
@@ -1,12 +1,18 @@
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] - 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
+
10
16
  ## [1.1.2] - 2023-04-17
11
17
 
12
18
  ### Changed
@@ -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.2"
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.2
4
+ version: 1.1.3
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: 2023-06-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -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
@@ -264,7 +265,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
264
265
  - !ruby/object:Gem::Version
265
266
  version: '0'
266
267
  requirements: []
267
- rubygems_version: 3.1.4
268
+ rubygems_version: 3.4.12
268
269
  signing_key:
269
270
  specification_version: 4
270
271
  summary: A collection of helpers for interacting with the ecoPortal MS's V2 API