zendesk_api 1.3.0.rc2 → 1.3.0.rc3

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: 5643ac1a2c1bf9f4bd50df7b8745b2cc1b7858bb
4
- data.tar.gz: d887a6f438c5645a37d009275fbd3a54099b6132
3
+ metadata.gz: e0af96893eadf039d7ee2f55140c99a2ebb6493b
4
+ data.tar.gz: 3cece9eb1e9d0e1d6028741316148efd0d81aff5
5
5
  SHA512:
6
- metadata.gz: a7cfc809cae2c3d09e3051be20d56636993d842855682b3b433824fec5fc8c8f37668e108f8c1a60b8531017f229460beb15472737925298372a3547db925ef8
7
- data.tar.gz: 3fcba2c5a56dc8ef199bedfdd6f35f64d75c883b04a8388e9c04da6699f119ee1fa6039972032c9d8398d92198a5dffdbe2a8c069831dad122060642ddac38b3
6
+ metadata.gz: d9a690f20225ad74dc19f0991786edef89b6fcfe721f81850897cca6d9b3b931f1d4c362c2baf26f81a9a21983db4f8479b239c7571999bc26e52cb0f2fc9b07
7
+ data.tar.gz: ca2b7c76939a390ae9d7ae464e8a5780e69a13afe42e219080444dc9f2f812d9db1b770832da1bc99869e01db02997c9029b6895448b29dcc5cfad1cd0b01831
data/Gemfile.lock CHANGED
@@ -1,11 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- zendesk_api (1.3.0.rc2)
4
+ zendesk_api (1.3.0.rc3)
5
5
  faraday (~> 0.9)
6
6
  hashie (>= 1.2)
7
7
  inflection
8
- mime-types (~> 2.0)
8
+ mime-types (~> 1.0)
9
9
  multi_json
10
10
  multipart-post (~> 2.0)
11
11
 
@@ -49,7 +49,7 @@ GEM
49
49
  i18n (0.6.9)
50
50
  inflection (1.0.0)
51
51
  json (1.8.1)
52
- mime-types (2.1)
52
+ mime-types (1.25.1)
53
53
  mongoid (3.1.6)
54
54
  activemodel (~> 3.2)
55
55
  moped (~> 1.4)
data/README.md CHANGED
@@ -204,7 +204,7 @@ Using side-loading, however, the user can be partially loaded in the same reques
204
204
 
205
205
  ```ruby
206
206
  tickets = client.tickets.include(:users)
207
- # Or client.tickets(include: :users)
207
+ # Or client.tickets(:include => :users)
208
208
  # Does *NOT* make a request to the server since it is already loaded
209
209
  tickets.first.requester # => #<ZendeskAPI::User id=...>
210
210
  ```
