ecoportal-api-v2 2.0.0 → 2.0.5

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: ff49546bff744816505c3656a7549ade52395b0a8a57a419b2ec35add4c2d0f5
4
- data.tar.gz: 031e3d3f89dd29c22994372fa32175572c1b1773e1ce1841a7904b52fe0bd22c
3
+ metadata.gz: 97b022ff724f1d1d3f80b357d482e54ebba3750751de3771097840c1a9a1e697
4
+ data.tar.gz: f587813ad0917441c55c1a5dde359ca5e12070ee22d899f5a41646fa63af40dc
5
5
  SHA512:
6
- metadata.gz: 2e261c78abc998494c48c817e1910178483c7db5a5842c1a92010e097258551fe2ffbfa57201e339fa1600c2cdffb54babffd66a8807f7c5543ee7776064b11b
7
- data.tar.gz: 7f347723b84099f93df288eddf643cb5967472e03bcec92e86613ef220c142e0d4978bd9c90a03d21dd461045da9efdb7b7114f33de24dbdec90aace3ef30718
6
+ metadata.gz: 8d4e4f6c25ab85c7c8c0a119fdab33b107b519022c66ce57c2159e1de89cb73e200243e59105adc7c50d0dd3a718367ecbc9d47e8fda5766d6ab33c3a09ed3cd
7
+ data.tar.gz: d8230c7c42ff3f358d9b33a8a81d194f8aba30149089c5201f5bf21a905028195503e8a0530a6a99e4c1ce4f828f4ea5e4b691b4528a569e20fb362c6884f84e
data/CHANGELOG.md CHANGED
@@ -2,6 +2,26 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [2.0.6] - 2024-08-xx
6
+
7
+ ### Added
8
+
9
+ ### Changed
10
+
11
+ ### Fixed
12
+
13
+ ## [2.0.5] - 2024-08-07
14
+
15
+ ### Fixed
16
+
17
+ - Use correct endpoint to update page-stages
18
+
19
+ ## [2.0.4] - 2024-08-07
20
+
21
+ ### Added
22
+
23
+ - Ability to `submit!` and `sign_off!`
24
+
5
25
  ## [2.0.0] - 2024-08-01
6
26
 
7
27
  ### Added
@@ -14,8 +34,6 @@ All notable changes to this project will be documented in this file.
14
34
 
15
35
  - require `ruby 3`
16
36
 
17
- ### Fixed
18
-
19
37
  ## [1.1.8] - 2024-03-23
20
38
 
21
39
  ### Changed
@@ -11,6 +11,7 @@ module Ecoportal
11
11
  state task_priority
12
12
  votes_enabled upvotes downvotes
13
13
  forces force_errors subtags
14
+ tasks
14
15
  ].freeze
15
16
 
16
17
  passkey :id
@@ -0,0 +1,63 @@
1
+ module Ecoportal
2
+ module API
3
+ class V2
4
+ class Pages
5
+ class PageStage
6
+ class Task < Common::Content::DoubleModel
7
+ passkey :id
8
+ passforced :patch_ver, default: 0
9
+
10
+ passthrough :name
11
+ passthrough :user_lookups, :user_ids
12
+ passthrough :strategies, :scheduled_callbacks
13
+ passboolean :historic
14
+
15
+ passboolean :complete, :completable
16
+ passdate :due, :complete_at
17
+ passthrough :complete_by_id, :completed_by_name
18
+
19
+ passthrough :last_strategy
20
+ passboolean :is_retry, :rejected
21
+ passthrough :retry_reason
22
+ passthrough :rejected_by, :rejected_by_name, :rejected_notes
23
+ passdate :rejected_at
24
+
25
+ passboolean :escalated
26
+ passdate :escalated_at
27
+
28
+ passboolean :submitted
29
+ passthrough :type
30
+ passthrough :view_type
31
+
32
+ def ooze
33
+ self._parent.ooze
34
+ end
35
+
36
+ def fill_in?
37
+ type == 'complete_page'
38
+ end
39
+
40
+ def review?
41
+ type == 'review_page'
42
+ end
43
+
44
+ def complete!
45
+ return mark_as_submit if fill_in?
46
+ return mark_as_sign_off if review?
47
+ end
48
+
49
+ private
50
+
51
+ def mark_as_submit
52
+ doc['submitted'] = true
53
+ end
54
+
55
+ def mark_as_sign_off
56
+ doc['sign_off'] = true
57
+ end
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,69 @@
1
+ module Ecoportal
2
+ module API
3
+ class V2
4
+ class Pages
5
+ class PageStage
6
+ class Tasks < Common::Content::CollectionModel
7
+ class_resolver :task_class, "Ecoportal::API::V2::Pages::PageStage::Task"
8
+
9
+ self.klass = :task_class
10
+
11
+ def ooze
12
+ self._parent.ooze
13
+ end
14
+
15
+ # @return [Ecoportal::API::V2::Pages::PageStage::Task]
16
+ def get_by_id(id)
17
+ self.find do |task|
18
+ task.id == id
19
+ end
20
+ end
21
+
22
+ # @return [Array<Ecoportal::API::V2::Pages::PageStage::Task>]
23
+ def get_by_type(type)
24
+ select do |task|
25
+ task.type == type
26
+ end
27
+ end
28
+
29
+ # @return [Array<Ecoportal::API::V2::Pages::PageStage::Task>]
30
+ def open(&block)
31
+ reject(&:complete).tap do |res|
32
+ res.each(&block)
33
+ end
34
+ end
35
+
36
+ # @return [Array<Ecoportal::API::V2::Pages::PageStage::Task>]
37
+ def complete(&block)
38
+ select(&:complete).tap do |res|
39
+ res.each(&block)
40
+ end
41
+ end
42
+
43
+ # @return [Array<Ecoportal::API::V2::Pages::PageStage::Task>]
44
+ def fill_in(active: :unused, &block)
45
+ target = self
46
+ target = open if active == true
47
+ target = complete if active == false
48
+
49
+ target.select(&:fill_in?).tap do |res|
50
+ res.each(&block)
51
+ end
52
+ end
53
+
54
+ # @return [Array<Ecoportal::API::V2::Pages::PageStage::Task>]
55
+ def review(active: :unused, &block)
56
+ target = self
57
+ target = open if active == true
58
+ target = complete if active == false
59
+
60
+ target.select(&:review?).tap do |res|
61
+ res.each(&block)
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
@@ -8,6 +8,9 @@ module Ecoportal
8
8
  passthrough :task_priority, :state, :status
