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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 541a505d61aa6bbb9ca3bd5e088dbfa550d258dc
4
- data.tar.gz: 8afd557c82c987d29d8cc206ab027f8c5f6a7b73
3
+ metadata.gz: 98e06ffbdacbeb08a6c0fd74786612587c721929
4
+ data.tar.gz: f6cc18717f45162a64e4dca92ad1b073104afdbd
5
5
  SHA512:
6
- metadata.gz: b48bf63352b83b404c1e321e4c50c38ca66e01ce0689026d2501011cb63dfed386e9c6a8267bd53c8259042947951fcd59f11c7b59a3a347226a8cb5f3212b4c
7
- data.tar.gz: d3a0cc1728829615852bef5cb0589f119cf09beb2414d6317ca7471ddca6432d1580ce59fbc371dd076d02eaedd37c9937e0af2467c98b730621c900eef73906
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
- !@options["page"] || @options["page"].to_i <= 1
116
+ !@prev_page
117
117
  end
118
118
 
119
119
  def last_page?
120
- !@options["page"] || @options["page"].to_i * @options["per_page"].to_i >= count
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
@@ -1,3 +1,3 @@
1
1
  module ZendeskAPI
2
- VERSION = "1.7.1"
2
+ VERSION = "1.7.3"
3
3
  end
@@ -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(
@@ -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.detect {|u| u.email == email } ||
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,
@@ -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.1
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-04-20 00:00:00.000000000 Z
12
+ date: 2015-05-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bump