zendesk2 1.9.0 → 1.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (222) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +30 -0
  3. data/.travis.yml +3 -1
  4. data/Gemfile +4 -5
  5. data/Guardfile +4 -3
  6. data/Rakefile +4 -3
  7. data/lib/zendesk2.rb +9 -6
  8. data/lib/zendesk2/attributes.rb +11 -8
  9. data/lib/zendesk2/audit_event.rb +5 -3
  10. data/lib/zendesk2/categories.rb +4 -3
  11. data/lib/zendesk2/category.rb +10 -5
  12. data/lib/zendesk2/client.rb +3 -3
  13. data/lib/zendesk2/collection.rb +35 -21
  14. data/lib/zendesk2/create_category.rb +10 -9
  15. data/lib/zendesk2/create_forum.rb +11 -10
  16. data/lib/zendesk2/create_group.rb +13 -12
  17. data/lib/zendesk2/create_membership.rb +21 -20
  18. data/lib/zendesk2/create_organization.rb +24 -18
  19. data/lib/zendesk2/create_ticket.rb +60 -56
  20. data/lib/zendesk2/create_ticket_field.rb +24 -22
  21. data/lib/zendesk2/create_topic.rb +11 -10
  22. data/lib/zendesk2/create_topic_comment.rb +12 -11
  23. data/lib/zendesk2/create_user.rb +54 -41
  24. data/lib/zendesk2/create_user_field.rb +22 -21
  25. data/lib/zendesk2/create_user_identity.rb +18 -15
  26. data/lib/zendesk2/create_view.rb +62 -62
  27. data/lib/zendesk2/destroy_category.rb +2 -1
  28. data/lib/zendesk2/destroy_forum.rb +2 -1
  29. data/lib/zendesk2/destroy_group.rb +3 -2
  30. data/lib/zendesk2/destroy_membership.rb +7 -5
  31. data/lib/zendesk2/destroy_organization.rb +3 -2
  32. data/lib/zendesk2/destroy_ticket.rb +3 -2
  33. data/lib/zendesk2/destroy_ticket_field.rb +3 -2
  34. data/lib/zendesk2/destroy_topic.rb +3 -2
  35. data/lib/zendesk2/destroy_topic_comment.rb +4 -3
  36. data/lib/zendesk2/destroy_user.rb +11 -10
  37. data/lib/zendesk2/destroy_user_field.rb +3 -2
  38. data/lib/zendesk2/destroy_user_identity.rb +4 -3
  39. data/lib/zendesk2/destroy_view.rb +3 -2
  40. data/lib/zendesk2/error.rb +1 -1
  41. data/lib/zendesk2/forum.rb +36 -18
  42. data/lib/zendesk2/forums.rb +4 -3
  43. data/lib/zendesk2/get_assignable_groups.rb +3 -2
  44. data/lib/zendesk2/get_categories.rb +2 -1
  45. data/lib/zendesk2/get_category.rb +3 -2
  46. data/lib/zendesk2/get_ccd_tickets.rb +4 -3
  47. data/lib/zendesk2/get_current_user.rb +3 -2
  48. data/lib/zendesk2/get_forum.rb +3 -2
  49. data/lib/zendesk2/get_forums.rb +2 -1
  50. data/lib/zendesk2/get_group.rb +3 -2
  51. data/lib/zendesk2/get_groups.rb +2 -1
  52. data/lib/zendesk2/get_membership.rb +3 -2
  53. data/lib/zendesk2/get_memberships.rb +3 -2
  54. data/lib/zendesk2/get_organization.rb +3 -2
  55. data/lib/zendesk2/get_organization_by_external_id.rb +8 -5
  56. data/lib/zendesk2/get_organization_memberships.rb +5 -2
  57. data/lib/zendesk2/get_organization_tickets.rb +7 -5
  58. data/lib/zendesk2/get_organization_users.rb +6 -5
  59. data/lib/zendesk2/get_organizations.rb +2 -1
  60. data/lib/zendesk2/get_requested_tickets.rb +5 -4
  61. data/lib/zendesk2/get_ticket.rb +3 -2
  62. data/lib/zendesk2/get_ticket_audit.rb +5 -4
  63. data/lib/zendesk2/get_ticket_audits.rb +4 -3
  64. data/lib/zendesk2/get_ticket_comments.rb +6 -5
  65. data/lib/zendesk2/get_ticket_field.rb +3 -2
  66. data/lib/zendesk2/get_ticket_fields.rb +2 -1
  67. data/lib/zendesk2/get_ticket_metric.rb +4 -3
  68. data/lib/zendesk2/get_ticket_metrics.rb +3 -2
  69. data/lib/zendesk2/get_tickets.rb +2 -1
  70. data/lib/zendesk2/get_topic.rb +3 -2
  71. data/lib/zendesk2/get_topic_comment.rb +4 -3
  72. data/lib/zendesk2/get_topic_comments.rb +5 -4
  73. data/lib/zendesk2/get_topics.rb +2 -1
  74. data/lib/zendesk2/get_user.rb +7 -7
  75. data/lib/zendesk2/get_user_field.rb +3 -2
  76. data/lib/zendesk2/get_user_fields.rb +3 -2
  77. data/lib/zendesk2/get_user_identities.rb +4 -3
  78. data/lib/zendesk2/get_user_identity.rb +4 -3
  79. data/lib/zendesk2/get_user_memberships.rb +4 -3
  80. data/lib/zendesk2/get_user_organizations.rb +5 -4
  81. data/lib/zendesk2/get_users.rb +3 -2
  82. data/lib/zendesk2/get_view.rb +3 -2
  83. data/lib/zendesk2/get_view_tickets.rb +19 -16
  84. data/lib/zendesk2/get_views.rb +2 -1
  85. data/lib/zendesk2/group.rb +6 -5
  86. data/lib/zendesk2/groups.rb +7 -6
  87. data/lib/zendesk2/help_center.rb +15 -0
  88. data/lib/zendesk2/help_center/access_policy.rb +3 -2
  89. data/lib/zendesk2/help_center/article.rb +10 -7
  90. data/lib/zendesk2/help_center/articles.rb +7 -7
  91. data/lib/zendesk2/help_center/categories.rb +3 -2
  92. data/lib/zendesk2/help_center/category.rb +8 -7
  93. data/lib/zendesk2/help_center/create_help_center_article.rb +31 -29
  94. data/lib/zendesk2/help_center/create_help_center_category.rb +17 -16
  95. data/lib/zendesk2/help_center/create_help_center_post.rb +37 -0
  96. data/lib/zendesk2/help_center/create_help_center_section.rb +32 -31
  97. data/lib/zendesk2/help_center/create_help_center_topic.rb +36 -0
  98. data/lib/zendesk2/help_center/create_help_center_translation.rb +15 -14
  99. data/lib/zendesk2/help_center/destroy_help_center_article.rb +3 -2
  100. data/lib/zendesk2/help_center/destroy_help_center_category.rb +3 -2
  101. data/lib/zendesk2/help_center/destroy_help_center_post.rb +15 -0
  102. data/lib/zendesk2/help_center/destroy_help_center_section.rb +3 -2
  103. data/lib/zendesk2/help_center/destroy_help_center_topic.rb +15 -0
  104. data/lib/zendesk2/help_center/destroy_help_center_translation.rb +2 -1
  105. data/lib/zendesk2/help_center/get_help_center_access_policy.rb +6 -5
  106. data/lib/zendesk2/help_center/get_help_center_article.rb +7 -9
  107. data/lib/zendesk2/help_center/get_help_center_articles.rb +3 -2
  108. data/lib/zendesk2/help_center/get_help_center_categories.rb +6 -2
  109. data/lib/zendesk2/help_center/get_help_center_categories_articles.rb +8 -7
  110. data/lib/zendesk2/help_center/get_help_center_categories_sections.rb +6 -5
  111. data/lib/zendesk2/help_center/get_help_center_category.rb +7 -9
  112. data/lib/zendesk2/help_center/get_help_center_post.rb +19 -0
  113. data/lib/zendesk2/help_center/get_help_center_posts.rb +28 -0
  114. data/lib/zendesk2/help_center/get_help_center_section.rb +8 -10
  115. data/lib/zendesk2/help_center/get_help_center_sections.rb +3 -2
  116. data/lib/zendesk2/help_center/get_help_center_sections_articles.rb +9 -8
  117. data/lib/zendesk2/help_center/get_help_center_topic.rb +14 -0
  118. data/lib/zendesk2/help_center/get_help_center_topics.rb +10 -0
  119. data/lib/zendesk2/help_center/get_help_center_translation.rb +5 -4
  120. data/lib/zendesk2/help_center/get_help_center_translations.rb +7 -6
  121. data/lib/zendesk2/help_center/post.rb +72 -0
  122. data/lib/zendesk2/help_center/posts.rb +18 -0
  123. data/lib/zendesk2/help_center/search_help_center_articles.rb +8 -7
  124. data/lib/zendesk2/help_center/section.rb +11 -11
  125. data/lib/zendesk2/help_center/sections.rb +7 -6
  126. data/lib/zendesk2/help_center/topic.rb +52 -0
  127. data/lib/zendesk2/help_center/topics.rb +13 -0
  128. data/lib/zendesk2/help_center/translation.rb +8 -5
  129. data/lib/zendesk2/help_center/translation_source.rb +16 -13
  130. data/lib/zendesk2/help_center/translations.rb +3 -2
  131. data/lib/zendesk2/help_center/update_help_center_access_policy.rb +8 -7
  132. data/lib/zendesk2/help_center/update_help_center_article.rb +9 -11
  133. data/lib/zendesk2/help_center/update_help_center_category.rb +9 -11
  134. data/lib/zendesk2/help_center/update_help_center_post.rb +20 -0
  135. data/lib/zendesk2/help_center/update_help_center_section.rb +9 -11
  136. data/lib/zendesk2/help_center/update_help_center_topic.rb +20 -0
  137. data/lib/zendesk2/help_center/update_help_center_translation.rb +4 -3
  138. data/lib/zendesk2/logger.rb +3 -2
  139. data/lib/zendesk2/mark_membership_default.rb +7 -6
  140. data/lib/zendesk2/mark_user_identity_primary.rb +7 -6
  141. data/lib/zendesk2/membership.rb +10 -8
  142. data/lib/zendesk2/memberships.rb +18 -12
  143. data/lib/zendesk2/mock.rb +39 -34
  144. data/lib/zendesk2/model.rb +14 -3
  145. data/lib/zendesk2/organization.rb +7 -7
  146. data/lib/zendesk2/organizations.rb +14 -12
  147. data/lib/zendesk2/paged_collection.rb +40 -36
  148. data/lib/zendesk2/rate_limit.rb +4 -3
  149. data/lib/zendesk2/real.rb +25 -22
  150. data/lib/zendesk2/request.rb +78 -82
  151. data/lib/zendesk2/search.rb +8 -7
  152. data/lib/zendesk2/search_organization.rb +14 -14
  153. data/lib/zendesk2/search_user.rb +41 -37
  154. data/lib/zendesk2/searchable.rb +36 -26
  155. data/lib/zendesk2/ticket.rb +20 -18
  156. data/lib/zendesk2/ticket_audit.rb +5 -4
  157. data/lib/zendesk2/ticket_audits.rb +10 -11
  158. data/lib/zendesk2/ticket_change.rb +10 -11
  159. data/lib/zendesk2/ticket_comment.rb +2 -1
  160. data/lib/zendesk2/ticket_comment_privacy_change.rb +12 -14
  161. data/lib/zendesk2/ticket_comments.rb +7 -6
  162. data/lib/zendesk2/ticket_create.rb +8 -9
  163. data/lib/zendesk2/ticket_field.rb +5 -4
  164. data/lib/zendesk2/ticket_fields.rb +4 -3
  165. data/lib/zendesk2/ticket_metric.rb +2 -2
  166. data/lib/zendesk2/ticket_metrics.rb +3 -2
  167. data/lib/zendesk2/ticket_notification.rb +12 -13
  168. data/lib/zendesk2/ticket_voice_comment.rb +28 -29
  169. data/lib/zendesk2/tickets.rb +8 -7
  170. data/lib/zendesk2/topic.rb +49 -22
  171. data/lib/zendesk2/topic_comment.rb +12 -9
  172. data/lib/zendesk2/topic_comments.rb +4 -3
  173. data/lib/zendesk2/topics.rb +4 -3
  174. data/lib/zendesk2/update_category.rb +8 -6
  175. data/lib/zendesk2/update_forum.rb +5 -4
  176. data/lib/zendesk2/update_group.rb +5 -4
  177. data/lib/zendesk2/update_organization.rb +18 -9
  178. data/lib/zendesk2/update_request.rb +6 -5
  179. data/lib/zendesk2/update_ticket.rb +39 -38
  180. data/lib/zendesk2/update_ticket_field.rb +5 -4
  181. data/lib/zendesk2/update_topic.rb +5 -4
  182. data/lib/zendesk2/update_user.rb +39 -31
  183. data/lib/zendesk2/update_user_field.rb +4 -3
  184. data/lib/zendesk2/update_user_identity.rb +7 -6
  185. data/lib/zendesk2/update_view.rb +38 -34
  186. data/lib/zendesk2/user.rb +41 -37
  187. data/lib/zendesk2/user_field.rb +9 -6
  188. data/lib/zendesk2/user_fields.rb +4 -3
  189. data/lib/zendesk2/user_identities.rb +4 -3
  190. data/lib/zendesk2/user_identity.rb +12 -9
  191. data/lib/zendesk2/users.rb +5 -4
  192. data/lib/zendesk2/version.rb +2 -1
  193. data/lib/zendesk2/view.rb +24 -13
  194. data/lib/zendesk2/views.rb +3 -2
  195. data/spec/categories_spec.rb +63 -60
  196. data/spec/client_spec.rb +6 -5
  197. data/spec/forums_spec.rb +64 -61
  198. data/spec/groups_spec.rb +7 -8
  199. data/spec/help_center/articles_spec.rb +22 -26
  200. data/spec/help_center/categories_spec.rb +26 -27
  201. data/spec/help_center/posts_spec.rb +39 -0
  202. data/spec/help_center/sections_spec.rb +32 -33
  203. data/spec/help_center/topics_spec.rb +13 -0
  204. data/spec/lib/paged_collection_spec.rb +11 -11
  205. data/spec/lib/rate_limit_spec.rb +9 -8
  206. data/spec/memberships_spec.rb +38 -27
  207. data/spec/organizations_spec.rb +92 -87
  208. data/spec/shared/zendesk_resource.rb +40 -25
  209. data/spec/spec_helper.rb +8 -13
  210. data/spec/support/client_helper.rb +5 -4
  211. data/spec/support/data_helper.rb +1 -0
  212. data/spec/ticket_fields_spec.rb +6 -7
  213. data/spec/tickets_spec.rb +69 -58
  214. data/spec/topic_comments_spec.rb +7 -8
  215. data/spec/topics_spec.rb +5 -6
  216. data/spec/user_fields_spec.rb +7 -7
  217. data/spec/user_identities_spec.rb +29 -25
  218. data/spec/users_spec.rb +88 -78
  219. data/spec/views_spec.rb +45 -34
  220. data/spec/zendesk2_spec.rb +3 -2
  221. data/zendesk2.gemspec +15 -14
  222. metadata +21 -2
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::Users
2
3
  include Zendesk2::Collection
