zendesk2 1.4.2 → 1.5.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.
Files changed (153) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -1
  3. data/lib/zendesk2/attributes.rb +1 -1
  4. data/lib/zendesk2/{collection.rb → client/collection.rb} +22 -17
  5. data/lib/zendesk2/client/collections/categories.rb +2 -1
  6. data/lib/zendesk2/client/collections/forums.rb +2 -1
  7. data/lib/zendesk2/client/collections/groups.rb +4 -3
  8. data/lib/zendesk2/client/collections/help_center/articles.rb +2 -1
  9. data/lib/zendesk2/client/collections/help_center/categories.rb +2 -1
  10. data/lib/zendesk2/client/collections/help_center/sections.rb +2 -1
  11. data/lib/zendesk2/client/collections/memberships.rb +9 -7
  12. data/lib/zendesk2/client/collections/organizations.rb +3 -2
  13. data/lib/zendesk2/client/collections/ticket_audits.rb +5 -4
  14. data/lib/zendesk2/client/collections/ticket_comments.rb +4 -3
  15. data/lib/zendesk2/client/collections/ticket_fields.rb +3 -1
  16. data/lib/zendesk2/client/collections/tickets.rb +2 -1
  17. data/lib/zendesk2/client/collections/topic_comments.rb +2 -1
  18. data/lib/zendesk2/client/collections/topics.rb +2 -1
  19. data/lib/zendesk2/client/collections/user_fields.rb +3 -1
  20. data/lib/zendesk2/client/collections/user_identities.rb +3 -1
  21. data/lib/zendesk2/client/collections/users.rb +3 -2
  22. data/lib/zendesk2/client/help_center.rb +3 -0
  23. data/lib/zendesk2/client/mock.rb +7 -130
  24. data/lib/zendesk2/{model.rb → client/model.rb} +7 -3
  25. data/lib/zendesk2/client/models/audit_event.rb +2 -2
  26. data/lib/zendesk2/client/models/category.rb +8 -8
  27. data/lib/zendesk2/client/models/forum.rb +11 -16
  28. data/lib/zendesk2/client/models/group.rb +8 -13
  29. data/lib/zendesk2/client/models/help_center/article.rb +12 -16
  30. data/lib/zendesk2/client/models/help_center/category.rb +12 -16
  31. data/lib/zendesk2/client/models/help_center/section.rb +12 -16
  32. data/lib/zendesk2/client/models/membership.rb +10 -12
  33. data/lib/zendesk2/client/models/organization.rb +13 -20
  34. data/lib/zendesk2/client/models/ticket.rb +21 -19
  35. data/lib/zendesk2/client/models/ticket_audit.rb +3 -3
  36. data/lib/zendesk2/client/models/ticket_comment.rb +1 -1
  37. data/lib/zendesk2/client/models/ticket_comment_privacy_change.rb +1 -1
  38. data/lib/zendesk2/client/models/ticket_field.rb +5 -13
  39. data/lib/zendesk2/client/models/ticket_metric.rb +1 -1
  40. data/lib/zendesk2/client/models/ticket_voice_comment.rb +1 -1
  41. data/lib/zendesk2/client/models/topic.rb +9 -14
  42. data/lib/zendesk2/client/models/topic_comment.rb +14 -19
  43. data/lib/zendesk2/client/models/user.rb +25 -32
  44. data/lib/zendesk2/client/models/user_field.rb +10 -18
  45. data/lib/zendesk2/client/models/user_identity.rb +9 -18
  46. data/lib/zendesk2/client/real.rb +7 -8
  47. data/lib/zendesk2/client/request.rb +271 -0
  48. data/lib/zendesk2/client/requests/create_category.rb +19 -27
  49. data/lib/zendesk2/client/requests/create_forum.rb +23 -28
  50. data/lib/zendesk2/client/requests/create_group.rb +25 -29
  51. data/lib/zendesk2/client/requests/create_help_center_article.rb +54 -60
  52. data/lib/zendesk2/client/requests/create_help_center_category.rb +35 -47
  53. data/lib/zendesk2/client/requests/create_help_center_section.rb +49 -55
  54. data/lib/zendesk2/client/requests/create_membership.rb +42 -42
  55. data/lib/zendesk2/client/requests/create_organization.rb +30 -40
  56. data/lib/zendesk2/client/requests/create_ticket.rb +76 -85
  57. data/lib/zendesk2/client/requests/create_ticket_field.rb +36 -40
  58. data/lib/zendesk2/client/requests/create_topic.rb +23 -28
  59. data/lib/zendesk2/client/requests/create_topic_comment.rb +27 -31
  60. data/lib/zendesk2/client/requests/create_user.rb +51 -56
  61. data/lib/zendesk2/client/requests/create_user_field.rb +36 -40
  62. data/lib/zendesk2/client/requests/create_user_identity.rb +39 -44
  63. data/lib/zendesk2/client/requests/destroy_category.rb +8 -21
  64. data/lib/zendesk2/client/requests/destroy_forum.rb +8 -23
  65. data/lib/zendesk2/client/requests/destroy_group.rb +8 -21
  66. data/lib/zendesk2/client/requests/destroy_help_center_article.rb +8 -18
  67. data/lib/zendesk2/client/requests/destroy_help_center_category.rb +8 -18
  68. data/lib/zendesk2/client/requests/destroy_help_center_section.rb +10 -18
  69. data/lib/zendesk2/client/requests/destroy_membership.rb +8 -22
  70. data/lib/zendesk2/client/requests/destroy_organization.rb +8 -21
  71. data/lib/zendesk2/client/requests/destroy_ticket.rb +8 -21
  72. data/lib/zendesk2/client/requests/destroy_ticket_field.rb +8 -21
  73. data/lib/zendesk2/client/requests/destroy_topic.rb +8 -23
  74. data/lib/zendesk2/client/requests/destroy_topic_comment.rb +11 -24
  75. data/lib/zendesk2/client/requests/destroy_user.rb +17 -43
  76. data/lib/zendesk2/client/requests/destroy_user_field.rb +7 -22
  77. data/lib/zendesk2/client/requests/destroy_user_identity.rb +10 -25
  78. data/lib/zendesk2/client/requests/get_assignable_groups.rb +8 -16
  79. data/lib/zendesk2/client/requests/get_categories.rb +7 -15
  80. data/lib/zendesk2/client/requests/get_category.rb +11 -22
  81. data/lib/zendesk2/client/requests/get_ccd_tickets.rb +11 -18
  82. data/lib/zendesk2/client/requests/get_current_user.rb +6 -16
  83. data/lib/zendesk2/client/requests/get_forum.rb +11 -23
  84. data/lib/zendesk2/client/requests/get_forums.rb +7 -15
  85. data/lib/zendesk2/client/requests/get_group.rb +9 -23
  86. data/lib/zendesk2/client/requests/get_groups.rb +7 -15
  87. data/lib/zendesk2/client/requests/get_help_center_article.rb +13 -37
  88. data/lib/zendesk2/client/requests/get_help_center_articles.rb +6 -15
  89. data/lib/zendesk2/client/requests/get_help_center_categories.rb +6 -15
  90. data/lib/zendesk2/client/requests/get_help_center_category.rb +13 -37
  91. data/lib/zendesk2/client/requests/get_help_center_section.rb +14 -37
  92. data/lib/zendesk2/client/requests/get_help_center_sections.rb +6 -15
  93. data/lib/zendesk2/client/requests/get_membership.rb +9 -24
  94. data/lib/zendesk2/client/requests/get_organization.rb +9 -22
  95. data/lib/zendesk2/client/requests/get_organization_by_external_id.rb +11 -20
  96. data/lib/zendesk2/client/requests/get_organization_memberships.rb +10 -16
  97. data/lib/zendesk2/client/requests/get_organization_tickets.rb +14 -21
  98. data/lib/zendesk2/client/requests/get_organization_users.rb +12 -20
  99. data/lib/zendesk2/client/requests/get_organizations.rb +7 -16
  100. data/lib/zendesk2/client/requests/get_requested_tickets.rb +12 -18
  101. data/lib/zendesk2/client/requests/get_ticket.rb +9 -23
  102. data/lib/zendesk2/client/requests/get_ticket_audits.rb +12 -18
  103. data/lib/zendesk2/client/requests/get_ticket_comments.rb +10 -19
  104. data/lib/zendesk2/client/requests/get_ticket_field.rb +9 -22
  105. data/lib/zendesk2/client/requests/get_ticket_fields.rb +7 -15
  106. data/lib/zendesk2/client/requests/get_tickets.rb +7 -15
  107. data/lib/zendesk2/client/requests/get_topic.rb +8 -23
  108. data/lib/zendesk2/client/requests/get_topic_comment.rb +12 -28
  109. data/lib/zendesk2/client/requests/get_topic_comments.rb +13 -18
  110. data/lib/zendesk2/client/requests/get_topics.rb +6 -15
  111. data/lib/zendesk2/client/requests/get_user.rb +15 -28
  112. data/lib/zendesk2/client/requests/get_user_field.rb +9 -22
  113. data/lib/zendesk2/client/requests/get_user_identities.rb +11 -18
  114. data/lib/zendesk2/client/requests/get_user_identity.rb +11 -21
  115. data/lib/zendesk2/client/requests/get_user_memberships.rb +12 -18
  116. data/lib/zendesk2/client/requests/get_users.rb +7 -15
  117. data/lib/zendesk2/client/requests/mark_membership_default.rb +17 -28
  118. data/lib/zendesk2/client/requests/mark_user_identity_primary.rb +17 -30
  119. data/lib/zendesk2/client/requests/search.rb +30 -19
  120. data/lib/zendesk2/client/requests/search_help_center_articles.rb +22 -18
  121. data/lib/zendesk2/client/requests/search_organization.rb +40 -28
  122. data/lib/zendesk2/client/requests/search_user.rb +56 -44
  123. data/lib/zendesk2/client/requests/update_category.rb +14 -24
  124. data/lib/zendesk2/client/requests/update_forum.rb +13 -25
  125. data/lib/zendesk2/client/requests/update_group.rb +12 -24
  126. data/lib/zendesk2/client/requests/update_help_center_article.rb +17 -42
  127. data/lib/zendesk2/client/requests/update_help_center_category.rb +17 -42
  128. data/lib/zendesk2/client/requests/update_help_center_section.rb +17 -42
  129. data/lib/zendesk2/client/requests/update_organization.rb +23 -35
  130. data/lib/zendesk2/client/requests/update_ticket.rb +63 -63
  131. data/lib/zendesk2/client/requests/update_ticket_field.rb +12 -24
  132. data/lib/zendesk2/client/requests/update_topic.rb +11 -25
  133. data/lib/zendesk2/client/requests/update_user.rb +47 -62
  134. data/lib/zendesk2/client/requests/update_user_field.rb +11 -23
  135. data/lib/zendesk2/client/requests/update_user_identity.rb +20 -28
  136. data/lib/zendesk2/client.rb +52 -28
  137. data/lib/zendesk2/paged_collection.rb +9 -9
  138. data/lib/zendesk2/searchable.rb +1 -1
  139. data/lib/zendesk2/version.rb +1 -1
  140. data/lib/zendesk2.rb +1 -13
  141. data/spec/categories_spec.rb +132 -0
  142. data/spec/forums_spec.rb +132 -0
  143. data/spec/lib/paged_collection_spec.rb +2 -2
  144. data/spec/memberships_spec.rb +5 -9
  145. data/spec/organizations_spec.rb +176 -25
  146. data/spec/spec_helper.rb +2 -0
  147. data/spec/tickets_spec.rb +2 -2
  148. data/spec/topic_comments_spec.rb +2 -2
  149. data/spec/user_identities_spec.rb +9 -6
  150. data/spec/users_spec.rb +22 -21
  151. data/zendesk2.gemspec +1 -2
  152. metadata +7 -21
  153. data/lib/zendesk2/client/requests/update_topic_comment.rb +0 -37
