zendesk_api 0.3.2 → 0.3.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.
- data/Gemfile +1 -2
- data/Gemfile.lock +50 -55
- data/lib/zendesk_api/actions.rb +4 -2
- data/lib/zendesk_api/client.rb +1 -1
- data/lib/zendesk_api/middleware/response/callback.rb +4 -3
- data/lib/zendesk_api/middleware/response/logger.rb +5 -5
- data/lib/zendesk_api/middleware/response/parse_iso_dates.rb +3 -3
- data/lib/zendesk_api/resource.rb +1 -0
- data/lib/zendesk_api/track_changes.rb +12 -1
- data/lib/zendesk_api/version.rb +1 -1
- data/spec/core/client_spec.rb +9 -0
- data/spec/core/resource_spec.rb +19 -0
- data/spec/core/trackie_spec.rb +44 -0
- data/spec/fixtures/zendesk.rb +0 -5
- data/spec/live/collection_spec.rb +4 -4
- data/spec/live/group_spec.rb +3 -1
- data/spec/live/ticket_spec.rb +2 -2
- data/spec/macros/resource_macros.rb +8 -1
- data/zendesk_api.gemspec +2 -2
- metadata +10 -10
data/Gemfile
CHANGED
|
@@ -5,8 +5,7 @@ source 'https://rubygems.org'
|
|
|
5
5
|
|
|
6
6
|
gem "simplecov", :platforms => :ruby_19, :group => :development
|
|
7
7
|
gem "jruby-openssl", :platforms => :jruby
|
|
8
|
-
gem "
|
|
9
|
-
gem "multipart-post", :git => "git://github.com/steved555/multipart-post.git"
|
|
8
|
+
gem "multipart-post", :git => "https://github.com/steved555/multipart-post.git"
|
|
10
9
|
gem "multi_json", :group => :test
|
|
11
10
|
|
|
12
11
|
group :server do
|
data/Gemfile.lock
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
GIT
|
|
2
|
-
remote:
|
|
3
|
-
revision: f7adbf6b6e29bfcd3efbc33695fe0e018d62e66e
|
|
4
|
-
specs:
|
|
5
|
-
hashie (2.0.0.beta)
|
|
6
|
-
|
|
7
|
-
GIT
|
|
8
|
-
remote: git://github.com/steved555/multipart-post.git
|
|
2
|
+
remote: https://github.com/steved555/multipart-post.git
|
|
9
3
|
revision: 57c66998c05143a684c13694937c8adfd335cae1
|
|
10
4
|
specs:
|
|
11
5
|
multipart-post (1.1.5)
|
|
@@ -13,10 +7,10 @@ GIT
|
|
|
13
7
|
PATH
|
|
14
8
|
remote: .
|
|
15
9
|
specs:
|
|
16
|
-
zendesk_api (0.3.
|
|
10
|
+
zendesk_api (0.3.3)
|
|
17
11
|
faraday (>= 0.8.0)
|
|
18
12
|
faraday_middleware (>= 0.8.7)
|
|
19
|
-
hashie
|
|
13
|
+
hashie (~> 2.0.0)
|
|
20
14
|
inflection
|
|
21
15
|
json
|
|
22
16
|
mime-types
|
|
@@ -25,24 +19,24 @@ PATH
|
|
|
25
19
|
GEM
|
|
26
20
|
remote: https://rubygems.org/
|
|
27
21
|
specs:
|
|
28
|
-
activemodel (3.2.
|
|
29
|
-
activesupport (= 3.2.
|
|
22
|
+
activemodel (3.2.13)
|
|
23
|
+
activesupport (= 3.2.13)
|
|
30
24
|
builder (~> 3.0.0)
|
|
31
|
-
activesupport (3.2.
|
|
32
|
-
i18n (
|
|
25
|
+
activesupport (3.2.13)
|
|
26
|
+
i18n (= 0.6.1)
|
|
33
27
|
multi_json (~> 1.0)
|
|
34
|
-
addressable (2.3.
|
|
35
|
-
backports (
|
|
28
|
+
addressable (2.3.3)
|
|
29
|
+
backports (3.1.1)
|
|
36
30
|
bond (0.4.3)
|
|
37
31
|
bond (0.4.3-java)
|
|
38
|
-
bootstrap-sass (2.
|
|
32
|
+
bootstrap-sass (2.3.1.0)
|
|
39
33
|
sass (~> 3.2)
|
|
40
|
-
bouncy-castle-java (1.5.
|
|
34
|
+
bouncy-castle-java (1.5.0147)
|
|
41
35
|
builder (3.0.4)
|
|
42
|
-
bump (0.
|
|
43
|
-
chunky_png (1.2.
|
|
44
|
-
coderay (1.0.
|
|
45
|
-
coderay_bash (1.0.
|
|
36
|
+
bump (0.4.0)
|
|
37
|
+
chunky_png (1.2.8)
|
|
38
|
+
coderay (1.0.9)
|
|
39
|
+
coderay_bash (1.0.5)
|
|
46
40
|
coderay (>= 1.0)
|
|
47
41
|
compass (0.12.2)
|
|
48
42
|
chunky_png (~> 1.2)
|
|
@@ -51,54 +45,56 @@ GEM
|
|
|
51
45
|
crack (0.3.2)
|
|
52
46
|
daemons (1.1.9)
|
|
53
47
|
database_cleaner (0.9.1)
|
|
54
|
-
diff-lcs (1.
|
|
55
|
-
eventmachine (1.0.
|
|
56
|
-
eventmachine (1.0.
|
|
57
|
-
faraday (0.8.
|
|
48
|
+
diff-lcs (1.2.2)
|
|
49
|
+
eventmachine (1.0.3)
|
|
50
|
+
eventmachine (1.0.3-java)
|
|
51
|
+
faraday (0.8.7)
|
|
58
52
|
multipart-post (~> 1.1)
|
|
59
53
|
faraday_middleware (0.9.0)
|
|
60
54
|
faraday (>= 0.7.4, < 0.9)
|
|
61
55
|
fssm (0.2.10)
|
|
62
|
-
haml (
|
|
56
|
+
haml (4.0.1)
|
|
57
|
+
tilt
|
|
58
|
+
hashie (2.0.0)
|
|
63
59
|
i18n (0.6.1)
|
|
64
60
|
inflection (1.0.0)
|
|
65
|
-
jruby-openssl (0.8.
|
|
66
|
-
bouncy-castle-java (>= 1.5.
|
|
61
|
+
jruby-openssl (0.8.7)
|
|
62
|
+
bouncy-castle-java (>= 1.5.0147)
|
|
67
63
|
json (1.7.7)
|
|
68
|
-
mime-types (1.
|
|
69
|
-
mongoid (3.
|
|
70
|
-
activemodel (~> 3.
|
|
71
|
-
moped (~> 1.2)
|
|
64
|
+
mime-types (1.22)
|
|
65
|
+
mongoid (3.1.2)
|
|
66
|
+
activemodel (~> 3.2)
|
|
67
|
+
moped (~> 1.4.2)
|
|
72
68
|
origin (~> 1.0)
|
|
73
69
|
tzinfo (~> 0.3.22)
|
|
74
|
-
moped (1.
|
|
75
|
-
multi_json (1.
|
|
76
|
-
newrelic_rpm (3.
|
|
70
|
+
moped (1.4.5)
|
|
71
|
+
multi_json (1.7.2)
|
|
72
|
+
newrelic_rpm (3.6.0.78)
|
|
77
73
|
origin (1.0.11)
|
|
78
74
|
rack (1.5.2)
|
|
79
|
-
rack-protection (1.
|
|
75
|
+
rack-protection (1.5.0)
|
|
80
76
|
rack
|
|
81
77
|
rack-ssl-enforcer (0.2.5)
|
|
82
78
|
rack-test (0.6.2)
|
|
83
79
|
rack (>= 1.0)
|
|
84
|
-
rake (10.0.
|
|
80
|
+
rake (10.0.4)
|
|
85
81
|
redcarpet (2.2.2)
|
|
86
82
|
ripl (0.7.0)
|
|
87
83
|
bond (~> 0.4.2)
|
|
88
|
-
rspec (2.
|
|
89
|
-
rspec-core (~> 2.
|
|
90
|
-
rspec-expectations (~> 2.
|
|
91
|
-
rspec-mocks (~> 2.
|
|
92
|
-
rspec-core (2.
|
|
93
|
-
rspec-expectations (2.
|
|
94
|
-
diff-lcs (
|
|
95
|
-
rspec-mocks (2.
|
|
96
|
-
sass (3.2.
|
|
84
|
+
rspec (2.13.0)
|
|
85
|
+
rspec-core (~> 2.13.0)
|
|
86
|
+
rspec-expectations (~> 2.13.0)
|
|
87
|
+
rspec-mocks (~> 2.13.0)
|
|
88
|
+
rspec-core (2.13.1)
|
|
89
|
+
rspec-expectations (2.13.0)
|
|
90
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
|
91
|
+
rspec-mocks (2.13.0)
|
|
92
|
+
sass (3.2.7)
|
|
97
93
|
simplecov (0.7.1)
|
|
98
94
|
multi_json (~> 1.0)
|
|
99
95
|
simplecov-html (~> 0.7.1)
|
|
100
96
|
simplecov-html (0.7.1)
|
|
101
|
-
sinatra (1.3.
|
|
97
|
+
sinatra (1.3.6)
|
|
102
98
|
rack (~> 1.4)
|
|
103
99
|
rack-protection (~> 1.3)
|
|
104
100
|
tilt (~> 1.3, >= 1.3.3)
|
|
@@ -109,17 +105,17 @@ GEM
|
|
|
109
105
|
rack-test
|
|
110
106
|
sinatra (~> 1.3.0)
|
|
111
107
|
tilt (~> 1.3)
|
|
112
|
-
thin (1.5.
|
|
108
|
+
thin (1.5.1)
|
|
113
109
|
daemons (>= 1.0.9)
|
|
114
110
|
eventmachine (>= 0.12.6)
|
|
115
111
|
rack (>= 1.0.0)
|
|
116
|
-
tilt (1.3.
|
|
117
|
-
tzinfo (0.3.
|
|
112
|
+
tilt (1.3.6)
|
|
113
|
+
tzinfo (0.3.37)
|
|
118
114
|
vcr (2.4.0)
|
|
119
|
-
webmock (1.9.
|
|
115
|
+
webmock (1.9.3)
|
|
120
116
|
addressable (>= 2.2.7)
|
|
121
|
-
crack (>= 0.
|
|
122
|
-
yard (0.8.
|
|
117
|
+
crack (>= 0.3.2)
|
|
118
|
+
yard (0.8.5.2)
|
|
123
119
|
|
|
124
120
|
PLATFORMS
|
|
125
121
|
java
|
|
@@ -133,7 +129,6 @@ DEPENDENCIES
|
|
|
133
129
|
compass
|
|
134
130
|
database_cleaner
|
|
135
131
|
haml
|
|
136
|
-
hashie!
|
|
137
132
|
jruby-openssl
|
|
138
133
|
mongoid
|
|
139
134
|
multi_json
|
|
@@ -149,6 +144,6 @@ DEPENDENCIES
|
|
|
149
144
|
sinatra-contrib
|
|
150
145
|
thin
|
|
151
146
|
vcr
|
|
152
|
-
webmock
|
|
147
|
+
webmock (~> 1.9.0)
|
|
153
148
|
yard
|
|
154
149
|
zendesk_api!
|
data/lib/zendesk_api/actions.rb
CHANGED
|
@@ -25,6 +25,8 @@ module ZendeskAPI
|
|
|
25
25
|
else
|
|
26
26
|
{self.class.singular_resource_name.to_sym => attributes.changes}
|
|
27
27
|
end
|
|
28
|
+
|
|
29
|
+
req.body.merge!(@global_params)
|
|
28
30
|
end
|
|
29
31
|
|
|
30
32
|
@attributes.replace @attributes.deep_merge(@response.body[self.class.singular_resource_name] || {})
|
|
@@ -189,10 +191,10 @@ module ZendeskAPI
|
|
|
189
191
|
|
|
190
192
|
# Updates a resource given the id passed in.
|
|
191
193
|
# @param [Client] client The {Client} object to be used
|
|
192
|
-
# @param [Hash] attributes The attributes to update. Default to {}
|
|
194
|
+
# @param [Hash] attributes The attributes to update. Default to {}
|
|
193
195
|
def update(client, attributes = {})
|
|
194
196
|
ZendeskAPI::Client.check_deprecated_namespace_usage attributes, singular_resource_name
|
|
195
|
-
resource = new(client, :id => attributes.delete(:id))
|
|
197
|
+
resource = new(client, {:id => attributes.delete(:id), :global => attributes.delete(:global)})
|
|
196
198
|
resource.attributes.merge!(attributes)
|
|
197
199
|
resource.save
|
|
198
200
|
end
|
data/lib/zendesk_api/client.rb
CHANGED
|
@@ -36,7 +36,7 @@ module ZendeskAPI
|
|
|
36
36
|
|
|
37
37
|
@resource_cache[method] ||= {}
|
|
38
38
|
|
|
39
|
-
if !options
|
|
39
|
+
if !options.delete(:reload) && (cached = @resource_cache[method][options.hash])
|
|
40
40
|
cached
|
|
41
41
|
else
|
|
42
42
|
@resource_cache[method][options.hash] = ZendeskAPI::Collection.new(self, ZendeskAPI.const_get(ZendeskAPI::Helpers.modulize_string(Inflection.singular(method))), options)
|
|
@@ -10,9 +10,10 @@ module ZendeskAPI
|
|
|
10
10
|
@client = client
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
def
|
|
14
|
-
|
|
15
|
-
|
|
13
|
+
def call(env)
|
|
14
|
+
@app.call(env).on_complete do |env|
|
|
15
|
+
@client.callbacks.each {|c| c.call(env)}
|
|
16
|
+
end
|
|
16
17
|
end
|
|
17
18
|
end
|
|
18
19
|
end
|
|
@@ -8,6 +8,7 @@ module ZendeskAPI
|
|
|
8
8
|
class Logger < Faraday::Response::Middleware
|
|
9
9
|
def initialize(app, logger = nil)
|
|
10
10
|
super(app)
|
|
11
|
+
|
|
11
12
|
@logger = logger || begin
|
|
12
13
|
require 'logger'
|
|
13
14
|
::Logger.new(STDOUT)
|
|
@@ -17,12 +18,11 @@ module ZendeskAPI
|
|
|
17
18
|
def call(env)
|
|
18
19
|
@logger.info "#{env[:method]} #{env[:url].to_s}"
|
|
19
20
|
@logger.debug dump_debug(env, :request_headers)
|
|
20
|
-
super
|
|
21
|
-
end
|
|
22
21
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
@app.call(env).on_complete do |env|
|
|
23
|
+
@logger.info("Status #{env[:status].to_s}")
|
|
24
|
+
@logger.debug dump_debug(env, :response_headers)
|
|
25
|
+
end
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
private
|
|
@@ -8,9 +8,9 @@ module ZendeskAPI
|
|
|
8
8
|
# @private
|
|
9
9
|
class ParseIsoDates < Faraday::Response::Middleware
|
|
10
10
|
def call(env)
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
@app.call(env).on_complete do |env|
|
|
12
|
+
parse_dates!(env[:body])
|
|
13
|
+
end
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
private
|
data/lib/zendesk_api/resource.rb
CHANGED
|
@@ -57,6 +57,7 @@ module ZendeskAPI
|
|
|
57
57
|
def initialize(client, attributes = {})
|
|
58
58
|
raise "Expected a Hash for attributes, got #{attributes.inspect}" unless attributes.is_a?(Hash)
|
|
59
59
|
@association = attributes.delete(:association) || Association.new(:class => self.class)
|
|
60
|
+
@global_params = attributes.delete(:global) || {}
|
|
60
61
|
@client = client
|
|
61
62
|
@attributes = ZendeskAPI::Trackie.new(attributes)
|
|
62
63
|
|
|
@@ -21,7 +21,15 @@ module ZendeskAPI
|
|
|
21
21
|
module InstanceMethods
|
|
22
22
|
def clear_changes
|
|
23
23
|
each do |k, v|
|
|
24
|
-
|
|
24
|
+
if v.respond_to?(:clear_changes)
|
|
25
|
+
v.clear_changes
|
|
26
|
+
elsif v.is_a?(Array)
|
|
27
|
+
v.each do |val|
|
|
28
|
+
if val.respond_to?(:clear_changes)
|
|
29
|
+
val.clear_changes
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
25
33
|
end
|
|
26
34
|
|
|
27
35
|
changes.clear
|
|
@@ -59,6 +67,8 @@ module ZendeskAPI
|
|
|
59
67
|
each do |k, v|
|
|
60
68
|
if v.respond_to?(:changed?) && v.changed?
|
|
61
69
|
changes[k] = v.changes
|
|
70
|
+
elsif v.is_a?(Array) && v.any? {|val| val.respond_to?(:changed?) && val.changed?}
|
|
71
|
+
changes[k] = v
|
|
62
72
|
end
|
|
63
73
|
end
|
|
64
74
|
end
|
|
@@ -71,6 +81,7 @@ module ZendeskAPI
|
|
|
71
81
|
changes.key?(key)
|
|
72
82
|
end
|
|
73
83
|
end
|
|
84
|
+
|
|
74
85
|
alias :dirty? :changed?
|
|
75
86
|
end
|
|
76
87
|
end
|
data/lib/zendesk_api/version.rb
CHANGED
data/spec/core/client_spec.rb
CHANGED
|
@@ -165,6 +165,15 @@ describe ZendeskAPI::Client do
|
|
|
165
165
|
subject.search(:query => 'abc').should_not == subject.search(:query => '123')
|
|
166
166
|
end
|
|
167
167
|
|
|
168
|
+
it "should not cache calls with :reload => true options" do
|
|
169
|
+
subject.search(:query => 'abc').should_not == subject.search(:query => 'abc', :reload => true)
|
|
170
|
+
end
|
|
171
|
+
|
|
172
|
+
it "should not pass reload to the underlying collection" do
|
|
173
|
+
collection = subject.search(:query => 'abc', :reload => true)
|
|
174
|
+
collection.options.key?(:reload).should be_false
|
|
175
|
+
end
|
|
176
|
+
|
|
168
177
|
it "should cache calls with the same options" do
|
|
169
178
|
subject.search(:query => 'abc').should == subject.search(:query => 'abc')
|
|
170
179
|
end
|
data/spec/core/resource_spec.rb
CHANGED
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
require 'core/spec_helper'
|
|
2
2
|
|
|
3
3
|
describe ZendeskAPI::Resource do
|
|
4
|
+
context "initialize" do
|
|
5
|
+
context "with :global as part of attributes" do
|
|
6
|
+
it "should set @global_params" do
|
|
7
|
+
resource = ZendeskAPI::TestResource.new(client, { :global => { :something => 'hey' }})
|
|
8
|
+
resource.instance_variable_get(:@global_params).should == { :something => 'hey' }
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
4
13
|
context "#update" do
|
|
5
14
|
context "class method" do
|
|
6
15
|
let(:id) { 1 }
|
|
@@ -14,6 +23,16 @@ describe ZendeskAPI::Resource do
|
|
|
14
23
|
subject.update(client, :id => id, :test => :hello).should be_true
|
|
15
24
|
end
|
|
16
25
|
|
|
26
|
+
context "with global params" do
|
|
27
|
+
before(:each) do
|
|
28
|
+
stub_json_request(:put, %r{test_resources/#{id}}).with(:body => json({ :test_resource => { :test => :hello }, :something => "something"}))
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it "should return instance of resource" do
|
|
32
|
+
subject.update(client, :id => id, :test => :hello, :global => {:something => "something"}).should be_true
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
17
36
|
context "with client error" do
|
|
18
37
|
before(:each) do
|
|
19
38
|
stub_request(:put, %r{test_resources/#{id}}).to_return(:status => 500)
|
data/spec/core/trackie_spec.rb
CHANGED
|
@@ -55,6 +55,50 @@ describe ZendeskAPI::Trackie do
|
|
|
55
55
|
end
|
|
56
56
|
end
|
|
57
57
|
|
|
58
|
+
=begin TODO
|
|
59
|
+
context "nested arrays" do
|
|
60
|
+
before(:each) do
|
|
61
|
+
subject[:key] = []
|
|
62
|
+
subject.clear_changes
|
|
63
|
+
subject[:key] << :test
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
it "should include changes from nested array" do
|
|
67
|
+
subject.changes[:key].should == [:test]
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
specify "subject should be changed" do
|
|
71
|
+
subject.changed?.should be_true
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
=end
|
|
75
|
+
|
|
76
|
+
context "nested hashes in arrays" do
|
|
77
|
+
before(:each) do
|
|
78
|
+
subject[:key] = [ZendeskAPI::Trackie.new]
|
|
79
|
+
subject.clear_changes
|
|
80
|
+
subject[:key].first[:test] = true
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
it "should include changes from nested array" do
|
|
84
|
+
subject.changes[:key].first[:test].should be_true
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
specify "subject should be changed" do
|
|
88
|
+
subject.changed?.should be_true
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
context "clearing" do
|
|
92
|
+
before(:each) do
|
|
93
|
+
subject.clear_changes
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
it "should not have any changes" do
|
|
97
|
+
subject.changes.should be_empty
|
|
98
|
+
end
|
|
99
|
+
end
|
|
100
|
+
end
|
|
101
|
+
|
|
58
102
|
describe "#size" do
|
|
59
103
|
before do
|
|
60
104
|
subject[:size] = 42
|
data/spec/fixtures/zendesk.rb
CHANGED
|
@@ -10,7 +10,7 @@ describe ZendeskAPI::Collection do
|
|
|
10
10
|
ZendeskAPI::Collection.new(client, ZendeskAPI::User)
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
-
before(:
|
|
13
|
+
before(:each) do
|
|
14
14
|
VCR.use_cassette('collection_fetch_users') do
|
|
15
15
|
subject.per_page(1).page(2)
|
|
16
16
|
subject.fetch(true)
|
|
@@ -41,15 +41,15 @@ describe ZendeskAPI::Collection do
|
|
|
41
41
|
before(:each) { subject.per_page(1).page(2) }
|
|
42
42
|
|
|
43
43
|
it "should increase page option and not call fetch" do
|
|
44
|
-
subject.next.should == 3
|
|
44
|
+
subject.next.should == 3
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
it "should decrease page option and not call fetch" do
|
|
48
|
-
subject.prev.should == 1
|
|
48
|
+
subject.prev.should == 1
|
|
49
49
|
end
|
|
50
50
|
|
|
51
51
|
context "with page == 1" do
|
|
52
|
-
before do
|
|
52
|
+
before do
|
|
53
53
|
subject.page(1)
|
|
54
54
|
subject.clear_cache
|
|
55
55
|
subject.should_not_receive(:fetch)
|
data/spec/live/group_spec.rb
CHANGED
|
@@ -14,7 +14,9 @@ describe ZendeskAPI::Group, :delete_after do
|
|
|
14
14
|
context "with a membership" do
|
|
15
15
|
before(:each) do
|
|
16
16
|
VCR.use_cassette("read_ZendeskAPI::User_groups_create") do
|
|
17
|
-
|
|
17
|
+
attrs = valid_attributes
|
|
18
|
+
attrs.merge!(@default_options) if @default_options
|
|
19
|
+
@object = described_class.create!(client, attrs)
|
|
18
20
|
@membership = agent.group_memberships.create(:group_id => @object.id, :user_id => agent.id)
|
|
19
21
|
end
|
|
20
22
|
end
|
data/spec/live/ticket_spec.rb
CHANGED
|
@@ -76,7 +76,7 @@ describe ZendeskAPI::Ticket do
|
|
|
76
76
|
|
|
77
77
|
it "can upload while creating" do
|
|
78
78
|
VCR.use_cassette("ticket_inline_uploads") do
|
|
79
|
-
ticket = ZendeskAPI::Ticket.new(client, valid_attributes
|
|
79
|
+
ticket = ZendeskAPI::Ticket.new(client, valid_attributes)
|
|
80
80
|
ticket.comment.uploads << "spec/fixtures/Argentina.gif"
|
|
81
81
|
ticket.comment.uploads << File.new("spec/fixtures/Argentina.gif")
|
|
82
82
|
|
|
@@ -88,7 +88,7 @@ describe ZendeskAPI::Ticket do
|
|
|
88
88
|
|
|
89
89
|
it "can comment while creating" do
|
|
90
90
|
VCR.use_cassette("ticket_inline_comments") do
|
|
91
|
-
ticket = ZendeskAPI::Ticket.new(client, valid_attributes
|
|
91
|
+
ticket = ZendeskAPI::Ticket.new(client, valid_attributes)
|
|
92
92
|
ticket.comment = ZendeskAPI::Ticket::Comment.new(client, :value => "My comment", :public => false)
|
|
93
93
|
ticket.save!
|
|
94
94
|
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
module ResourceMacros
|
|
2
|
+
def self.extended(klass)
|
|
3
|
+
klass.define_method(:default_options) {{}}
|
|
4
|
+
end
|
|
5
|
+
|
|
2
6
|
def under(object, &blk)
|
|
3
7
|
context "under a #{object.class.singular_resource_name}" do
|
|
4
|
-
|
|
8
|
+
define_method(:default_options) do
|
|
9
|
+
{ "#{object.class.singular_resource_name}_id" => object.id }
|
|
10
|
+
end
|
|
11
|
+
|
|
5
12
|
instance_eval(&blk)
|
|
6
13
|
end
|
|
7
14
|
end
|
data/zendesk_api.gemspec
CHANGED
|
@@ -22,7 +22,7 @@ Gem::Specification.new do |s|
|
|
|
22
22
|
s.add_development_dependency "rake"
|
|
23
23
|
s.add_development_dependency "rspec"
|
|
24
24
|
s.add_development_dependency "vcr"
|
|
25
|
-
s.add_development_dependency "webmock"
|
|
25
|
+
s.add_development_dependency "webmock", "~> 1.9.0"
|
|
26
26
|
s.add_development_dependency "yard"
|
|
27
27
|
|
|
28
28
|
# Optional. Only used for uploads testing.
|
|
@@ -30,7 +30,7 @@ Gem::Specification.new do |s|
|
|
|
30
30
|
|
|
31
31
|
s.add_runtime_dependency "faraday", ">= 0.8.0"
|
|
32
32
|
s.add_runtime_dependency "faraday_middleware", ">= 0.8.7"
|
|
33
|
-
s.add_runtime_dependency "hashie"
|
|
33
|
+
s.add_runtime_dependency "hashie", "~> 2.0.0"
|
|
34
34
|
s.add_runtime_dependency "inflection"
|
|
35
35
|
s.add_runtime_dependency "json"
|
|
36
36
|
s.add_runtime_dependency "mime-types"
|
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: 0.3.
|
|
4
|
+
version: 0.3.3
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -10,7 +10,7 @@ authors:
|
|
|
10
10
|
autorequire:
|
|
11
11
|
bindir: bin
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date: 2013-
|
|
13
|
+
date: 2013-04-02 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: bump
|
|
@@ -81,17 +81,17 @@ dependencies:
|
|
|
81
81
|
requirement: !ruby/object:Gem::Requirement
|
|
82
82
|
none: false
|
|
83
83
|
requirements:
|
|
84
|
-
- -
|
|
84
|
+
- - ~>
|
|
85
85
|
- !ruby/object:Gem::Version
|
|
86
|
-
version:
|
|
86
|
+
version: 1.9.0
|
|
87
87
|
type: :development
|
|
88
88
|
prerelease: false
|
|
89
89
|
version_requirements: !ruby/object:Gem::Requirement
|
|
90
90
|
none: false
|
|
91
91
|
requirements:
|
|
92
|
-
- -
|
|
92
|
+
- - ~>
|
|
93
93
|
- !ruby/object:Gem::Version
|
|
94
|
-
version:
|
|
94
|
+
version: 1.9.0
|
|
95
95
|
- !ruby/object:Gem::Dependency
|
|
96
96
|
name: yard
|
|
97
97
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -145,17 +145,17 @@ dependencies:
|
|
|
145
145
|
requirement: !ruby/object:Gem::Requirement
|
|
146
146
|
none: false
|
|
147
147
|
requirements:
|
|
148
|
-
- -
|
|
148
|
+
- - ~>
|
|
149
149
|
- !ruby/object:Gem::Version
|
|
150
|
-
version:
|
|
150
|
+
version: 2.0.0
|
|
151
151
|
type: :runtime
|
|
152
152
|
prerelease: false
|
|
153
153
|
version_requirements: !ruby/object:Gem::Requirement
|
|
154
154
|
none: false
|
|
155
155
|
requirements:
|
|
156
|
-
- -
|
|
156
|
+
- - ~>
|
|
157
157
|
- !ruby/object:Gem::Version
|
|
158
|
-
version:
|
|
158
|
+
version: 2.0.0
|
|
159
159
|
- !ruby/object:Gem::Dependency
|
|
160
160
|
name: inflection
|
|
161
161
|
requirement: !ruby/object:Gem::Requirement
|