3
4
 
@@ -7,13 +8,13 @@ class Zendesk2::Users
7
8
  model Zendesk2::User
8
9
 
9
10
  self.collection_method = :get_users
10
- self.collection_root = "users"
11
+ self.collection_root = 'users'
11
12
  self.model_method = :get_user
12
- self.model_root = "user"
13
- self.search_type = "user"
13
+ self.model_root = 'user'
14
+ self.search_type = 'user'
14
15
  self.search_request = :search_user
15
16
 
16
17
  def current
17
- new(cistern.get_current_user.body["user"])
18
+ new(cistern.get_current_user.body['user'])
18
19
  end
19
20
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module Zendesk2
2
- VERSION = "1.9.0"
3
+ VERSION = '1.10.0'
3
4
  end
data/lib/zendesk2/view.rb CHANGED
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::View
2
3
  include Zendesk2::Model
3
4
 
@@ -24,32 +25,42 @@ class Zendesk2::View
24
25
  attribute :updated_at, type: :time
25
26
 
26
27
  def save!
28
+ new_record? ? create : update
29
+ end
30
+
31
+ def create
27
32
  requires :execution, :title
28
33
 
29
- params = {
30
- "title" => self.title,
31
- "active" => self.active,
32
- "output" => Cistern::Hash.slice(self.execution, "sort_by", "sort_order", "group_by", "group_order", "columns")
33
- }.merge(Cistern::Hash.slice(self.conditions, "any", "all"))
34
+ data = cistern.create_view('view' => request_data).body
35
+ merge_attributes(data['view'])
36
+ end
34
37
 