data/spec/spec_helper.rb CHANGED
@@ -18,6 +18,8 @@ RSpec.configure do |config|
18
18
  else
19
19
  config.filter_run_excluding(mock_only: true)
20
20
  end
21
+ config.filter_run(:focus => true)
22
+ config.run_all_when_everything_filtered = true
21
23
 
22
24
  config.order = "random"
23
25
  end
data/spec/tickets_spec.rb CHANGED
@@ -14,7 +14,7 @@ describe "Zendesk2::Client" do
14
14
  describe "#create_ticket" do
15
15
  it "should require a description" do
16
16
  expect {
17
- client.create_ticket("subject" => mock_uuid)
17
+ client.create_ticket("ticket" => {"subject" => mock_uuid})
18
18
  }.to raise_exception(Zendesk2::Error, /Description: cannot be blank/)
19
19
  end
20
20
  end
@@ -149,7 +149,7 @@ describe "Zendesk2::Client" do
149
149
  expect(custom_field["value"]).to be_nil
150
150
 
151
151
  ticket = client.tickets.create!(subject: mock_uuid, description: mock_uuid, custom_fields: [{"id" => ticket_field.identity, "value" => "jessicaspacekat"}])
152
- custom_field = ticket.custom_fields.find { |cf| cf["id"].to_i == ticket_field.identity.to_i }
152
+ custom_field = ticket.custom_fields.find { |cf| cf["id"] == ticket_field.identity }
153
153
 
