zendesk_api 1.7.1 → 1.7.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|