9
9
  passthrough :votes_enabled, :upvotes, :downvotes
10
10
 
11
+ class_resolver :tasks_class, "Ecoportal::API::V2::Pages::PageStage::Tasks"
12
+ embeds_many :tasks, enum_class: :tasks_class
13
+
11
14
  #embeds_many :permits, klass: "Ecoportal::API::V2::Page::Permit"
12
15
  passarray :force_errors, :subtags, order_matters: false
13
16
 
@@ -64,16 +67,19 @@ module Ecoportal
64
67
  end
65
68
 
66
69
  def mark_as_submit
67
- doc["submitted"] = true
68
- doc["type"] = "complete_page"
70
+ tasks.fill_in(active: true).each(&:complete!)
69
71
  end
72
+ alias_method :submit!, :mark_as_submit
70
73
 
71
74
  def mark_as_sign_off
72
- doc["sign_off"] = true
73
- doc["type"] = "review_page"
75
+ tasks.review(active: true).each(&:complete!)
74
76
  end
77
+ alias_method :sign_off!, :mark_as_sign_off
75
78
  end
76
79
  end
77
80
  end
78
81
  end
79
82
  end
83
+
84
+ require 'ecoportal/api/v2/pages/page_stage/task'
85
+ require 'ecoportal/api/v2/pages/page_stage/tasks'
@@ -40,12 +40,11 @@ module Ecoportal
40
40
  # @param stage_id [String] the `id` of the target **stage**.
41
41
  # @return [Response] an object with the api response.
42
42
  def update(doc, id: nil, stage_id:)
43
- body = get_body(doc)
44
- id = id || get_id(doc)
45
- path = "/pages/#{CGI.escape(id)}/stages/#{CGI.escape(stage_id)}/"
43
+ body = get_body(doc)
44
+ id ||= get_id(doc)
45
+ path = "/pages/#{CGI.escape(id)}/stages/#{CGI.escape(stage_id)}/"
46
46
  client.patch(path, data: body)
47
47
  end
48
-
49
48
  end
50
49
  end
51
50
  end
@@ -57,11 +57,17 @@ module Ecoportal
57
57
  # @param doc [Hash, Page] data that at least contains an `id` (internal or external) of the target page.
58
58
  # @return [Ecoportal::API::Common::Response] an object with the api response.
59
59
  def update(doc)
60
+ if doc.is_a?(Ecoportal::API::V2::Pages::PageStage)
61
+ stage_id = doc.current_stage_id
62
+ return stages.update(doc, stage_id: stage_id)
63
+ end
64
+
60
65
  body = get_body(doc) # , level: "page"
61
66
  # Launch only if there are changes
62
67
  raise "Missing page object" unless body && body["page"]
63
68
 
64
69
  id = get_id(doc)
70
+
65
71
  client.patch("/pages/#{CGI.escape(id)}", data: body)
66
72
  end
67
73
 
@@ -1,5 +1,5 @@
1
1
  module Ecoportal
2
2
  module API
3
- GEM2_VERSION = "2.0.0".freeze
3
+ GEM2_VERSION = '2.0.5'.freeze
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: 2.0.0
4
+ version: 2.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oscar Segura
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-08-01 00:00:00.000000000 Z
11
+ date: 2024-08-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -230,6 +230,8 @@ files:
230
230
  - lib/ecoportal/api/v2/pages.rb
231
231
  - lib/ecoportal/api/v2/pages/page_create_response.rb
232
232
  - lib/ecoportal/api/v2/pages/page_stage.rb
233
+ - lib/ecoportal/api/v2/pages/page_stage/task.rb
234
+ - lib/ecoportal/api/v2/pages/page_stage/tasks.rb
233
235
  - lib/ecoportal/api/v2/pages/stages.rb
234
236
  - lib/ecoportal/api/v2/people.rb
235
237
  - lib/ecoportal/api/v2/registers.rb