ecoportal-api-v2 2.0.0 → 2.0.5

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: 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