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,37 +1,38 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::CreateHelpCenterTranslation
2
3
  include Zendesk2::Request
3
4
  include Zendesk2::HelpCenter::TranslationSource::Request
4
5
 
5
6
  request_method :post
6
7
  request_path { |r| "/help_center/#{r.source_type_url}/#{r.source_id}/translations/#{r.locale}.json" }
7
- request_body { |r| { "translation" => r.translation_params } }
8
+ request_body { |r| { 'translation' => r.translation_params } }
8
9
 
9
10
  def self.accepted_attributes
10
- %w[locale title body outdated draft]
11
+ %w(locale title body outdated draft)
11
12
  end
12
13
 
13
14
  def translation_params
14
- Cistern::Hash.slice(params.fetch("translation"), *self.class.accepted_attributes)
15
+ Cistern::Hash.slice(params.fetch('translation'), *self.class.accepted_attributes)
15
16
  end
16
17
 
17
18
  def mock
18
19
  identity = cistern.serial_id
19
20
 
20
21
  record = {
21
- "id" => identity,
22
- "url" => url_for("/help_center/#{source_type_url}/#{source_id}/translation/#{locale}.json"),
23
- "html_url" => html_url_for("/hc/#{locale}/#{source_type_url}/#{source_id}"),
24
- "created_at" => Time.now.iso8601,
25
- "updated_at" => Time.now.iso8601,
26
- "title" => params.fetch("translation").fetch("title"),
27
- "body" => (params.fetch("translation")["body"] || ""),
28
- "outdated" => false,
29
- "draft" => false,
30
- "locale" => locale,
22
+ 'id' => identity,
23
+ 'url' => url_for("/help_center/#{source_type_url}/#{source_id}/translation/#{locale}.json"),
24
+ 'html_url' => html_url_for("/hc/#{locale}/#{source_type_url}/#{source_id}"),
25
+ 'created_at' => Time.now.iso8601,
26
+ 'updated_at' => Time.now.iso8601,
27
+ 'title' => params.fetch('translation').fetch('title'),
28
+ 'body' => (params.fetch('translation')['body'] || ''),
29
+ 'outdated' => false,
30
+ 'draft' => false,
31
+ 'locale' => locale,
31
32
  }.merge(translation_params)
32
33
 
33
34
  cistern.data[:help_center_translations][mock_translation_key] = record
34
35
 
35
- mock_response("translation" => record)
36
+ mock_response('translation' => record)
36
37
  end
37
38
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::DestroyHelpCenterArticle
2
3
  include Zendesk2::Request
3
4
 
@@ -5,10 +6,10 @@ class Zendesk2::DestroyHelpCenterArticle
5
6
  request_path { |r| "/help_center/articles/#{r.article_id}.json" }
6
7
 
7
8
  def article_id
8
- params.fetch("article").fetch("id")
9
+ params.fetch('article').fetch('id')
9
10
  end
10
11
 
11
12
  def mock
12
- mock_response("article" => self.find!(:help_center_articles, article_id))
13
+ mock_response('article' => find!(:help_center_articles, article_id))
13
14
  end
14
15
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::DestroyHelpCenterCategory
2
3
  include Zendesk2::Request
3
4
 
@@ -5,10 +6,10 @@ class Zendesk2::DestroyHelpCenterCategory
5
6
  request_method :delete
6
7
 
7
8
  def category_id
8
- params.fetch("category").fetch("id")
9
+ params.fetch('category').fetch('id')
9
10
  end
10
11
 
11
12
  def mock
12
- mock_response("category" => self.delete!(:help_center_categories, category_id))
13
+ mock_response('category' => delete!(:help_center_categories, category_id))
13
14
  end
14
15
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+ class Zendesk2::DestroyHelpCenterPost
3
+ include Zendesk2::Request
4
+
5
+ request_path { |r| "/community/posts/#{r.post_id}.json" }
6
+ request_method :delete
7
+
8
+ def post_id
9
+ params.fetch('post').fetch('id')
10
+ end
11
+
12
+ def mock
13
+ mock_response('post' => delete!(:help_center_posts, post_id))
14
+ end
15
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::DestroyHelpCenterSection
2
3
  include Zendesk2::Request
3
4
 
@@ -5,11 +6,11 @@ class Zendesk2::DestroyHelpCenterSection
5
6
  request_path { |r| "/help_center/sections/#{r.section_id}.json" }
6
7
 
7
8
  def section_id
8
- params.fetch("section").fetch("id")
9
+ params.fetch('section').fetch('id')
9
10
  end
10
11
 
11
12
  def mock
12
- self.delete!(:help_center_sections, section_id)
13
+ delete!(:help_center_sections, section_id)
13
14
 
14
15
  mock_response(nil)
15
16
  end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+ class Zendesk2::DestroyHelpCenterTopic
3
+ include Zendesk2::Request
4
+
5
+ request_path { |r| "/community/topics/#{r.topic_id}.json" }
6
+ request_method :delete
7
+
8
+ def topic_id
9
+ params.fetch('topic').fetch('id')
10
+ end
11
+
12
+ def mock
13
+ mock_response('topic' => delete!(:help_center_topics, topic_id))
14
+ end
15
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::DestroyHelpCenterTranslation
2
3
  include Zendesk2::Request