154
154
  expect(custom_field).to be
155
155
  expect(custom_field["value"]).to eq("jessicaspacekat")
@@ -8,8 +8,8 @@ describe "topic_comments" do
8
8
 
9
9
  include_examples "zendesk resource",
10
10
  {
11
- :create_params => lambda { {body: mock_uuid, topic_id: topic.identity, user_id: user.identity} },
12
- :update_params => lambda { {body: mock_uuid} },
11
+ :create_params => lambda { { body: mock_uuid, topic_id: topic.identity, user_id: user.identity } },
12
+ :update => false,
13
13
  :fetch_params => lambda { |tc| {"topic_id" => tc.topic_id, "id" => tc.identity} },
14
14
  :collection => lambda { client.topic_comments(topic_id: topic.identity) },
15
15
  }
@@ -18,13 +18,13 @@ describe "user_identities" do
18
18
 
19
19
  it "should prevent duplicate identities across users" do
20
20
  expect {
21
- client.create_user_identity("type" => "email", "value" => user.email, "user_id" => another_user.id)
21
+ client.create_user_identity("user_identity" => { "type" => "email", "value" => user.email, "user_id" => another_user.id })
22
22
  }.to raise_exception(Zendesk2::Error, /is already being used by another user/)
23
23
  end
24
24
 