35
- data = if new_record?
36
- cistern.create_view("view" => params)
37
- else
38
- cistern.create_view("view" => params)
39
- end.body
38
+ def update
39
+ requires :identity
40
40
 
41
- merge_attributes(data["view"])
41
+ data = cistern.update_view('view' => request_data.merge('id' => identity)).body
42
+ merge_attributes(data['view'])
42
43
  end
43
44
 
44
45
  def tickets
45
46
  requires :identity
46
47
 
47
- cistern.tickets(view_id: self.identity)
48
+ cistern.tickets(view_id: identity)
48
49
  end
49
50
 
50
51
  def destroy!
51
52
  requires :identity
52
53
 
53
- cistern.destroy_view("view" => {"id" => self.identity})
54
+ cistern.destroy_view('view' => { 'id' => identity })
55
+ end
56
+
57
+ protected
58
+
59
+ def request_data
60
+ Cistern::Hash.slice(conditions, 'any', 'all').merge(
61
+ 'title' => title,
62
+ 'active' => active,
63
+ 'output' => Cistern::Hash.slice(execution, 'sort_by', 'sort_order', 'group_by', 'group_order', 'columns')
64
+ )
54
65
  end
55
66
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::Views
2
3
  include Zendesk2::Collection
3
4
 
@@ -7,7 +8,7 @@ class Zendesk2::Views
7
8
  model Zendesk2::View