3
4
  include Zendesk2::HelpCenter::TranslationSource::Request
@@ -6,7 +7,7 @@ class Zendesk2::DestroyHelpCenterTranslation
6
7
  request_path { |r| "/help_center/#{r.source_type_url}/#{r.source_id}/translations/#{r.locale}.json" }
7
8
 
8
9
  def mock
9
- self.delete!(:help_center_translations, mock_translation_key)
10
+ delete!(:help_center_translations, mock_translation_key)
10
11
 
11
12
  mock_response(nil)
12
13
  end
@@ -1,16 +1,17 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::GetHelpCenterAccessPolicy
2
3
  include Zendesk2::Request
3
4
 
4
5
  request_method :get
5
- request_path { |r|
6
+ request_path do |r|
6
7
  "/help_center/sections/#{r.section_id}/access_policy.json"
7
- }
8
+ end
8
9
 
9
10
  def section_id
10
- params.fetch("section_id")
11
+ params.fetch('section_id')
11
12
  end
12
13
 
13
- def mock(params={})
14
- mock_response("access_policy" => self.find!(:help_center_access_policies, section_id))
14
+ def mock(_params = {})
15
+ mock_response('access_policy' => find!(:help_center_access_policies, section_id))
15
16
  end
16
17
  end
@@ -1,19 +1,17 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::GetHelpCenterArticle
2
3
  include Zendesk2::Request
3
4
 
4
- request_path { |r|
5
- if locale = r.params.fetch("article")["locale"]
6
- "/help_center/#{locale}/articles/#{r.article_id}.json"
7
- else
8
- "/help_center/articles/#{r.article_id}.json"
9
- end
10
- }
5
+ request_path do |r|
6
+ locale = r.params.fetch('article')['locale']
7
+ locale ? "/help_center/#{locale}/articles/#{r.article_id}.json" : "/help_center/articles/#{r.article_id}.json"
8
+ end
11
9
 
12
10
  def article_id
13
- params.fetch("article").fetch("id")
11
+ params.fetch('article').fetch('id')
14
12
  end
15
13
 
16
14
  def mock
17
- mock_response("article" => self.find!(:help_center_articles, article_id))
15
+ mock_response('article' => find!(:help_center_articles, article_id))
18
16
  end
19
17
  end
@@ -1,11 +1,12 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::GetHelpCenterArticles
2
3
  include Zendesk2::Request
3
4
 
4
- request_path { |_| "/help_center/articles.json" }
5
+ request_path { |_| '/help_center/articles.json' }
5
6
 
6
7
  page_params!
7
8
 
8
9
  def mock
9
- page(:help_center_articles, root: "articles")
10
+ page(:help_center_articles, root: 'articles')
10
11
  end
11
12
  end
@@ -1,11 +1,15 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::GetHelpCenterCategories
2
3
  include Zendesk2::Request
3
4
 
4
- request_path { |_| "/help_center/categories.json" }
5
+ request_path do |r|
6
+ locale = r.params['locale']
7
+ locale ? "/help_center/#{locale}/categories.json" : '/help_center/categories.json'
8
+ end
5
9
 
6
10
  page_params!
7
11
 
8
12
  def mock
9
- page(:help_center_categories, root: "categories")
13
+ page(:help_center_categories, root: 'categories')
10
14
  end
11
15
  end
@@ -1,23 +1,24 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::GetHelpCenterCategoriesArticles
2
3
  include Zendesk2::Request
3
4
 
4
- request_path { |r|
5
+ request_path do |r|
5
6
  "/help_center/categories/#{r.category_id}/articles.json"
6
- }
7
+ end
7
8
 
8
9
  page_params!
9
10
 
10
11
  def category_id
11
12
  Integer(
12
- params.fetch("category_id")
13
+ params.fetch('category_id')
13
14
  )
14
15
  end
15
16
 
16
17
  def mock
17
- self.find!(:help_center_categories, category_id)
18
+ find!(:help_center_categories, category_id)
18
19
 
19
- mock_response("articles" => self.data[:help_center_articles].values.select { |s|
20
- self.data[:help_center_sections].fetch(s["section_id"])["category_id"] == category_id
21
- })
20
+ mock_response('articles' => data[:help_center_articles].values.select do |s|
21
+ data[:help_center_sections].fetch(s['section_id'])['category_id'] == category_id
22
+ end)
22
23
  end
23
24
  end
@@ -1,21 +1,22 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::GetHelpCenterCategoriesSections
2
3
  include Zendesk2::Request
3
4
 
4
- request_path { |r|
5
+ request_path do |r|
5
6
  "/help_center/categories/#{r.category_id}/sections.json"
6
- }
7
+ end
7
8
 
8
9
  page_params!
9
10
 
10
11
  def category_id
11
12
  Integer(
12
- params.fetch("category_id")
13
+ params.fetch('category_id')
13
14
  )
14
15
  end
15
16
 
16
17
  def mock
17
- self.find!(:help_center_categories, category_id)
18
+ find!(:help_center_categories, category_id)
18
19
 
