ecoportal-api-v2 0.8.23 → 0.8.26

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: 95c3cc7227186059ebac670bc0b3ba3637addab3f51dfe22d9303a27088cb2fd
4
- data.tar.gz: 05c0ee0a0a548081136d328ef1b33a27d6ee4f029752a8a1f3c28308fd05ea82
3
+ metadata.gz: f4693a8a82dab15ddfd0722b1b987efb80ddc7ef9d748e76b7ccff87c0317133
4
+ data.tar.gz: 999fbaa368b677cdab96889fb34c38fe0c71c4235c000d82e6e38fedd0cf7d10
5
5
  SHA512:
6
- metadata.gz: 2ad708f7fcec88a0380997bbf493d2186b5853e1eb4884e62c1107a4116337c53939852f99ab3d7cedbf2dddceed5fca63531f985a32a3a67139e150c9b94e7d
7
- data.tar.gz: aec3d7c8faa9cae78da045b34865da17a5ceb5b548fb9a66a1be51dc2448da92c150f528d9a9b62d1fdb93d1bfbeadbb7ff812ea02a9c7c0d6eb07aadb985f0d
6
+ metadata.gz: 76b33ecae1e147b8e1c1f1dffb118d7533eee71b4e9acc7a5e6609947c7880c4d6f2e3ffc32aac8c5df4af3133573103148861335bfe03a6e85ecf87af5b9e60
7
+ data.tar.gz: bcd91f124438cfd8aad7b181ea1f62744c8b37d92053e394a5b681a18338f19254b0d7ca5b59e1d50fc16357b138985c0aa2a67a4a57930952f775b9fbcc4248
data/CHANGELOG.md CHANGED
@@ -1,13 +1,34 @@
1
1
  # Change Log
2
2
  All notable changes to this project will be documented in this file.
3
3
 
4
- ## [0.8.23] - 2021-12-24
4
+ ## [0.8.26] - 2022-02-xx
5
5
 
6
6
  ### Added
7
- - `Ecoportal::API::V2::Registers#search` added more feedback on what is going on
7
+ `Ecoportal::API::V2::Page::Stage#add_permit`
8
+ `Ecoportal::API::V2::Page::Permit.new_doc`
9
+
10
+ ### Changed
11
+ ### Fixed
12
+
13
+ ## [0.8.25] - 2022-02-04
14
+
15
+ ### Added
16
+ - `Ecoportal::API::V2::Page::Component::ReferenceField#add` to add new references
8
17
 
9
18
  ### Changed
19
+ - `Ecoportal::API::Common::Content::HashDiffPatch#patch_data`
20
+ - Added support for model objects with no `patch_ver` (so diffs are calculated as well)
21
+
22
+ ## [0.8.24] - 2022-01-05
23
+
10
24
  ### Fixed
25
+ - `Ecoportal::API::V2::Page#stages?` do not generate an object to this purpose
26
+ - `Ecoportal::API::V2::Registers#search` fix typo in print feedback
27
+
28
+ ## [0.8.23] - 2021-12-24
29
+
30
+ ### Added
31
+ - `Ecoportal::API::V2::Registers#search` added more feedback on what is going on
11
32
 
12
33
  ## [0.8.22] - 2021-12-23
13
34
 
@@ -88,6 +88,7 @@ module Ecoportal
88
88
  elsif a && a.key?("patch_ver")
89
89
  data_hash["patch_ver"] = a["patch_ver"]
90
90
  end
91
+ data_hash.delete("force_patch")
91
92
  end
92
93
  end
93
94
  end
@@ -16,6 +16,14 @@ module Ecoportal
16
16
  end
17
17
  end
18
18
 
19
+ def add(ref_id)
20
+ doc["references"].push({
21
+ "id" => ref_id,
22
+ "weight" => 0,
23
+ "patch_ver" => 0
24
+ })
25
+ end
26
+
19
27
  def to_s(delimiter: "\n")
20
28
  reference_ids.to_a.join(delimiter)
21
29
  end
@@ -3,10 +3,19 @@ module Ecoportal
3
3
  class V2
4
4
  class Page
5
5
  class Permit < Common::Content::DoubleModel