8
9
 
9
10
  self.collection_method = :get_views
10
- self.collection_root = "views"
11
+ self.collection_root = 'views'
11
12
  self.model_method = :get_view
12
- self.model_root = "view"
13
+ self.model_root = 'view'
13
14
  end
@@ -1,51 +1,51 @@
1
+ # frozen_string_literal: true
1
2
  require 'spec_helper'
2
3
 
3
- describe "categories" do
4
+ describe 'categories' do
4
5
  let(:client) { create_client }
5
6
 
6
- include_examples "zendesk#resource", {
7
- :collection => lambda { client.categories },
8
- :create_params => lambda { { name: mock_uuid } },
9
- :update_params => lambda { { name: mock_uuid } },
10
- }
7
+ include_examples 'zendesk#resource', collection: -> { client.categories },
8
+ create_params: -> { { name: mock_uuid } },
9
+ update_params: -> { { name: mock_uuid } }
11
10
 
12
- context "#create_category" do
13
- it "should correctly respond" do
14
- body = { "category" => {"name" => (name = mock_uuid)} }
11
+ context '#create_category' do
12
+ it 'should correctly respond' do
13
+ body = { 'category' => { 'name' => (name = mock_uuid) } }
15
14
 
16
15
  response = client.create_category(body)
17
16
 