25
25
  it "should prevent duplicate identities on the same user" do
26
26
  expect {
27
- client.create_user_identity("type" => "email", "value" => user.email, "user_id" => user.id)
27
+ client.create_user_identity("user_identity" => { "type" => "email", "value" => user.email, "user_id" => user.id })
28
28
  }.to raise_exception(Zendesk2::Error, /is already being used by another user/)
29
29
  end
30
30
 
@@ -33,10 +33,13 @@ describe "user_identities" do
33
33
  user.destroy
34
34
 
35
35
  expect {
36
- client.create_user_identity("type" => "email",
37
- "value" => email,
38
- "user_id" => another_user.id,
39
- )
36
+ client.create_user_identity(
37
+ "user_identity" => {
38
+ "type" => "email",
39
+ "value" => email,
40
+ "user_id" => another_user.id,
41
+ }
42
+ )
40
43
  }.to change { another_user.identities.all.count }.by(1)
41
44
  end
42
45
  end
data/spec/users_spec.rb CHANGED
@@ -18,12 +18,12 @@ describe "users" do
18
18
  it "should prevent duplicate external_ids" do
19
19
  external_id = mock_uuid
20
20
 
21
- client.create_user(email: mock_email, name: "a", external_id: nil) # fine
22
- client.create_user(email: mock_email, name: "b", external_id: nil) # also fine
23
- client.create_user(email: mock_email, name: "c", external_id: external_id) # it's cool
21
+ client.create_user("user" => {:email => mock_email, :name => "a", :external_id => nil}) # fine
22
+ client.create_user("user" => {:email => mock_email, :name => "b", :external_id => nil}) # also fine
23
+ client.create_user("user" => {:email => mock_email, :name => "c", :external_id => external_id}) # it's cool
24
24
 
25
25
  expect {
26
- client.create_user(email: mock_email, name: "d", external_id: external_id)
26
+ client.create_user("user" => {:email => mock_email, :name => "d", :external_id => external_id})
27
27
  }.to raise_exception(Zendesk2::Error, /External has already been taken/)
