dato 0.3.28 → 0.3.29
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +1 -1
- data/lib/dato/local/loader.rb +1 -1
- data/lib/dato/site/paginator.rb +35 -0
- data/lib/dato/site/repo/item.rb +12 -20
- data/lib/dato/site/repo/upload.rb +20 -2
- data/lib/dato/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a1061c027f8e5c25e3c419ea494c95fe1f794181
|
4
|
+
data.tar.gz: 59252bf63438b2456a0174e260776fb8447bd53e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4ff063b70d83e36ac695744531146bc37b0ee36d8d53a223ec23d3fa675e6a286f1d2df5bc15a00c54cdd71228df89167755f5139af1a262105ff922a37ea000
|
7
|
+
data.tar.gz: bc13fa98fadc1f254002432318e80f377b635f99f91c38d8c029f006535560c07a288d550e0f5e41caaad9ada82a88fd8883d397f731d643f5399c1a128610e1
|
data/Rakefile
CHANGED
data/lib/dato/local/loader.rb
CHANGED
@@ -0,0 +1,35 @@
|
|
1
|
+
module Dato
|
2
|
+
module Site
|
3
|
+
class Paginator
|
4
|
+
def initialize(client, base_endpoint, filters)
|
5
|
+
@client, @base_endpoint, @filters = client, base_endpoint, filters
|
6
|
+
end
|
7
|
+
|
8
|
+
def response
|
9
|
+
items_per_page = 500
|
10
|
+
|
11
|
+
base_response = @client.request(
|
12
|
+
:get, @base_endpoint, @filters.dup.merge('page[limit]' => items_per_page)
|
13
|
+
)
|
14
|
+
|
15
|
+
extra_pages = (
|
16
|
+
base_response[:meta][:total_count] / items_per_page.to_f
|
17
|
+
).ceil - 1
|
18
|
+
|
19
|
+
extra_pages.times do |page|
|
20
|
+
base_response[:data] += @client.request(
|
21
|
+
:get,
|
22
|
+
@base_endpoint,
|
23
|
+
@filters.dup.merge(
|
24
|
+
'page[offset]' => items_per_page * (page + 1),
|
25
|
+
'page[limit]' => items_per_page
|
26
|
+
)
|
27
|
+
)[:data]
|
28
|
+
end
|
29
|
+
|
30
|
+
base_response
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
data/lib/dato/site/repo/item.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require 'dato/site/repo/base'
|
3
|
+
require 'dato/site/paginator'
|
3
4
|
require 'active_support/core_ext/hash/except'
|
5
|
+
require 'active_support/core_ext/hash/keys'
|
4
6
|
|
5
7
|
module Dato
|
6
8
|
module Site
|
@@ -37,32 +39,22 @@ module Dato
|
|
37
39
|
put_request "/items/#{item_id}", body
|
38
40
|
end
|
39
41
|
|
40
|
-
def all(filters = {},
|
41
|
-
|
42
|
+
def all(filters = {}, options = {})
|
43
|
+
options.symbolize_keys!
|
42
44
|
|
43
|
-
|
44
|
-
|
45
|
-
)
|
46
|
-
|
47
|
-
extra_pages = (
|
48
|
-
base_response[:meta][:total_count] / items_per_page.to_f
|
49
|
-
).ceil - 1
|
45
|
+
deserialize_response = options.fetch(:deserialize_response, true)
|
46
|
+
all_pages = options.fetch(:all_pages, false)
|
50
47
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
filters.dup.merge(
|
56
|
-
'page[offset]' => items_per_page * (page + 1),
|
57
|
-
'page[limit]' => items_per_page
|
58
|
-
)
|
59
|
-
)[:data]
|
48
|
+
response = if all_pages
|
49
|
+
Paginator.new(client, '/items', filters).response
|
50
|
+
else
|
51
|
+
client.request(:get, '/items', filters)
|
60
52
|
end
|
61
53
|
|
62
54
|
if deserialize_response
|
63
|
-
JsonApiDeserializer.new.deserialize(
|
55
|
+
JsonApiDeserializer.new.deserialize(response)
|
64
56
|
else
|
65
|
-
|
57
|
+
response
|
66
58
|
end
|
67
59
|
end
|
68
60
|
|
@@ -1,5 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require 'dato/site/repo/base'
|
3
|
+
require 'dato/site/paginator'
|
4
|
+
require 'active_support/core_ext/hash/except'
|
5
|
+
require 'active_support/core_ext/hash/keys'
|
3
6
|
|
4
7
|
module Dato
|
5
8
|
module Site
|
@@ -15,8 +18,23 @@ module Dato
|
|
15
18
|
post_request '/uploads', body
|
16
19
|
end
|
17
20
|
|
18
|
-
def all(
|
19
|
-
|
21
|
+
def all(filters = {}, options = {})
|
22
|
+
options.symbolize_keys!
|
23
|
+
|
24
|
+
deserialize_response = options.fetch(:deserialize_response, true)
|
25
|
+
all_pages = options.fetch(:all_pages, false)
|
26
|
+
|
27
|
+
response = if all_pages
|
28
|
+
Paginator.new(client, '/uploads', filters).response
|
29
|
+
else
|
30
|
+
client.request(:get, '/uploads', filters)
|
31
|
+
end
|
32
|
+
|
33
|
+
if deserialize_response
|
34
|
+
JsonApiDeserializer.new.deserialize(response)
|
35
|
+
else
|
36
|
+
response
|
37
|
+
end
|
20
38
|
end
|
21
39
|
|
22
40
|
def find(upload_id)
|
data/lib/dato/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dato
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.29
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefano Verna
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-02-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -422,6 +422,7 @@ files:
|
|
422
422
|
- lib/dato/local/site.rb
|
423
423
|
- lib/dato/migrate_slugs/runner.rb
|
424
424
|
- lib/dato/site/client.rb
|
425
|
+
- lib/dato/site/paginator.rb
|
425
426
|
- lib/dato/site/repo/access_token.rb
|
426
427
|
- lib/dato/site/repo/base.rb
|
427
428
|
- lib/dato/site/repo/deploy_event.rb
|