18
17
  expect(response.status).to eq(201)
19
- expect(response.env[:url].path).to eq("/api/v2/categories.json")
18
+ expect(response.env[:url].path).to eq('/api/v2/categories.json')
20
19
  expect(response.env[:method]).to eq(:post)
21
20
  expect(client.last_request).to match(body)
22
- expect(response.env[:body]["category"]).to match(
21
+ expect(response.env[:body]['category']).to match(
23
22
  a_hash_including(
24
- "name" => name,
25
- ))
23
+ 'name' => name
24
+ )
25
+ )
26
26
  end
27
27
  end
28
28
 
29
- context "with a category" do
29
+ context 'with a category' do
30
30
  let!(:category) { client.categories.create!(name: mock_uuid) }
31
31
 
32
- context "#destroy_category" do
33
- it "should require a valid category" do
34
- expect {
32
+ context '#destroy_category' do
33
+ it 'should require a valid category' do
34
+ expect do
35
35
  client.destroy_category(
36
- "category" => {
37
- "id" => 999999999,
36
+ 'category' => {
37
+ 'id' => 999_999_999,
38
38
  }
39
39
  )
40
- }.to raise_error(Zendesk2::Error) { |e|
40
+ end.to raise_error(Zendesk2::Error) { |e|
41
41
  expect(e.response[:status]).to eq(404)
42
42
  }
43
43
  end
44
44
 
45
- it "should correctly respond" do
45
+ it 'should correctly respond' do
46
46
  response = client.destroy_category(
47
- "category" => {
48
- "id" => category.id,
47
+ 'category' => {
48
+ 'id' => category.id,
49
49
  }
50
50
  )
51
51
 
@@ -57,39 +57,40 @@ describe "categories" do
57
57
  end
58
58
  end
59
59
 
60
- context "#get_categories" do
61
- it "should correctly respond" do
60
+ context '#get_categories' do
61
+ it 'should correctly respond' do
62
62
  response = client.get_categories
63
63
 
64
64
  expect(response.status).to eq(200)
65
- expect(response.env[:url].path).to eq("/api/v2/categories.json")
65
+ expect(response.env[:url].path).to eq('/api/v2/categories.json')
66
66
  expect(response.env[:method]).to eq(:get)
67
67
  expect(client.last_request).to eq(nil)
68
68
  skip unless Zendesk2.mocking?
69
- expect(response.env[:body]["categories"]).to match([
70
- a_hash_including(
71
- "id" => category.id,
72
- )])
69
+ expect(response.env[:body]['categories']).to match([
70
+ a_hash_including(
71
+ 'id' => category.id
72
+ ),
73
+ ])
73
74
  end
74
75
  end
75
76
 
76
- context "#get_category" do
77
- it "should require a valid category" do
78
- expect {
77
+ context '#get_category' do
78
+ it 'should require a valid category' do
79
+ expect do
79
80
  client.get_category(
80
- "category" => {
81
- "id" => 999999999,
81
+ 'category' => {
82
+ 'id' => 999_999_999,
82
83
  }
83
84
  )
84
- }.to raise_error(Zendesk2::Error) { |e|
85
+ end.to raise_error(Zendesk2::Error) { |e|
85
86
  expect(e.response[:status]).to eq(404)
86
87
  }
87
88
  end
88
89
 
89
- it "should correctly respond" do
90
+ it 'should correctly respond' do
90
91
  response = client.get_category(
91
- "category" => {
92
- "id" => category.id,
92
+ 'category' => {
93
+ 'id' => category.id,
93
94
  }
94
95
  )
95
96
 
@@ -97,46 +98,48 @@ describe "categories" do
97
98
  expect(response.env[:url].path).to eq("/api/v2/categories/#{category.id}.json")
98
99
  expect(response.env[:method]).to eq(:get)
99
100
  expect(client.last_request).to eq(nil)
100
- expect(response.env[:body]["category"]).to match(
101
+ expect(response.env[:body]['category']).to match(
101
102
  a_hash_including(
102
- "id" => category.id,
103
- "url" => response.env[:url].to_s,
104
- ))
103
+ 'id' => category.id,
104
+ 'url' => response.env[:url].to_s
105
+ )
106
+ )
105
107
  end
106
108
  end
107
109
 
108
- context "#update_category" do
109
- it "should require a valid category" do
110
- expect {
110
+ context '#update_category' do
111
+ it 'should require a valid category' do
112
+ expect do
111
113
  client.update_category(
112
- "category" => {
113
- "id" => 999999999,
114
- "name" => mock_uuid,
114
+ 'category' => {
115
+ 'id' => 999_999_999,
116
+ 'name' => mock_uuid,
115
117
  }
116
118
  )
117
- }.to raise_error(Zendesk2::Error) { |e|
119
+ end.to raise_error(Zendesk2::Error) { |e|
118
120
  expect(e.response[:status]).to eq(404)
119
121
  }
120
122
  end
121
123
 
122
- it "should correctly respond" do
124
+ it 'should correctly respond' do
123
125
  response = client.update_category(
124
- "category" => {
125
- "id" => category.id,
126
- "name" => (name = mock_uuid),
126
+ 'category' => {
127
+ 'id' => category.id,
128
+ 'name' => (name = mock_uuid),
127
129
  }
128
130
  )
129
131
 
130
132
  expect(response.status).to eq(200)
131
133
  expect(response.env[:url].path).to eq("/api/v2/categories/#{category.id}.json")
132
134
  expect(response.env[:method]).to eq(:put)
133
- expect(client.last_request).to eq("category" => {"name" => name})
134
- expect(response.env[:body]["category"]).to match(
135
+ expect(client.last_request).to eq('category' => { 'name' => name })
136
+ expect(response.env[:body]['category']).to match(
135
137
  a_hash_including(
136
- "id" => category.id,
137
- "url" => response.env[:url].to_s,
138
- "name" => name,
139
- ))
138
+ 'id' => category.id,
139
+ 'url' => response.env[:url].to_s,
140
+ 'name' => name
141
+ )
142
+ )
140
143
  end
141
144
  end
142
145
  end
data/spec/client_spec.rb CHANGED
@@ -1,12 +1,13 @@
1
- #encoding: utf-8
1
+ # encoding: utf-8
2
+ # frozen_string_literal: true
2
3
  require 'spec_helper'
3
4
 
4
5
  describe Zendesk2 do
5
- context "when mocking", mock_only: true do
6
+ context 'when mocking', mock_only: true do
6
7
  # this used to cause user creation conflicts
7
- it "allows the client to be intialized more than once" do
8
- Zendesk2.new(username: "steve@example.org", url: "http://example.org")
9
- Zendesk2.new(username: "steve@example.org", url: "http://example.org")
8
+ it 'allows the client to be intialized more than once' do
9
+ Zendesk2.new(username: 'steve@example.org', url: 'http://example.org')
10
+ Zendesk2.new(username: 'steve@example.org', url: 'http://example.org')
10
11
  end
11
12
  end
12
13
  end
data/spec/forums_spec.rb CHANGED
@@ -1,52 +1,52 @@
1
+ # frozen_string_literal: true
1
2
  require 'spec_helper'
2
3
 
3
- describe "forums" do
4
+ describe 'forums' do
4
5
  let(:client) { create_client }
5
6
 
6
- include_examples "zendesk#resource", {
7
- :collection => lambda { client.forums },
8
- :create_params => lambda { { name: mock_uuid } },
9
- :update_params => lambda { { name: mock_uuid } },
10
- :delayed_destroy => true,
11
- }
7
+ include_examples 'zendesk#resource', collection: -> { client.forums },
8
+ create_params: -> { { name: mock_uuid } },
9
+ update_params: -> { { name: mock_uuid } },
10
+ delayed_destroy: true
12
11
 
13
- context "#create_forum" do
14
- it "should correctly respond" do
15
- body = { "forum" => {"name" => (name = mock_uuid)} }
12
+ context '#create_forum' do
13
+ it 'should correctly respond' do
14
+ body = { 'forum' => { 'name' => (name = mock_uuid) } }
16
15
 
17
16
  response = client.create_forum(body)
18
17
 
19
18
  expect(response.status).to eq(201)
20
- expect(response.env[:url].path).to eq("/api/v2/forums.json")
19
+ expect(response.env[:url].path).to eq('/api/v2/forums.json')
21
20
  expect(response.env[:method]).to eq(:post)
22
21
  expect(client.last_request).to match(body)
23
- expect(response.env[:body]["forum"]).to match(
22
+ expect(response.env[:body]['forum']).to match(
24
23
  a_hash_including(
25
- "name" => name,
26
- ))
24
+ 'name' => name
25
+ )
26
+ )
27
27
  end
28
28
  end
29
29
 
30
- context "with a forum" do
30
+ context 'with a forum' do
31
31
  let!(:forum) { client.forums.create!(name: mock_uuid) }
32
32
 
33
- context "#destroy_forum" do
34
- it "should require a valid forum" do
35
- expect {
33
+ context '#destroy_forum' do
34
+ it 'should require a valid forum' do
35
+ expect do
36
36
  client.destroy_forum(
37
- "forum" => {
38
- "id" => 999999999,
37
+ 'forum' => {
38
+ 'id' => 999_999_999,
39
39
  }
40
40
  )
41
- }.to raise_error(Zendesk2::Error) { |e|
41
+ end.to raise_error(Zendesk2::Error) { |e|
42
42
  expect(e.response[:status]).to eq(404)
43
43
  }
44
44
  end
45
45
 
46
- it "should correctly respond" do
46
+ it 'should correctly respond' do
47
47
  response = client.destroy_forum(
48
- "forum" => {
49
- "id" => forum.id,
48
+ 'forum' => {
49
+ 'id' => forum.id,
50
50
  }
51
51
  )
52
52
 
@@ -58,39 +58,40 @@ describe "forums" do
58
58
  end
59
59
  end
60
60
 
61
- context "#get_forums" do
62
- it "should correctly respond" do
61
+ context '#get_forums' do
62
+ it 'should correctly respond' do
63
63
  response = client.get_forums
64
64
 
65
65
  expect(response.status).to eq(200)
66
- expect(response.env[:url].path).to eq("/api/v2/forums.json")
66
+ expect(response.env[:url].path).to eq('/api/v2/forums.json')
67
67
  expect(response.env[:method]).to eq(:get)
68
68
  expect(client.last_request).to eq(nil)
69
69
  skip unless Zendesk2.mocking?
70
- expect(response.env[:body]["forums"]).to match([
71
- a_hash_including(
72
- "id" => forum.id,
73
- )])
70
+ expect(response.env[:body]['forums']).to match([
71
+ a_hash_including(
72
+ 'id' => forum.id
73
+ ),
74
+ ])
74
75
  end
75
76
  end
76
77
 
77
- context "#get_forum" do
78
- it "should require a valid forum" do
79
- expect {
78
+ context '#get_forum' do
79
+ it 'should require a valid forum' do
80
+ expect do
80
81
  client.get_forum(
81
- "forum" => {
82
- "id" => 999999999,
82
+ 'forum' => {
83
+ 'id' => 999_999_999,
83
84
  }
84
85
  )
85
- }.to raise_error(Zendesk2::Error) { |e|
86
+ end.to raise_error(Zendesk2::Error) { |e|
86
87
  expect(e.response[:status]).to eq(404)
87
88
  }
88
89
  end
89
90
 
90
- it "should correctly respond" do
91
+ it 'should correctly respond' do
91
92
  response = client.get_forum(
92
- "forum" => {
93
- "id" => forum.id,
93
+ 'forum' => {
94
+ 'id' => forum.id,
94
95
  }
95
96
  )
96
97
 
@@ -98,46 +99,48 @@ describe "forums" do
98
99
  expect(response.env[:url].path).to eq("/api/v2/forums/#{forum.id}.json")
99
100
  expect(response.env[:method]).to eq(:get)
100
101
  expect(client.last_request).to eq(nil)
101
- expect(response.env[:body]["forum"]).to match(
102
+ expect(response.env[:body]['forum']).to match(
102
103
  a_hash_including(
103
- "id" => forum.id,
104
- "url" => response.env[:url].to_s,
105
- ))
104
+ 'id' => forum.id,
105
+ 'url' => response.env[:url].to_s
106
+ )
107
+ )
106
108
  end
107
109
  end
108
110
 
109
- context "#update_forum" do
110
- it "should require a valid forum" do
111
- expect {
111
+ context '#update_forum' do
112
+ it 'should require a valid forum' do
113
+ expect do
112
114
  client.update_forum(
113
- "forum" => {
114
- "id" => 999999999,
115
- "name" => mock_uuid,
115
+ 'forum' => {
116
+ 'id' => 999_999_999,
117
+ 'name' => mock_uuid,
116
118
  }
117
119
  )
118
- }.to raise_error(Zendesk2::Error) { |e|
120
+ end.to raise_error(Zendesk2::Error) { |e|
119
121
  expect(e.response[:status]).to eq(404)
120
122
  }
121
123
  end
122
124
 
123
- it "should correctly respond" do
125
+ it 'should correctly respond' do
124
126
  response = client.update_forum(
125
- "forum" => {
126
- "id" => forum.id,
127
- "name" => (name = mock_uuid),
127
+ 'forum' => {
128
+ 'id' => forum.id,
129
+ 'name' => (name = mock_uuid),
128
130
  }
129
131
  )
130
132
 
131
133
  expect(response.status).to eq(200)
132
134
  expect(response.env[:url].path).to eq("/api/v2/forums/#{forum.id}.json")
133
135
  expect(response.env[:method]).to eq(:put)
134
- expect(client.last_request).to eq("forum" => {"name" => name})
135
- expect(response.env[:body]["forum"]).to match(
136
+ expect(client.last_request).to eq('forum' => { 'name' => name })
137
+ expect(response.env[:body]['forum']).to match(
136
138
  a_hash_including(
137
- "id" => forum.id,
138
- "url" => response.env[:url].to_s,
139
- "name" => name,
140
- ))
139
+ 'id' => forum.id,
140
+ 'url' => response.env[:url].to_s,
141
+ 'name' => name
142
+ )
143
+ )
141
144
  end
142
145
  end
143
146
  end