global_registry_models 0.10.0 → 0.10.1
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/lib/global_registry_models/api_operations/finders.rb +1 -1
- data/lib/global_registry_models/api_operations/search.rb +39 -5
- data/lib/global_registry_models/entity/base.rb +3 -0
- data/lib/global_registry_models/entity_type/base.rb +4 -0
- data/lib/global_registry_models/measurement_type/base.rb +4 -0
- data/lib/global_registry_models/relationship_type/base.rb +4 -0
- data/lib/global_registry_models/subscription/base.rb +4 -0
- data/lib/global_registry_models/system/base.rb +4 -0
- data/lib/global_registry_models/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e82271ef6df1f5be945126682c4f9357b21c2eac
|
4
|
+
data.tar.gz: aaba8eaa40e2ff580239834c5ba5c3baca24071b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7cae4dd9df7e467dc3101d12162b31ed84f94e85229c9dc16287c76d4bdafa5b11903991979c7860aca47be93153fb0fc01c925df80efbf3b692461d1f752b3e
|
7
|
+
data.tar.gz: 26fbfa51cf9db6ac70f64f8b4ae438a6c8672d4137fcbb56b8d8fb8aaabd1c213da273111097d19b8b2da633bb59a7d524bfbe0275ee794ee8412d42cbb8f441
|
@@ -13,7 +13,7 @@ module GlobalRegistryModels
|
|
13
13
|
GlobalRegistryModels::Collection.new(meta: {}, list: []).tap do |collection|
|
14
14
|
page_num = start_page
|
15
15
|
loop do
|
16
|
-
sub_collection = GlobalRegistryModels::Retryer.new(RestClient::InternalServerError, max_attempts: max_attempts).try do
|
16
|
+
sub_collection = GlobalRegistryModels::Retryer.new([Net::HTTPGatewayTimeOut, RestClient::InternalServerError], max_attempts: max_attempts).try do
|
17
17
|
self.search(filters: filters, page: page_num, per_page: per_page, order: order, fields: fields, ruleset: ruleset)
|
18
18
|
end
|
19
19
|
collection.concat sub_collection.all
|
@@ -6,9 +6,10 @@ module GlobalRegistryModels
|
|
6
6
|
module ClassMethods
|
7
7
|
|
8
8
|
def search(filters: nil, page: nil, per_page: nil, order: nil, fields: nil, ruleset: nil)
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
|
10
|
+
params = params_by_offset_and_limit(page, per_page) if requires_pagination?(page, per_page)
|
11
|
+
|
12
|
+
params ||= search_params.merge({
|
12
13
|
page: page,
|
13
14
|
per_page: per_page,
|
14
15
|
order: order,
|
@@ -18,8 +19,41 @@ module GlobalRegistryModels
|
|
18
19
|
|
19
20
|
params = clean_params(filters, params)
|
20
21
|
response = GlobalRegistryModels::ResponseParser.new(global_registry_resource.get(params))
|
21
|
-
|
22
|
-
|
22
|
+
|
23
|
+
meta, objects = extract_meta_and_objects(page, per_page, response)
|
24
|
+
|
25
|
+
Collection.new meta: meta, list: objects
|
26
|
+
end
|
27
|
+
|
28
|
+
def params_by_offset_and_limit(page, per_page)
|
29
|
+
{
|
30
|
+
offset: offset(per_page, page),
|
31
|
+
limit: per_page + 1
|
32
|
+
}
|
33
|
+
end
|
34
|
+
|
35
|
+
def extract_meta_and_objects(page, per_page, response)
|
36
|
+
return [response.meta, response.objects] unless requires_pagination?(page, per_page)
|
37
|
+
meta = {
|
38
|
+
"page" => page.to_i,
|
39
|
+
"next_page" => next_page?(per_page, response.objects.count),
|
40
|
+
"from" => offset(per_page, page)+1,
|
41
|
+
"to" => offset(per_page, page).to_i + per_page
|
42
|
+
}
|
43
|
+
objects = ( next_page?(per_page, response.objects.count) ? response.objects[0...-1] : response.objects )
|
44
|
+
return [ meta, objects ]
|
45
|
+
end
|
46
|
+
|
47
|
+
def requires_pagination?(page, per_page)
|
48
|
+
!has_meta && page && per_page
|
49
|
+
end
|
50
|
+
|
51
|
+
def offset(per_page, page)
|
52
|
+
per_page.to_i * (page.to_i - 1)
|
53
|
+
end
|
54
|
+
|
55
|
+
def next_page?(per_page, objects_count)
|
56
|
+
per_page + 1 == objects_count
|
23
57
|
end
|
24
58
|
|
25
59
|
def clean_params( filters, params )
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: global_registry_models
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.10.
|
4
|
+
version: 0.10.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sheldon Dueck
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-02-
|
12
|
+
date: 2016-02-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activemodel
|