zendesk_api 1.9.1 → 1.9.2

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: d2000c3064ced80b9b513704706682fa6efb3d6b
4
- data.tar.gz: e0fbd470852268138644db6aa575cf0a71888daf
3
+ metadata.gz: 6c0668873d6863859d423460120ad1f26f5fcbbf
4
+ data.tar.gz: ed41d94e6c305a99128c0f168b9bdf94c45fe16d
5
5
  SHA512:
6
- metadata.gz: 7f40fb7707d4bbcea88dacdf5d2934b6e34f5f3fdadc9bb9504b841e11626297fcb525c505919bfa974afe6f8b30d341609d6d240ffc30440a18e00c06176bf1
7
- data.tar.gz: 63e7bd253035206f09e9db2ba99c12befaae9e99e54fa019d34f1bed720ce96b755de11ab6d0e090d7c1b089a0a5971a48d35a60c9ac69e8d9d8faab40c88211
6
+ metadata.gz: ade3e680e0f974e0661ccca4838eedd48b500a2042120b7847739b817845047ff1c478c114c07a08913e0f2c8851e1b50196e65b017da1ca976a4bf779b0cffc
7
+ data.tar.gz: 32d63c8526860913545c2e22bbae5792da1a4fd5b0b40d3d6fb9f7af4303b073dda993fb5f79f56d4a5b503c0d6908c30d2bf67feba055b2a3080c3962349173
@@ -160,8 +160,8 @@ module ZendeskAPI
160
160
  end
161
161
 
162
162
  module CreateMany
163
- def create_many!(client, attributes_array)
164
- response = client.connection.post("#{resource_path}/create_many") do |req|
163
+ def create_many!(client, attributes_array, association = Association.new(:class => self))
164
+ response = client.connection.post("#{association.generate_path}/create_many") do |req|
165
165
  req.body = { resource_name => attributes_array }
166
166
 
167
167
  yield req if block_given?
@@ -218,8 +218,8 @@ module ZendeskAPI
218
218
  end
219
219
 
220
220
  module DestroyMany
221
- def destroy_many!(client, ids)
222
- response = client.connection.delete("#{resource_path}/destroy_many") do |req|
221
+ def destroy_many!(client, ids, association = Association.new(:class => self))
222
+ response = client.connection.delete("#{association.generate_path}/destroy_many") do |req|
223
223
  req.params = { :ids => ids }
224
224
 
225
225
  yield req if block_given?
@@ -46,9 +46,9 @@ module ZendeskAPI
46
46
  end
47
47
  end
48
48
 
49
+ # Methods that take a Hash argument
49
50
  methods = %w{create find update destroy}
50
51
  methods += methods.map {|method| method + "!"}
51
- methods += %w{create_many! destroy_many!}
52
52
  methods.each do |deferrable|
53
53
  # Passes arguments and the proper path to the resource class method.
54
54
  # @param [Hash] options Options or attributes to pass
@@ -64,6 +64,22 @@ module ZendeskAPI
64
64
  end
65
65
  end
66
66
 
67
+ # Methods that take an Array argument
68
+ methods = %w{create_many! destroy_many!}
69
+ methods.each do |deferrable|
70
+ # Passes arguments and the proper path to the resource class method.
71
+ # @param [Array] array arguments
72
+ define_method deferrable do |*args|
73
+ unless @resource_class.respond_to?(deferrable)
74
+ raise NoMethodError.new("undefined method \"#{deferrable}\" for #{@resource_class}", deferrable, args)
75
+ end
76
+
77
+ array = args.last.is_a?(Array) ? args.pop : []
78
+
79
+ @resource_class.send(deferrable, @client, array, @association)
80
+ end
81
+ end
82
+
67
83
  # Convenience method to build a new resource and
68
84
  # add it to the collection. Fetches the collection as well.
69
85
  # @param [Hash] options Options or attributes to pass
@@ -1,3 +1,3 @@
1
1
  module ZendeskAPI
2
- VERSION = "1.9.1"
2
+ VERSION = "1.9.2"
3
3
  end
@@ -24,23 +24,41 @@ describe ZendeskAPI::Collection do
24
24
  end
25
25
 
26
26
  context "deferral" do
27
- before(:each) do
28
- stub_json_request(:any, %r{test_resources}, json(:test_resource => {}))
27
+ it "should defer #create_many! to the resource class" do
28
+ collection = ZendeskAPI::Collection.new(client, ZendeskAPI::BulkTestResource)
29
+ stub_json_request(:post, %r{bulk_test_resources/create_many$}, json(:job_status => {}))
30
+ collection.create_many!([{:name => 'Mick'}, {:name => 'Steven'}])
31
+ assert_requested(:post, %r{bulk_test_resources/create_many$},
32
+ :body => {
33
+ :bulk_test_resources => [{:name => 'Mick'}, {:name => 'Steven'}]
34
+ }
35
+ )
36
+ end
37
+
38
+ it "should defer #destroy_many! to the resource class" do
39
+ collection = ZendeskAPI::Collection.new(client, ZendeskAPI::BulkTestResource)
40
+ stub_json_request(:delete, %r{bulk_test_resources/destroy_many\?}, json(:job_status => {}))
41
+ collection.destroy_many!([1,2,3])
42
+ assert_requested(:delete, %r{bulk_test_resources/destroy_many\?ids%5B%5D=1&ids%5B%5D=2&ids%5B%5D=3$})
29
43
  end
30
44
 
31
45
  it "should defer #create to the resource class" do
46
+ stub_json_request(:post, %r{test_resources$}, json(:test_resource => {}))
32
47
  subject.create
33
48
  end
34
49
 
35
50
  it "should defer #find to the resource class" do
51
+ stub_json_request(:get, %r{test_resources/1$}, json(:test_resource => {}))
36
52
  subject.find(:id => 1)
37
53
  end
38
54
 
39
55
  it "should defer #destroy to the resource class" do
56
+ stub_json_request(:delete, %r{test_resources/1$}, json(:test_resource => {}))
40
57
  subject.destroy(:id => 1)
41
58
  end
42
59
 
43
60
  it "should defer #update to the resource class" do
61
+ stub_json_request(:put, %r{test_resources/1$}, json(:test_resource => {}))
44
62
  subject.update(:id => 1)
45
63
  end
46
64
 
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.9.1
4
+ version: 1.9.2
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-06-11 00:00:00.000000000 Z
12
+ date: 2015-06-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bump