zendesk_api 1.7.1 → 1.7.3
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/zendesk_api/collection.rb +2 -3
- data/lib/zendesk_api/resources.rb +4 -0
- data/lib/zendesk_api/version.rb +1 -1
- data/spec/core/collection_spec.rb +76 -0
- data/spec/fixtures/zendesk.rb +1 -1
- data/spec/live/request_spec.rb +1 -1
- data/spec/macros/resource_macros.rb +3 -2
- 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: 98e06ffbdacbeb08a6c0fd74786612587c721929
|
4
|
+
data.tar.gz: f6cc18717f45162a64e4dca92ad1b073104afdbd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 58cf0843963ac738917f717d8c8d9da4a813fda516099a73ff87cd6a3328f96c00617c2a8d96f1a1e296823d267d6da48f30aaa849a1b87926d08d7e7de47f2e
|
7
|
+
data.tar.gz: 20698254c962b84c195171a9ac5d5bf22eb1c82898290e48df26da08182fd899f0d825066b62daf07ba07e5c434ce9f8d25ec0571979ec89fd10bc1cda211c8c
|
@@ -113,11 +113,11 @@ module ZendeskAPI
|
|
113
113
|
end
|
114
114
|
|
115
115
|
def first_page?
|
116
|
-
!@
|
116
|
+
!@prev_page
|
117
117
|
end
|
118
118
|
|
119
119
|
def last_page?
|
120
|
-
!@
|
120
|
+
!@next_page || @next_page == @query
|
121
121
|
end
|
122
122
|
|
123
123
|
# Saves all newly created resources stored in this collection.
|
@@ -172,7 +172,6 @@ module ZendeskAPI
|
|
172
172
|
@response = get_response(@query || self.path)
|
173
173
|
handle_response(@response.body)
|
174
174
|
|
175
|
-
@query = nil
|
176
175
|
@resources
|
177
176
|
end
|
178
177
|
|
@@ -824,6 +824,9 @@ module ZendeskAPI
|
|
824
824
|
super
|
825
825
|
end
|
826
826
|
|
827
|
+
class Plan < Resource
|
828
|
+
end
|
829
|
+
|
827
830
|
class Upload < Data
|
828
831
|
class << self
|
829
832
|
def resource_path
|
@@ -866,6 +869,7 @@ module ZendeskAPI
|
|
866
869
|
end
|
867
870
|
|
868
871
|
has Upload, :path => "uploads"
|
872
|
+
has_many Plan
|
869
873
|
|
870
874
|
# Don't nest attributes
|
871
875
|
def attributes_for_save
|
data/lib/zendesk_api/version.rb
CHANGED
@@ -253,6 +253,82 @@ describe ZendeskAPI::Collection do
|
|
253
253
|
end
|
254
254
|
end
|
255
255
|
|
256
|
+
context "requests with no next_page" do
|
257
|
+
before(:each) do
|
258
|
+
stub_json_request(:get, %r{test_resources$}, json(
|
259
|
+
:test_resources => [{:id => 1}],
|
260
|
+
:next_page => "/test_resources?page=2"
|
261
|
+
))
|
262
|
+
|
263
|
+
stub_json_request(:get, %r{test_resources\?page=2}, json(
|
264
|
+
:test_resources => [{:id => 2}]
|
265
|
+
))
|
266
|
+
end
|
267
|
+
|
268
|
+
it "should yield resource and page" do
|
269
|
+
expect do |b|
|
270
|
+
silence_logger { subject.all(&b) }
|
271
|
+
end.to yield_successive_args(
|
272
|
+
[ZendeskAPI::TestResource.new(client, :id => 1), 1],
|
273
|
+
[ZendeskAPI::TestResource.new(client, :id => 2), 2]
|
274
|
+
)
|
275
|
+
end
|
276
|
+
end
|
277
|
+
|
278
|
+
context "incremental requests" do
|
279
|
+
subject do
|
280
|
+
ZendeskAPI::Collection.new(client, ZendeskAPI::TestResource, :path => 'exports/test_resources?start_time=0')
|
281
|
+
end
|
282
|
+
|
283
|
+
before(:each) do
|
284
|
+
stub_json_request(:get, %r{exports/test_resources\?start_time=0$}, json(
|
285
|
+
:test_resources => [{:id => 1}],
|
286
|
+
:next_page => "/exports/test_resources?start_time=200"
|
287
|
+
))
|
288
|
+
|
289
|
+
stub_json_request(:get, %r{exports/test_resources\?start_time=200$}, json(
|
290
|
+
:test_resources => [{:id => 2}],
|
291
|
+
:next_page => "/exports/test_resources?start_time=200"
|
292
|
+
))
|
293
|
+
end
|
294
|
+
|
295
|
+
it "should yield resource and page (and not infinitely loop)" do
|
296
|
+
expect do |b|
|
297
|
+
Timeout.timeout(5) do
|
298
|
+
silence_logger { subject.all(&b) }
|
299
|
+
end
|
300
|
+
end.to yield_successive_args(
|
301
|
+
[ZendeskAPI::TestResource.new(client, :id => 1), 1],
|
302
|
+
[ZendeskAPI::TestResource.new(client, :id => 2), 1] # page defaults to 1
|
303
|
+
)
|
304
|
+
end
|
305
|
+
end
|
306
|
+
|
307
|
+
context "infinite loops" do
|
308
|
+
before(:each) do
|
309
|
+
stub_json_request(:get, %r{test_resources$}, json(
|
310
|
+
:test_resources => [{:id => 1}],
|
311
|
+
:next_page => "/test_resources?page=2"
|
312
|
+
))
|
313
|
+
|
314
|
+
stub_json_request(:get, %r{/test_resources\?page=2$}, json(
|
315
|
+
:test_resources => [{:id => 2}],
|
316
|
+
:next_page => "/test_resources?page=2"
|
317
|
+
))
|
318
|
+
end
|
319
|
+
|
320
|
+
xit "should yield resource and page (and not infinitely loop)" do
|
321
|
+
expect do |b|
|
322
|
+
Timeout.timeout(5) do
|
323
|
+
silence_logger { subject.all(&b) }
|
324
|
+
end
|
325
|
+
end.to yield_successive_args(
|
326
|
+
[ZendeskAPI::TestResource.new(client, :id => 1), 1],
|
327
|
+
[ZendeskAPI::TestResource.new(client, :id => 2), 2]
|
328
|
+
)
|
329
|
+
end
|
330
|
+
end
|
331
|
+
|
256
332
|
context "successful requests" do
|
257
333
|
before(:each) do
|
258
334
|
stub_json_request(:get, %r{test_resources$}, json(
|
data/spec/fixtures/zendesk.rb
CHANGED
@@ -18,7 +18,7 @@ module ZendeskAPI
|
|
18
18
|
VCR.use_cassette("valid_user_#{role}") do
|
19
19
|
email = "zendesk-api-client-ruby-#{role}-#{client.config.username}"
|
20
20
|
|
21
|
-
client.users.
|
21
|
+
client.users.search(query: "email:#{email}").first ||
|
22
22
|
client.users.create(
|
23
23
|
:name => "Test Valid with role #{role}",
|
24
24
|
:verified => true,
|
data/spec/live/request_spec.rb
CHANGED
@@ -9,7 +9,7 @@ describe ZendeskAPI::Request do
|
|
9
9
|
end
|
10
10
|
|
11
11
|
it_should_be_creatable
|
12
|
-
it_should_be_updatable :solved, true
|
12
|
+
it_should_be_updatable :solved, true, { :comment => { :value => 'This is solved!' } }
|
13
13
|
it_should_be_readable :requests
|
14
14
|
it_should_be_readable user, :requests
|
15
15
|
|
@@ -44,7 +44,7 @@ module ResourceMacros
|
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
|
-
def it_should_be_updatable(attribute, value = "TESTDATA")
|
47
|
+
def it_should_be_updatable(attribute, value = "TESTDATA", extra = {})
|
48
48
|
context "update", :vcr do
|
49
49
|
before(:all) do
|
50
50
|
VCR.use_cassette("#{described_class.to_s}_update_create") do
|
@@ -54,6 +54,7 @@ module ResourceMacros
|
|
54
54
|
|
55
55
|
before(:each) do
|
56
56
|
@object.send("#{attribute}=", value)
|
57
|
+
extra.each {|k, v| @object.send("#{k}=", v)}
|
57
58
|
end
|
58
59
|
|
59
60
|
it "should be savable" do
|
@@ -66,7 +67,7 @@ module ResourceMacros
|
|
66
67
|
end
|
67
68
|
|
68
69
|
it "should keep attributes" do
|
69
|
-
expect(@object.send(attribute)).to eq(value
|
70
|
+
expect(@object.send(attribute)).to eq(value)
|
70
71
|
end
|
71
72
|
|
72
73
|
it "should be findable", :unless => metadata[:not_findable] do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zendesk_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.7.
|
4
|
+
version: 1.7.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steven Davidovitz
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-05-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bump
|