19
- mock_response("sections" => self.data[:help_center_sections].values.select { |s| s["category_id"] == category_id })
20
+ mock_response('sections' => data[:help_center_sections].values.select { |s| s['category_id'] == category_id })
20
21
  end
21
22
  end
@@ -1,19 +1,17 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::GetHelpCenterCategory
2
3
  include Zendesk2::Request
3
4
 
4
- request_path { |r|
5
- if locale = r.params.fetch("category")["locale"]
6
- "/help_center/#{locale}/categories/#{r.category_id}.json"
7
- else
8
- "/help_center/categories/#{r.category_id}.json"
9
- end
10
- }
5
+ request_path do |r|
6
+ locale = r.params.fetch('category')['locale']
7
+ locale ? "/help_center/#{locale}/categories/#{r.category_id}.json" : "/help_center/categories/#{r.category_id}.json"
8
+ end
11
9
 
12
10
  def category_id
13
- params.fetch("category").fetch("id")
11
+ params.fetch('category').fetch('id')
14
12
  end
15
13
 
16
14
  def mock
17
- mock_response("category" => self.find!(:help_center_categories, category_id))
15
+ mock_response('category' => find!(:help_center_categories, category_id))
18
16
  end
19
17
  end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+ class Zendesk2::GetHelpCenterPost
3
+ include Zendesk2::Request
4
+
5
+ request_method :get
6
+ request_path { |r| "/community/posts/#{r.post_id}.json" }
7
+
8
+ def post_id
9
+ post.fetch('id')
10
+ end
11
+
12
+ def post
13
+ Cistern::Hash.stringify_keys(params.fetch('post'))
14
+ end
15
+
16
+ def mock
17
+ mock_response('post' => find!(:help_center_posts, post_id))
18
+ end
19
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+ class Zendesk2::GetHelpCenterPosts
3
+ include Zendesk2::Request
4
+
5
+ request_path do |r|
6
+ if r.topic_id
7
+ "/community/topics/#{r.topic_id}.json"
8
+ elsif r.user_id
9
+ "/community/users/#{r.user_id}.json"
10
+ else
11
+ '/community/posts.json'
12
+ end
13
+ end
14
+
15
+ page_params!
16
+
17
+ def topic_id
18
+ params['topic_id']
19
+ end
20
+
21
+ def user_id
22
+ params['user_id']
23
+ end
24
+
25
+ def mock
26
+ page(:help_center_posts, root: 'posts')
27
+ end
28
+ end
@@ -1,20 +1,18 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::GetHelpCenterSection
2
3
  include Zendesk2::Request
3
4
 
4
5
  request_method :get
5
- request_path { |r|
6
- if locale = r.params.fetch("section")["locale"]
7
- "/help_center/#{locale}/sections/#{r.section_id}.json"
8
- else
9
- "/help_center/sections/#{r.section_id}.json"
10
- end
11
- }
6
+ request_path do |r|
7
+ locale = r.params.fetch('section')['locale']
8
+ locale ? "/help_center/#{locale}/sections/#{r.section_id}.json" : "/help_center/sections/#{r.section_id}.json"
9
+ end
12
10
 
13
11
  def section_id
14
- params.fetch("section").fetch("id")
12
+ params.fetch('section').fetch('id')
15
13
  end
16
14
 
17
- def mock(params={})
18
- mock_response("section" => self.find!(:help_center_sections, section_id))
15
+ def mock(_params = {})
16
+ mock_response('section' => find!(:help_center_sections, section_id))
19
17
  end
20
18
  end
@@ -1,11 +1,12 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::GetHelpCenterSections
2
3
  include Zendesk2::Request
3
4
 
4
- request_path { |_| "/help_center/sections.json" }
5
+ request_path { |_| '/help_center/sections.json' }
5
6
 
6
7
  page_params!
7
8
 
8
9
  def mock
9
- page(:help_center_sections, root: "sections")
10
+ page(:help_center_sections, root: 'sections')
10
11
  end
11
12
  end
@@ -1,25 +1,26 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::GetHelpCenterSectionsArticles
2
3
  include Zendesk2::Request
3
4
 
4
- request_path { |r|
5
- if locale = r.params["locale"]
5
+ request_path do |r|
6
+ locale = r.params['locale']
7
+
8
+ if locale
6
9
  "/help_center/#{locale}/sections/#{r.section_id}/articles.json"
7
10
  else
8
11
  "/help_center/sections/#{r.section_id}/articles.json"
9
12
  end
10
- }
13
+ end
11
14
 
12
15
  page_params!
13
16
 
14
17
  def section_id
15
- Integer(
16
- params.fetch("section_id")
17
- )
18
+ Integer(params.fetch('section_id'))
18
19
  end
19
20
 
20
21
  def mock
21
- self.find!(:help_center_sections, section_id)
22
+ find!(:help_center_sections, section_id)
22
23
 
23
- mock_response("articles" => self.data[:help_center_articles].values.select { |s| s["section_id"] == section_id })
24
+ mock_response('articles' => data[:help_center_articles].values.select { |s| s['section_id'] == section_id })
24
25
  end
25
26
  end