28
28
  end
29
29
  end
@@ -35,11 +35,11 @@ describe "users" do
35
35
 
36
36
  external_id = mock_uuid
37
37
 
38
- client.update_user(id: user.id, external_id: nil) # fine
39
- client.update_user(id: another_user.id, external_id: external_id) # also fine
38
+ client.update_user("user" => {"id" => user.id, "external_id" => nil}) # fine
39
+ client.update_user("user" => {"id" => another_user.id, "external_id" => external_id}) # also fine
40
40
 
41
41
  expect {
42
- client.update_user("id" => user.id, external_id: external_id)
42
+ client.update_user("user" => {"id" => user.id, "external_id" => external_id})
43
43
  }.to raise_exception(Zendesk2::Error, /External has already been taken/)
44
44
  end
45
45
  end
@@ -157,14 +157,12 @@ describe "users" do
157
157
  end
158
158
 
159
159
  it "should create another identity when updating email" do
160
- expect(user.identities.size).to eq(1)
161
-
162
160
  original_email = user.email
163
161
  user.email = (new_email = mock_email)
164
162
 
165
163
  expect {
166
164
  user.save!
167
- }.to change { user.identities.size }.by(1)
165
+ }.to change { user.identities.size }.from(1).to(2)
168
166
 
169
167
  new_identity = user.identities.find { |i| i.value == new_email }
170
168
 
@@ -184,22 +182,25 @@ describe "users" do
184
182
 
185
183
  it "should form 'legacy' login url" do
186
184
  return_to = "http://engineyard.com"
187
- uri = Addressable::URI.parse(user.login_url(Time.now.to_s, return_to: return_to, token: "in-case-you-dont-have-it-in ~/.zendesk2 (aka ci)"))
188
- expect(uri.query_values["return_to"]).to eq(return_to)
189
- expect(uri.query_values["name"]).to eq user.name
190
- expect(uri.query_values["email"]).to eq user.email
191
- expect(uri.query_values["hash"]).not_to be_nil
185
+ login_uri = user.login_url(Time.now.to_s, return_to: return_to, token: "in-case-you-dont-have-it-in ~/.zendesk2 (aka ci)")
186
+ query = Faraday::NestedParamsEncoder.decode(URI.parse(login_uri).query)
187
+
188
+ expect(query["return_to"]).to eq(return_to)
189
+ expect(query["name"]).to eq user.name
190
+ expect(query["email"]).to eq user.email
191
+ expect(query["hash"]).not_to be_nil
192
192
  end
193
193
 
194
194
  it "should form jwt login url" do
195
195
  return_to = "http://engineyard.com"
196
- uri = Addressable::URI.parse(user.jwt_login_url(return_to: return_to, jwt_token: "in-case-you-dont-have-it-in ~/.zendesk2 (aka ci)"))
197
- expect(uri.query_values["return_to"]).to eq(return_to)
198
- expect(uri.query_values["name"]).to be_nil
199
- expect(uri.query_values["email"]).to be_nil
200
- expect(uri.query_values["jwt"]).not_to be_nil
201
196
 
202
- #TODO: try JWT.decode
197
+ jwt_login_uri = user.jwt_login_url(return_to: return_to, jwt_token: "in-case-you-dont-have-it-in ~/.zendesk2 (aka ci)")
198
+ query = Faraday::NestedParamsEncoder.decode(URI.parse(jwt_login_uri).query)
199
+
200
+ expect(query["return_to"]).to eq(return_to)
201
+ expect(query["name"]).to be_nil
202
+ expect(query["email"]).to be_nil
203
+ expect(query["jwt"]).not_to be_nil
203
204
  end
204
205
 
205
206
  end
data/zendesk2.gemspec CHANGED
@@ -16,8 +16,7 @@ Gem::Specification.new do |gem|
16
16
  gem.require_paths = ["lib"]
17
17
  gem.version = Zendesk2::VERSION
18
18
 
19
- gem.add_dependency "addressable", "~> 2.2"
20
- gem.add_dependency "cistern", "~> 0.11"
19
+ gem.add_dependency "cistern", "~> 2.0"
21
20
  gem.add_dependency "faraday", "~> 0.9"
22
21
  gem.add_dependency "faraday_middleware", "~> 0.9"
