ecoportal-api 0.7.4 → 0.8.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 +4 -4
- data/CHANGELOG.md +99 -0
- data/ecoportal-api.gemspec +11 -7
- data/lib/ecoportal/api/common/base_model.rb +56 -18
- data/lib/ecoportal/api/common/batch_operation.rb +7 -1
- data/lib/ecoportal/api/common/batch_response.rb +2 -2
- data/lib/ecoportal/api/common/client.rb +40 -15
- data/lib/ecoportal/api/common/elastic_apm_integration.rb +112 -0
- data/lib/ecoportal/api/common/hash_diff.rb +8 -7
- data/lib/ecoportal/api/common/response.rb +1 -1
- data/lib/ecoportal/api/common/wrapped_response.rb +2 -2
- data/lib/ecoportal/api/common.rb +1 -0
- data/lib/ecoportal/api/errors/base.rb +8 -0
- data/lib/ecoportal/api/errors/time_out.rb +8 -0
- data/lib/ecoportal/api/errors.rb +9 -0
- data/lib/ecoportal/api/internal/account.rb +17 -39
- data/lib/ecoportal/api/internal/permissions.rb +4 -3
- data/lib/ecoportal/api/internal/person.rb +8 -2
- data/lib/ecoportal/api/v1/people.rb +48 -31
- data/lib/ecoportal/api/v1/person.rb +7 -7
- data/lib/ecoportal/api/v1/schema_field_value.rb +16 -19
- data/lib/ecoportal/api/version.rb +1 -1
- data/lib/ecoportal/api.rb +2 -1
- metadata +99 -50
- data/lib/ecoportal/api/v2/field.rb +0 -9
- data/lib/ecoportal/api/v2/page.rb +0 -30
- data/lib/ecoportal/api/v2/pages.rb +0 -46
- data/lib/ecoportal/api/v2/register_search_result.rb +0 -20
- data/lib/ecoportal/api/v2/registers.rb +0 -65
- data/lib/ecoportal/api/v2/stage.rb +0 -9
- data/lib/ecoportal/api/v2.rb +0 -47
metadata
CHANGED
@@ -1,137 +1,189 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ecoportal-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tapio Saarinen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-11-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '2.1'
|
20
17
|
- - ">="
|
21
18
|
- !ruby/object:Gem::Version
|
22
|
-
version: 2.
|
19
|
+
version: 2.2.17
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '2.3'
|
23
23
|
type: :development
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- - "~>"
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '2.1'
|
30
27
|
- - ">="
|
31
28
|
- !ruby/object:Gem::Version
|
32
|
-
version: 2.
|
29
|
+
version: 2.2.17
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '2.3'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
|
-
name:
|
34
|
+
name: rspec
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- - "
|
37
|
+
- - ">="
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version:
|
39
|
+
version: 3.10.0
|
40
|
+
- - "<"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '3.11'
|
40
43
|
type: :development
|
41
44
|
prerelease: false
|
42
45
|
version_requirements: !ruby/object:Gem::Requirement
|
43
46
|
requirements:
|
44
|
-
- - "
|
47
|
+
- - ">="
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: 3.10.0
|
50
|
+
- - "<"
|
45
51
|
- !ruby/object:Gem::Version
|
46
|
-
version: '
|
52
|
+
version: '3.11'
|
47
53
|
- !ruby/object:Gem::Dependency
|
48
|
-
name:
|
54
|
+
name: rake
|
49
55
|
requirement: !ruby/object:Gem::Requirement
|
50
56
|
requirements:
|
51
|
-
- - "~>"
|
52
|
-
- !ruby/object:Gem::Version
|
53
|
-
version: '3'
|
54
57
|
- - ">="
|
55
58
|
- !ruby/object:Gem::Version
|
56
|
-
version:
|
59
|
+
version: 13.0.3
|
60
|
+
- - "<"
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '13.1'
|
57
63
|
type: :development
|
58
64
|
prerelease: false
|
59
65
|
version_requirements: !ruby/object:Gem::Requirement
|
60
66
|
requirements:
|
61
|
-
- - "~>"
|
62
|
-
- !ruby/object:Gem::Version
|
63
|
-
version: '3'
|
64
67
|
- - ">="
|
65
68
|
- !ruby/object:Gem::Version
|
66
|
-
version:
|
69
|
+
version: 13.0.3
|
70
|
+
- - "<"
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: '13.1'
|
67
73
|
- !ruby/object:Gem::Dependency
|
68
74
|
name: yard
|
69
75
|
requirement: !ruby/object:Gem::Requirement
|
70
76
|
requirements:
|
71
|
-
- - "~>"
|
72
|
-
- !ruby/object:Gem::Version
|
73
|
-
version: '0.9'
|
74
77
|
- - ">="
|
75
78
|
- !ruby/object:Gem::Version
|
76
|
-
version: 0.9.
|
79
|
+
version: 0.9.26
|
80
|
+
- - "<"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0.10'
|
77
83
|
type: :development
|
78
84
|
prerelease: false
|
79
85
|
version_requirements: !ruby/object:Gem::Requirement
|
80
86
|
requirements:
|
81
|
-
- - "~>"
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
version: '0.9'
|
84
87
|
- - ">="
|
85
88
|
- !ruby/object:Gem::Version
|
86
|
-
version: 0.9.
|
89
|
+
version: 0.9.26
|
90
|
+
- - "<"
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: '0.10'
|
87
93
|
- !ruby/object:Gem::Dependency
|
88
94
|
name: redcarpet
|
89
95
|
requirement: !ruby/object:Gem::Requirement
|
90
96
|
requirements:
|
91
97
|
- - ">="
|
92
98
|
- !ruby/object:Gem::Version
|
93
|
-
version: 3.5.
|
94
|
-
- - "
|
99
|
+
version: 3.5.1
|
100
|
+
- - "<"
|
95
101
|
- !ruby/object:Gem::Version
|
96
|
-
version: '3.
|
102
|
+
version: '3.6'
|
97
103
|
type: :development
|
98
104
|
prerelease: false
|
99
105
|
version_requirements: !ruby/object:Gem::Requirement
|
100
106
|
requirements:
|
101
107
|
- - ">="
|
102
108
|
- !ruby/object:Gem::Version
|
103
|
-
version: 3.5.
|
104
|
-
- - "
|
109
|
+
version: 3.5.1
|
110
|
+
- - "<"
|
105
111
|
- !ruby/object:Gem::Version
|
106
|
-
version: '3.
|
112
|
+
version: '3.6'
|
107
113
|
- !ruby/object:Gem::Dependency
|
108
114
|
name: pry
|
109
115
|
requirement: !ruby/object:Gem::Requirement
|
110
116
|
requirements:
|
111
117
|
- - "~>"
|
112
118
|
- !ruby/object:Gem::Version
|
113
|
-
version: '0.
|
119
|
+
version: '0.14'
|
114
120
|
type: :development
|
115
121
|
prerelease: false
|
116
122
|
version_requirements: !ruby/object:Gem::Requirement
|
117
123
|
requirements:
|
118
124
|
- - "~>"
|
119
125
|
- !ruby/object:Gem::Version
|
120
|
-
version: '0.
|
126
|
+
version: '0.14'
|
121
127
|
- !ruby/object:Gem::Dependency
|
122
128
|
name: http
|
123
129
|
requirement: !ruby/object:Gem::Requirement
|
124
130
|
requirements:
|
125
131
|
- - "~>"
|
126
132
|
- !ruby/object:Gem::Version
|
127
|
-
version:
|
133
|
+
version: 4.4.1
|
134
|
+
- - "<"
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
version: '5'
|
128
137
|
type: :runtime
|
129
138
|
prerelease: false
|
130
139
|
version_requirements: !ruby/object:Gem::Requirement
|
131
140
|
requirements:
|
132
141
|
- - "~>"
|
133
142
|
- !ruby/object:Gem::Version
|
134
|
-
version:
|
143
|
+
version: 4.4.1
|
144
|
+
- - "<"
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '5'
|
147
|
+
- !ruby/object:Gem::Dependency
|
148
|
+
name: dotenv
|
149
|
+
requirement: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - ">="
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: 2.7.6
|
154
|
+
- - "<"
|
155
|
+
- !ruby/object:Gem::Version
|
156
|
+
version: '2.8'
|
157
|
+
type: :runtime
|
158
|
+
prerelease: false
|
159
|
+
version_requirements: !ruby/object:Gem::Requirement
|
160
|
+
requirements:
|
161
|
+
- - ">="
|
162
|
+
- !ruby/object:Gem::Version
|
163
|
+
version: 2.7.6
|
164
|
+
- - "<"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '2.8'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: elastic-apm
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 4.0.0
|
174
|
+
- - "<"
|
175
|
+
- !ruby/object:Gem::Version
|
176
|
+
version: '4.1'
|
177
|
+
type: :runtime
|
178
|
+
prerelease: false
|
179
|
+
version_requirements: !ruby/object:Gem::Requirement
|
180
|
+
requirements:
|
181
|
+
- - ">="
|
182
|
+
- !ruby/object:Gem::Version
|
183
|
+
version: 4.0.0
|
184
|
+
- - "<"
|
185
|
+
- !ruby/object:Gem::Version
|
186
|
+
version: '4.1'
|
135
187
|
- !ruby/object:Gem::Dependency
|
136
188
|
name: hash-polyfill
|
137
189
|
requirement: !ruby/object:Gem::Requirement
|
@@ -177,10 +229,14 @@ files:
|
|
177
229
|
- lib/ecoportal/api/common/batch_response.rb
|
178
230
|
- lib/ecoportal/api/common/client.rb
|
179
231
|
- lib/ecoportal/api/common/doc_helpers.rb
|
232
|
+
- lib/ecoportal/api/common/elastic_apm_integration.rb
|
180
233
|
- lib/ecoportal/api/common/hash_diff.rb
|
181
234
|
- lib/ecoportal/api/common/logging.rb
|
182
235
|
- lib/ecoportal/api/common/response.rb
|
183
236
|
- lib/ecoportal/api/common/wrapped_response.rb
|
237
|
+
- lib/ecoportal/api/errors.rb
|
238
|
+
- lib/ecoportal/api/errors/base.rb
|
239
|
+
- lib/ecoportal/api/errors/time_out.rb
|
184
240
|
- lib/ecoportal/api/internal.rb
|
185
241
|
- lib/ecoportal/api/internal/account.rb
|
186
242
|
- lib/ecoportal/api/internal/login_provider.rb
|
@@ -205,13 +261,6 @@ files:
|
|
205
261
|
- lib/ecoportal/api/v1/person_schemas.rb
|
206
262
|
- lib/ecoportal/api/v1/schema_field.rb
|
207
263
|
- lib/ecoportal/api/v1/schema_field_value.rb
|
208
|
-
- lib/ecoportal/api/v2.rb
|
209
|
-
- lib/ecoportal/api/v2/field.rb
|
210
|
-
- lib/ecoportal/api/v2/page.rb
|
211
|
-
- lib/ecoportal/api/v2/pages.rb
|
212
|
-
- lib/ecoportal/api/v2/register_search_result.rb
|
213
|
-
- lib/ecoportal/api/v2/registers.rb
|
214
|
-
- lib/ecoportal/api/v2/stage.rb
|
215
264
|
- lib/ecoportal/api/version.rb
|
216
265
|
homepage: https://www.ecoportal.com
|
217
266
|
licenses:
|
@@ -225,7 +274,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
225
274
|
requirements:
|
226
275
|
- - ">="
|
227
276
|
- !ruby/object:Gem::Version
|
228
|
-
version:
|
277
|
+
version: 2.4.4
|
229
278
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
230
279
|
requirements:
|
231
280
|
- - ">="
|
@@ -1,30 +0,0 @@
|
|
1
|
-
module Ecoportal
|
2
|
-
module API
|
3
|
-
class V2
|
4
|
-
class Page < Common::BaseModel
|
5
|
-
passthrough :id, :name, :state
|
6
|
-
|
7
|
-
class_resolver :stage_class, "Ecoportal::API::V2::Stage"
|
8
|
-
class_resolver :field_class, "Ecoportal::API::V2::Field"
|
9
|
-
|
10
|
-
def stages
|
11
|
-
return nil unless doc["evolution"]
|
12
|
-
return @stages if defined?(@stages)
|
13
|
-
@stages = (doc["evolution"]["stages"] || []).each_with_index.map do |stage, i|
|
14
|
-
stage_class.new(stage, parent: self, key: ["stages", i])
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
def fields
|
19
|
-
return @fields if defined?(@fields)
|
20
|
-
@fields = (doc["components"] || []).each_with_index.map do |component, i|
|
21
|
-
field_class.new(component, parent: self, key: ["components", i])
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
require 'ecoportal/api/v2/stage'
|
30
|
-
require 'ecoportal/api/v2/field'
|
@@ -1,46 +0,0 @@
|
|
1
|
-
module Ecoportal
|
2
|
-
module API
|
3
|
-
class V2
|
4
|
-
# @attr_reader client [Common::Client] a `Common::Client` object that holds the configuration of the api connection.
|
5
|
-
class Pages
|
6
|
-
extend Common::BaseClass
|
7
|
-
include Enumerable
|
8
|
-
include Common::DocHelpers
|
9
|
-
|
10
|
-
attr_reader :client
|
11
|
-
|
12
|
-
class_resolver :page_class, "Ecoportal::API::V2::Page"
|
13
|
-
|
14
|
-
# @param client [Common::Client] a `Common::Client` object that holds the configuration of the api connection.
|
15
|
-
# @return [People] an instance object ready to make people api requests.
|
16
|
-
def initialize(client)
|
17
|
-
@client = client
|
18
|
-
end
|
19
|
-
|
20
|
-
def get(id, stage_id: nil)
|
21
|
-
if stage_id
|
22
|
-
response = get_with_stage_id(id, stage_id)
|
23
|
-
return page_class.new(response.body["data"])
|
24
|
-
end
|
25
|
-
|
26
|
-
response = client.get("/pages/#{id}")
|
27
|
-
# we get a 302 back when there's stages for the page
|
28
|
-
# let's follow it
|
29
|
-
if response.status == 302
|
30
|
-
stage_id = response.body["data"].match(/stages\/(.*)/)[1]
|
31
|
-
response = get_with_stage_id(id, stage_id)
|
32
|
-
end
|
33
|
-
page_class.new(response.body["data"])
|
34
|
-
end
|
35
|
-
|
36
|
-
private
|
37
|
-
|
38
|
-
def get_with_stage_id(id, stage_id)
|
39
|
-
client.get("/pages/#{id}/stages/#{stage_id}")
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
require 'ecoportal/api/v2/page'
|
@@ -1,20 +0,0 @@
|
|
1
|
-
module Ecoportal
|
2
|
-
module API
|
3
|
-
class V2
|
4
|
-
class RegisterSearchResult < Common::BaseModel
|
5
|
-
passthrough :id, :name, :state
|
6
|
-
|
7
|
-
class_resolver :stage_class, "Ecoportal::API::V2::Stage"
|
8
|
-
|
9
|
-
def stages
|
10
|
-
return @stages if defined?(@stages)
|
11
|
-
@stages = (doc["stages"] || []).each_with_index.map do |stage, i|
|
12
|
-
stage_class.new(stage, parent: self, key: ["stages", i])
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
require 'ecoportal/api/v2/stage'
|
@@ -1,65 +0,0 @@
|
|
1
|
-
module Ecoportal
|
2
|
-
module API
|
3
|
-
class V2
|
4
|
-
# @attr_reader client [Common::Client] a `Common::Client` object that holds the configuration of the api connection.
|
5
|
-
class Registers
|
6
|
-
extend Common::BaseClass
|
7
|
-
include Enumerable
|
8
|
-
include Common::DocHelpers
|
9
|
-
|
10
|
-
class_resolver :register_search_result_class, "Ecoportal::API::V2::RegisterSearchResult"
|
11
|
-
|
12
|
-
attr_reader :client
|
13
|
-
|
14
|
-
# @param client [Common::Client] a `Common::Client` object that holds the configuration of the api connection.
|
15
|
-
# @return [People] an instance object ready to make people api requests.
|
16
|
-
def initialize(client)
|
17
|
-
@client = client
|
18
|
-
end
|
19
|
-
|
20
|
-
def search(register_id, options = {})
|
21
|
-
# supply a query string
|
22
|
-
# or a filter array (copy/paste from dev tools in the browser)
|
23
|
-
options = {query: nil, filters: []}.update(options)
|
24
|
-
options = {}.tap do |ret|
|
25
|
-
options.each do |key, value|
|
26
|
-
if key == :filters && value.any?
|
27
|
-
ret[key] = {filters: value}.to_json
|
28
|
-
else
|
29
|
-
ret[key] = value if key
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
cursor_id = nil
|
35
|
-
results = 0
|
36
|
-
loop do
|
37
|
-
options.update(cursor_id: cursor_id) if cursor_id
|
38
|
-
response = client.get("/registers/#{register_id}/search", params: options)
|
39
|
-
raise "Request failed - Status #{response.status}: #{response.body}" unless response.success?
|
40
|
-
|
41
|
-
data = response.body["data"]
|
42
|
-
unless (total = data["total"]) == 0
|
43
|
-
results += data["results"].length
|
44
|
-
percent = results * 100 / total
|
45
|
-
msg = "Registers SEARCH"
|
46
|
-
print "#{msg}: #{percent.round}% (of #{total})\r"
|
47
|
-
$stdout.flush
|
48
|
-
end
|
49
|
-
|
50
|
-
data["results"].each do |result|
|
51
|
-
object = register_search_result_class.new(result)
|
52
|
-
yield object
|
53
|
-
end
|
54
|
-
|
55
|
-
# break unless (cursor_id = data["cursor_id"])
|
56
|
-
break if total == results
|
57
|
-
end
|
58
|
-
self
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
require 'ecoportal/api/v2/register_search_result'
|
data/lib/ecoportal/api/v2.rb
DELETED
@@ -1,47 +0,0 @@
|
|
1
|
-
module Ecoportal
|
2
|
-
module API
|
3
|
-
# @attr_reader client [Common::Client] a `Common::Client` object that holds the configuration of the api connection.
|
4
|
-
# @attr_reader logger [Logger] the logger.
|
5
|
-
class V2
|
6
|
-
extend Common::BaseClass
|
7
|
-
include Common::Logging
|
8
|
-
|
9
|
-
VERSION = "v2"
|
10
|
-
class_resolver :registers_class, "Ecoportal::API::V2::Registers"
|
11
|
-
class_resolver :pages_class, "Ecoportal::API::V2::Pages"
|
12
|
-
|
13
|
-
attr_reader :client, :logger
|
14
|
-
|
15
|
-
# Creates an `V2` object to scope version specific api requests.
|
16
|
-
# @note
|
17
|
-
# - The const `VERSION` determineds the api version that client will query against.
|
18
|
-
# - This means that each subclass of `V2` should define their own `VERSION` constant.
|
19
|
-
# @param api_key [String] the key version to stablish the api connection.
|
20
|
-
# @param host [String] api server domain.
|
21
|
-
# @param logger [Logger] an object with `Logger` interface to generate logs.
|
22
|
-
# @return [V2] an object with the api version suit.
|
23
|
-
def initialize(api_key, version: VERSION, host: "live.ecoportal.com", logger: default_logger)
|
24
|
-
@logger = logger
|
25
|
-
@client = Common::Client.new(
|
26
|
-
api_key: api_key,
|
27
|
-
host: host,
|
28
|
-
version: self.class::VERSION,
|
29
|
-
logger: @logger
|
30
|
-
)
|
31
|
-
end
|
32
|
-
|
33
|
-
# Obtain specific object for register api requests.
|
34
|
-
# @return [Register] an instance object ready to make register api requests.
|
35
|
-
def registers
|
36
|
-
registers_class.new(client)
|
37
|
-
end
|
38
|
-
|
39
|
-
def pages
|
40
|
-
pages_class.new(client)
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
require 'ecoportal/api/v2/registers'
|
47
|
-
require 'ecoportal/api/v2/pages'
|