6
+ class << self
7
+ def new_doc
8
+ {
9
+ "id" => new_uuid,
10
+ "editable" => false
11
+ }
12
+ end
13
+ end
14
+
6
15
  passkey :id
7
16
  passforced :patch_ver, default: 1
8
17
  passthrough :user_id, :user_name
9
- passthrough :editable, :flags
18
+ passthrough :editable
10
19
  embeds_one :flags, klass: "Ecoportal::API::V2::Page::PermissionFlags"
11
20
  end
12
21
  end
@@ -66,6 +66,29 @@ module Ecoportal
66
66
  end
67
67
  self
68
68
  end
69
+
70
+ # Adds a direct permission to this stage
71
+ # @note it will prevent to duplicate permits on same `user_id`
72
+ # @raise [ArgumentError] if `value` is not of any of the expected classes
73
+ # @param value [Ecoportal::API::Internal::Person, Hash] either the person
74
+ # or the actual Hash model with String keys person `user_id`, `user_name`, `user_email`
75
+ # @yieldparam section [Ecoportal::API::V2::Page::Permit] the created permit
76
+ def add_permit(value, &block)
77
+ props = ["user_id", "user_name", "user_email"]
78
+ hash_props = case value
79
+ when Ecoportal::API::Internal::Person
80
+ return false unless account = value.account
81
+ props.zip([account.user_id, value.name, value.email]).to_h
82
+ when Hash
83
+ value.slice(*props)
84
+ else
85
+ raise ArgumentError.new("Expected Ecoportal::API::Internal::Person or Hash. Given: #{value.class}")
86
+ end
87
+ hash_doc = Ecoportal::API::V2::Page::Permit.new_doc.merge(hash_props)
88
+ exists = self.permits.any? {|permit| permit.user_id == hash_doc["user_id"]}
89
+ return false if exists
90
+ self.permits.upsert!(hash_doc, &block)
91
+ end
69
92
  end
70
93
  end
71
94
  end
@@ -51,7 +51,7 @@ module Ecoportal
51
51
  end
52
52
 
53
53
  def stages?
54
- self.stages.count > 0
54
+ self.doc["stages"] && (self.stages.count > 0)
55
55
  end
56
56
 
57
57
  # @return [String] with feedback, if for this page instance, there are any of:
@@ -62,7 +62,7 @@ module Ecoportal
62
62
  total ||= data["total"]
63
63
  if total != data["total"]
64
64
  msg = "Change of total in search results. Probably due to changes that affect the filter (register: #{register_id}):"
65
- print_search_status(msg, total, results, cursor_id, data)
65
+ print_search_status(msg, total, results, cursor_id, data, options)
66
66
  #total = data["total"]
67
67
  end
68
68
 
@@ -79,7 +79,7 @@ module Ecoportal
79
79
  break if total <= results
80
80
  unless data["cursor_id"]
81
81
  msg = "Possible error... finishing search for lack of cursor_id in response:"
82
- print_search_status(msg, total, results, cursor_id, data)
82
+ print_search_status(msg, total, results, cursor_id, data, options)
83
83
  end
84
84
  break unless (cursor_id = data["cursor_id"])
85
85
  end
@@ -103,9 +103,10 @@ module Ecoportal
103
103
  end
104
104
  end
105
105
 
106
- def print_search_status(msg, total, results, cursor_id, data)
106
+ def print_search_status(msg, total, results, cursor_id, data, options)
107
107
  msg += "\n"
108
108
  msg += " • Original total: #{total}\n"
109
+ msg += " • Current total: #{data&.dig("total")}\n"
109
110
  msg += " • Total results retrieved: #{results}\n"
110
111
  msg += " • Cursor id: #{cursor_id} (#{Base64.decode64(cursor_id)})\n"
111
112
  msg += " • Current cursor results: #{data["results"]&.length}\n"
@@ -1,5 +1,5 @@
1
1
  module Ecoportal
2
2
  module API
3
- GEM2_VERSION = "0.8.23"
3
+ GEM2_VERSION = "0.8.26"
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: 0.8.23
4
+ version: 0.8.26
5
5
  platform: ruby
6
6
  authors:
7
7
  - Oscar Segura
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-12-24 00:00:00.000000000 Z
11
+ date: 2022-03-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler