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 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