Skip to content

Commit 6d3c7ef

Browse files
committed
return JobStatus
1 parent 7b19dfe commit 6d3c7ef

File tree

2 files changed

+26
-5
lines changed

2 files changed

+26
-5
lines changed

lib/zendesk_api/actions.rb

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,11 +151,16 @@ def create(client, attributes = {}, &block)
151151

152152
module CreateMany
153153
def create_many!(client, attributes_array)
154-
client.connection.post("#{resource_path}/create_many") do |req|
154+
response = client.connection.post("#{resource_path}/create_many") do |req|
155155
req.body = { resource_name => attributes_array }
156156

157157
yield req if block_given?
158158
end
159+
160+
JobStatus.new(client).tap do |resource|
161+
resource.handle_response(response)
162+
resource.attributes.clear_changes
163+
end
159164
end
160165
end
161166

@@ -207,11 +212,16 @@ def destroy(client, attributes = {}, &block)
207212

208213
module DestroyMany
209214
def destroy_many!(client, ids)
210-
client.connection.delete("#{resource_path}/destroy_many") do |req|
215+
response = client.connection.delete("#{resource_path}/destroy_many") do |req|
211216
req.params = { :ids => ids }
212217

213218
yield req if block_given?
214219
end
220+
221+
JobStatus.new(client).tap do |resource|
222+
resource.handle_response(response)
223+
resource.attributes.clear_changes
224+
end
215225
end
216226
end
217227

spec/core/bulk_actions_spec.rb

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,17 @@
66
context "destroy_many!" do
77
before(:each) do
88
stub_json_request(:delete, %r{bulk_test_resources/destroy_many}, json(:job_status => {:id => 'abc'}))
9+
@response = subject.destroy_many!(client, [1,2,3])
910
end
1011

1112
it 'calls the destroy_many endpoint' do
12-
subject.destroy_many!(client, [1,2,3])
1313
assert_requested(:delete, %r{bulk_test_resources/destroy_many\?ids%5B%5D=1&ids%5B%5D=2&ids%5B%5D=3})
1414
end
15+
16+
it 'returns a JobStatus' do
17+
expect(@response).to be_instance_of(ZendeskAPI::JobStatus)
18+
expect(@response.id).to eq('abc')
19+
end
1520
end
1621
end
1722

@@ -20,15 +25,21 @@
2025

2126
context "create_many!" do
2227
let(:attributes) { [{:name => 'A'}, {:name => 'B'}] }
28+
2329
before(:each) do
24-
stub_json_request(:post, %r{bulk_test_resources/create_many}, json(:job_status => {:id => 'abc'}))
30+
stub_json_request(:post, %r{bulk_test_resources/create_many}, json(:job_status => {:id => 'def'}))
31+
@response = subject.create_many!(client, attributes)
2532
end
2633

2734
it 'calls the create_many endpoint' do
28-
subject.create_many!(client, attributes)
2935
assert_requested(:post, %r{bulk_test_resources/create_many},
3036
:body => json(:bulk_test_resources => attributes)
3137
)
3238
end
39+
40+
it 'returns a JobStatus' do
41+
expect(@response).to be_instance_of(ZendeskAPI::JobStatus)
42+
expect(@response.id).to eq('def')
43+
end
3344
end
3445
end

0 commit comments

Comments
 (0)