@@ -277,11 +277,11 @@ v1.1.0 introduces support for the Zendesk [Apps API](http://developer.zendesk.co
277
277
 
278
278
  ```ruby
279
279
  upload = client.apps.uploads.create!(:file => "path/to/app.zip")
280
- client.apps.create!(:name => "test", :short_description => "My test app", :upload_id => upload.id)
280
+ client.apps.create!(:name => "test", :upload_id => upload.id)
281
281
 
282
282
  # Or
283
283
 
284
- app = ZendeskAPI::App.new(client, :name => "test", :short_description => "My test app")
284
+ app = ZendeskAPI::App.new(client, :name => "test")
285
285
  app.upload = "path/to/app.zip"
286
286
  app.save!
287
287
 
@@ -291,12 +291,12 @@ upload = ZendeskAPI::App::Upload.new(client, :file => "path/to/app.zip")
291
291
  upload.save!
292
292
 
293
293
  app = ZendeskAPI::App.new(client, :name => "test")
294
- app.short_description = "My test app"
295
294
  app.upload_id = upload.id
296
295
  app.save!
297
296
 
298
- # Not supported!
299
- client.apps.create!(:name => "test", :short_description => "My test app", :upload => "app.zip")
297
+ # Or
298
+
299
+ client.apps.create!(:name => "test", :upload => "app.zip")
300
300
  ```
301
301
 
302
302
  *Note: job statuses are currently not supported, so you must manually poll the job status API for app creation.*
@@ -313,12 +313,20 @@ end
313
313
  #### Updating Apps
314
314
 
315
315
  ```ruby
316
- client.apps.update!(:id => 123, :short_description => "New Description")
316
+ upload = client.apps.uploads.create!(:file => "NewApp.zip")
317
+
318
+ # Then
319
+
320
+ client.apps.update!(:id => 123, :upload_id => upload.id)
317
321
 
318
- app = ZendeskAPI::App.new(client, :id => 123, :short_description => "New Description")
322
+ # Or
323
+
324
+ app = ZendeskAPI::App.new(client, :id => 123, :upload_id => upload.id)
319
325
  app.save!
320
326
 
321
- ZendeskAPI::App.update!(client, :id => 123, :short_description => "New Description")
327
+ # Or
328
+
329
+ ZendeskAPI::App.update!(client, :id => 123, :upload_id => upload.id)
322
330
  ```
323
331
 
324
332
  #### Deleting Apps
@@ -31,6 +31,7 @@ module ZendeskAPI
31
31
  include Destroy
32
32
 
33
33
  alias :name :id
34
+ alias :to_param :id
34
35
 
35
36
  def path(opts = {})
36
37
  raise "tags must have parent resource" unless association.options.parent
@@ -113,7 +114,7 @@ module ZendeskAPI
113
114
 
114
115
  has_many Ticket
115
116
  has_many User
116
- has_many Tag, :extend => Tag::Update
117
+ has_many Tag, :extend => Tag::Update, :inline => :create
117
118
  end
118
119
 
119
120
  class ForumSubscription < Resource
@@ -169,7 +170,7 @@ module ZendeskAPI
169
170
  has_many :comments, :class => TopicComment
170
171
  has_many :subscriptions, :class => TopicSubscription
171
172
  has :vote, :class => TopicVote
172
- has_many Tag, :extend => Tag::Update
173
+ has_many Tag, :extend => Tag::Update, :inline => :create
173
174
 
174
175
  def votes(opts = {})
175
176
  return @votes if @votes && !opts[:reload]
@@ -322,7 +323,7 @@ module ZendeskAPI
322
323
  has :last_comment, :class => Comment, :inline => true
323
324
  has_many :last_comments, :class => Comment, :inline => true
324
325
 
325
- has_many Tag, :extend => Tag::Update
326
+ has_many Tag, :extend => Tag::Update, :inline => :create
326
327
 
327
328
  has_many :incidents, :class => Ticket
328
329
 
@@ -593,6 +594,14 @@ module ZendeskAPI
593
594
  super
594
595
  end
595
596
 
597
+ def self.create!(client, attributes = {}, &block)
598
+ if file_path = attributes.delete(:upload)
599
+ attributes[:upload_id] = client.apps.uploads.create!(:file => file_path).id
600
+ end
601
+
602
+ super
603
+ end
604
+
596
605
  class Upload < Data
597
606
  class << self
598
607
  def resource_path
@@ -1,3 +1,3 @@
1
1
  module ZendeskAPI
2
- VERSION = "1.3.0.rc2"
2
+ VERSION = "1.3.0.rc3"
3
3
  end
@@ -1,7 +1,7 @@
1
1
  require 'core/spec_helper'
2
2
 
3
3
  describe ZendeskAPI::App do
4
- it "should work "do
4
+ it "should work" do
5
5
  upload = VCR.use_cassette("app_upload_create") do
6
6
  ZendeskAPI::App::Upload.new(client, :id => "spec/fixtures/sample_app.zip").tap(&:save!)
7
7
  end
@@ -12,20 +12,7 @@ describe ZendeskAPI::App do
12
12
 
13
13
  VCR.use_cassette("app_create") { app.save! }
14
14
 
15
- body = {}
16
-
17
- VCR.use_cassette("app_create_job_status") do
18
- until %w{failed completed}.include?(body["status"])
19
- response = client.connection.get(app.response.headers["Location"])
20
- body = response.body
21
-
22
- sleep(3)
23
- end
24
- end
25
-
26
- if body["status"] == "failed"
27
- fail "Could not create app: #{body.inspect}"
28
- end
15
+ body = check_job(app)
29
16
 
30
17
  app.id = body["app_id"]
31
18
  app.author_name = "Mr. Sprinkles"
@@ -37,4 +24,33 @@ describe ZendeskAPI::App do
37
24
 
38
25
  VCR.use_cassette("app_destroy") { app.destroy! }
39
26
  end
27
+
28
+ it "should be able to handle the simplest creation api call" do
29
+ VCR.use_cassette("app_simple_create") do
30
+ app = ZendeskAPI::App.create!(client, { :name => "Testing App Creation", :upload => "spec/fixtures/sample_app.zip" })
31
+
32
+ check_job(app)
33
+
34
+ VCR.use_cassette("app_destroy") { app.destroy! }
35
+ end
36
+ end
37
+ end
38
+
39
+ def check_job(app)
40
+ body = {}
41
+
42
+ VCR.use_cassette("app_create_job_status") do
43
+ until %w{failed completed}.include?(body["status"])
44
+ response = client.connection.get(app.response.headers["Location"])
45
+ body = response.body
46
+
47
+ sleep(3)
48
+ end
49
+ end
50
+
51
+ if body["status"] == "failed"
52
+ fail "Could not create app: #{body.inspect}"
53
+ end
54
+
55
+ body
40
56
  end
data/zendesk_api.gemspec CHANGED
@@ -32,7 +32,7 @@ Gem::Specification.new do |s|
32
32
  s.add_runtime_dependency "hashie", ">= 1.2"
33
33
  s.add_runtime_dependency "inflection"
34
34
  s.add_runtime_dependency "multi_json"
35
- s.add_runtime_dependency "mime-types", "~> 2.0"
35
+ s.add_runtime_dependency "mime-types", "~> 1.0"
36
36
  s.add_runtime_dependency "multipart-post", "~> 2.0"
37
37
 
38
38
  s.files = `git ls-files -x Gemfile.lock`.split("\n") rescue ''
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.3.0.rc2
4
+ version: 1.3.0.rc3
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: 2014-02-11 00:00:00.000000000 Z
12
+ date: 2014-02-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bump
@@ -157,14 +157,14 @@ dependencies:
157
157
  requirements:
158
158
  - - "~>"
159
159
  - !ruby/object:Gem::Version
160
- version: '2.0'
160
+ version: '1.0'
161
161
  type: :runtime
162
162
  prerelease: false
163
163
  version_requirements: !ruby/object:Gem::Requirement
164
164
  requirements:
165
165
  - - "~>"
166
166
  - !ruby/object:Gem::Version
167
- version: '2.0'
167
+ version: '1.0'
168
168
  - !ruby/object:Gem::Dependency
169
169
  name: multipart-post
170
170
  requirement: !ruby/object:Gem::Requirement