23
22
  gem.add_dependency "jwt", "~> 1.0"
metadata CHANGED
@@ -1,43 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zendesk2
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.2
4
+ version: 1.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Lane
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-04 00:00:00.000000000 Z
11
+ date: 2015-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: addressable
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '2.2'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '2.2'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: cistern
29
15
  requirement: !ruby/object:Gem::Requirement
30
16
  requirements:
31
17
  - - "~>"
32
18
  - !ruby/object:Gem::Version
33
- version: '0.11'
19
+ version: '2.0'
34
20
  type: :runtime
35
21
  prerelease: false
36
22
  version_requirements: !ruby/object:Gem::Requirement
37
23
  requirements:
38
24
  - - "~>"
39
25
  - !ruby/object:Gem::Version
40
- version: '0.11'
26
+ version: '2.0'
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: faraday
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -98,6 +84,7 @@ files:
98
84
  - lib/zendesk2.rb
99
85
  - lib/zendesk2/attributes.rb
100
86
  - lib/zendesk2/client.rb
87
+ - lib/zendesk2/client/collection.rb
101
88
  - lib/zendesk2/client/collections/categories.rb
102
89
  - lib/zendesk2/client/collections/forums.rb
103
90
  - lib/zendesk2/client/collections/groups.rb
@@ -118,6 +105,7 @@ files:
118
105
  - lib/zendesk2/client/collections/users.rb
119
106
  - lib/zendesk2/client/help_center.rb
120
107
  - lib/zendesk2/client/mock.rb
108
+ - lib/zendesk2/client/model.rb
121
109
  - lib/zendesk2/client/models/audit_event.rb
122
110
  - lib/zendesk2/client/models/category.rb
123
111
  - lib/zendesk2/client/models/forum.rb
@@ -143,6 +131,7 @@ files:
143
131
  - lib/zendesk2/client/models/user_field.rb
144
132
  - lib/zendesk2/client/models/user_identity.rb
145
133
  - lib/zendesk2/client/real.rb
134
+ - lib/zendesk2/client/request.rb
146
135
  - lib/zendesk2/client/requests/create_category.rb
147
136
  - lib/zendesk2/client/requests/create_forum.rb
148
137
  - lib/zendesk2/client/requests/create_group.rb
@@ -234,14 +223,11 @@ files:
234
223
  - lib/zendesk2/client/requests/update_ticket.rb
235
224
  - lib/zendesk2/client/requests/update_ticket_field.rb
236
225
  - lib/zendesk2/client/requests/update_topic.rb
237
- - lib/zendesk2/client/requests/update_topic_comment.rb
238
226
  - lib/zendesk2/client/requests/update_user.rb
239
227
  - lib/zendesk2/client/requests/update_user_field.rb
240
228
  - lib/zendesk2/client/requests/update_user_identity.rb
241
- - lib/zendesk2/collection.rb
242
229
  - lib/zendesk2/error.rb
243
230
  - lib/zendesk2/logger.rb
244
- - lib/zendesk2/model.rb
245
231
  - lib/zendesk2/paged_collection.rb
246
232
  - lib/zendesk2/searchable.rb
247
233
  - lib/zendesk2/version.rb
@@ -1,37 +0,0 @@
1
- class Zendesk2::Client
2
- class Real
3
- def update_topic_comment(params={})
4
- id = params.delete("id")
5
- topic_id = params.delete("topic_id")
6
- path = "/topics/#{topic_id}/comments/#{id}.json"
7
-
8
- request(
9
- :method => :put,
10
- :path => path,
11
- :body => {
12
- "topic_comment" => params
13
- },
14
- )
15
- end
16
- end
17
- class Mock
18
- def update_topic_comment(params={})
19
- id = params.delete("id")
20
- topic_id = params.delete("topic_id")
21
- path = "/topics/#{topic_id}/comments/#{id}.json"
22
-
23
- unless (topic_comment = self.find!(:topic_comments, id)) && topic_comment["topic_id"] == topic_id
24
- error!(:not_found)
25
- else
26
- body = topic_comment.merge!(params)
27
- response(
28
- :method => :put,
29
- :path => path,
30
- :body => {
31
- "topic_comment" => body
32
- },
33
- )
34
- end
35
- end
36
- end
37
- end