frederick_api 0.1.1 → 0.1.2
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/frederick_api/v2/paginator.rb +29 -0
- data/lib/frederick_api/v2/resource.rb +8 -0
- data/lib/frederick_api/version.rb +1 -1
- data/lib/frederick_api.rb +2 -0
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 49e604b17a3e27bba56beaa861431ad3cf06b880
|
4
|
+
data.tar.gz: 65d4d51f7e6d34cd7a67f5b8292c104253c4b52b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 14df284fcec910ee7a9769f734944cd577cacff9b94b619cbead4eb8a6b743ff5aab90c21f05e1683fd59511d67e295b2bef60e3b451b5188126164e4aab8d16
|
7
|
+
data.tar.gz: 432864cd9629aa3575a230750f8bcb756f9089acdaaad201f3cf96789369076ec968193e4ab2d2cf0650ee516305da460879e53f9bcf19986ba10e278ea9d610
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module FrederickAPI
|
4
|
+
module V2
|
5
|
+
# Custom paginator for json api client
|
6
|
+
# Fixes param names for pagination
|
7
|
+
# Also adds ability to get all records from a paginated API
|
8
|
+
class Paginator < JsonApiClient::Paginating::Paginator
|
9
|
+
self.page_param = 'page.number'
|
10
|
+
self.per_page_param = 'page.size'
|
11
|
+
|
12
|
+
def all_records
|
13
|
+
current_result_set = nil
|
14
|
+
results = self.result_set.to_a
|
15
|
+
first_resource = self.result_set.first
|
16
|
+
|
17
|
+
(total_pages - current_page).times do
|
18
|
+
first_resource.class.with_headers(first_resource.custom_headers) do
|
19
|
+
current_result_set = current_result_set ? current_result_set.pages.next : self.result_set.pages.next
|
20
|
+
raise 'next link not found' unless current_result_set
|
21
|
+
results.push(*current_result_set.to_a)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
results
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -6,6 +6,14 @@ module FrederickAPI
|
|
6
6
|
# Inherits functionality from JsonApiClient::Resource
|
7
7
|
class Resource < JsonApiClient::Resource
|
8
8
|
self.query_builder = FrederickAPI::V2::QueryBuilder
|
9
|
+
self.paginator = FrederickAPI::V2::Paginator
|
10
|
+
|
11
|
+
attr_accessor :custom_headers
|
12
|
+
|
13
|
+
def initialize(params = {})
|
14
|
+
self.custom_headers = self.class.custom_headers
|
15
|
+
super
|
16
|
+
end
|
9
17
|
|
10
18
|
def self.site
|
11
19
|
"#{FrederickAPI.config.base_url}/v2/"
|
data/lib/frederick_api.rb
CHANGED
@@ -2,9 +2,11 @@
|
|
2
2
|
|
3
3
|
# Third-party libs
|
4
4
|
require 'json_api_client'
|
5
|
+
require 'active_support/core_ext/class/attribute.rb'
|
5
6
|
|
6
7
|
# FrederickAPI libs
|
7
8
|
require 'frederick_api/configuration'
|
9
|
+
require 'frederick_api/v2/paginator'
|
8
10
|
require 'frederick_api/v2/query_builder'
|
9
11
|
require 'frederick_api/v2/resource'
|
10
12
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: frederick_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Frederick Engineering
|
@@ -41,6 +41,7 @@ files:
|
|
41
41
|
- lib/frederick_api/v2/contact_type.rb
|
42
42
|
- lib/frederick_api/v2/interaction.rb
|
43
43
|
- lib/frederick_api/v2/location.rb
|
44
|
+
- lib/frederick_api/v2/paginator.rb
|
44
45
|
- lib/frederick_api/v2/query_builder.rb
|
45
46
|
- lib/frederick_api/v2/resource.rb
|
46
47
|
- lib/frederick_api/v2/user.rb
|