zendesk2 1.9.0 → 1.10.0

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 (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::HelpCenter::Translations
2
3
  include Zendesk2::Collection
3
4
 
@@ -7,9 +8,9 @@ class Zendesk2::HelpCenter::Translations
7
8
  model Zendesk2::HelpCenter::Translation
8
9
 
9
10
  self.collection_method = :get_help_center_translations
10
- self.collection_root = "translations"
11
+ self.collection_root = 'translations'
11
12
  self.model_method = :get_help_center_translation
12
- self.model_root = "translation"
13
+ self.model_root = 'translation'
13
14
 
14
15
  attribute :source_id, type: :integer
15
16
  attribute :source_type, type: :string
@@ -1,25 +1,26 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::UpdateHelpCenterAccessPolicy
2
3
  include Zendesk2::Request
3
4
 
4
5
  request_method :put
5
- request_body { |r| { "access_policy" => r.access_policy_params } }
6
- request_path { |r|
6
+ request_body { |r| { 'access_policy' => r.access_policy_params } }
7
+ request_path do |r|
7
8
  "/help_center/sections/#{r.section_id}/access_policy.json"
8
- }
9
+ end
9
10
 
10
11
  def self.accepted_attributes
11
- %w[viewable_by managable_by restricted_to_group_ids restricted_to_organization_ids required_tags]
12
+ %w(viewable_by managable_by restricted_to_group_ids restricted_to_organization_ids required_tags)
12
13
  end
13
14
 
14
15
  def access_policy_params
15
- @_section_params ||= Cistern::Hash.slice(params.fetch("access_policy"), *Zendesk2::UpdateHelpCenterAccessPolicy.accepted_attributes)
16
+ Cistern::Hash.slice(params.fetch('access_policy'), *Zendesk2::UpdateHelpCenterAccessPolicy.accepted_attributes)
16
17
  end
17
18
 
18
19
  def section_id
19
- params.fetch("section_id")
20
+ params.fetch('section_id')
20
21
  end
21
22
 
22
23
  def mock
23
- mock_response("access_policy" => self.find!(:help_center_access_policies, section_id).merge!(access_policy_params))
24
+ mock_response('access_policy' => find!(:help_center_access_policies, section_id).merge!(access_policy_params))
24
25
  end
25
26
  end
@@ -1,25 +1,23 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::UpdateHelpCenterArticle
2
3
  include Zendesk2::Request
3
4
 
4
5
  request_method :put
5
- request_body { |r| { "article" => r.article_params } }
6
- request_path { |r|
7
- if locale = r.article_params["locale"]
8
- "/help_center/#{locale}/articles/#{r.article_id}.json"
9
- else
10
- "/help_center/articles/#{r.article_id}.json"
11
- end
12
- }
6
+ request_body { |r| { 'article' => r.article_params } }
7
+ request_path do |r|
8
+ locale = r.article_params['locale']
9
+ locale ? "/help_center/#{locale}/articles/#{r.article_id}.json" : "/help_center/articles/#{r.article_id}.json"
10
+ end
13
11
 
14
12
  def article_params
15
- @_article_params ||= Cistern::Hash.slice(params.fetch("article"), *Zendesk2::CreateHelpCenterArticle.accepted_attributes)
13
+ Cistern::Hash.slice(params.fetch('article'), *Zendesk2::CreateHelpCenterArticle.accepted_attributes)
16
14
  end
17
15
 
18
16
  def article_id
19
- params.fetch("article").fetch("id")
17
+ params.fetch('article').fetch('id')
20
18
  end
21
19
 
22
20
  def mock
23
- mock_response("article" => self.find!(:help_center_articles, article_id).merge!(article_params))
21
+ mock_response('article' => find!(:help_center_articles, article_id).merge!(article_params))
24
22
  end
25
23
  end
@@ -1,25 +1,23 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::UpdateHelpCenterCategory
2
3
  include Zendesk2::Request
3
4
 
4
5
  request_method :put
5
- request_body { |r| { "category" => r.category_params } }
6
- request_path { |r|
7
- if locale = r.category_params["locale"]
8
- "/help_center/#{locale}/categories/#{r.category_id}.json"
9
- else
10
- "/help_center/categories/#{r.category_id}.json"
11
- end
12
- }
6
+ request_body { |r| { 'category' => r.category_params } }
7
+ request_path do |r|
8
+ locale = r.category_params['locale']
9
+ locale ? "/help_center/#{locale}/categories/#{r.category_id}.json" : "/help_center/categories/#{r.category_id}.json"
10
+ end
13
11
 
14
12
  def category_params
15
- @_category_params ||= Cistern::Hash.slice(params.fetch("category"), *Zendesk2::CreateHelpCenterCategory.accepted_attributes)
13
+ Cistern::Hash.slice(params.fetch('category'), *Zendesk2::CreateHelpCenterCategory.accepted_attributes)
16
14
  end
17
15
 
18
16
  def category_id
19
- params.fetch("category").fetch("id")
17
+ params.fetch('category').fetch('id')
20
18
  end
21
19
 
22
20
  def mock
23
- mock_response("category" => self.find!(:help_center_categories, self.category_id).merge!(category_params))
21
+ mock_response('category' => find!(:help_center_categories, category_id).merge!(category_params))
24
22
  end
25
23
  end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+ class Zendesk2::UpdateHelpCenterPost
3
+ include Zendesk2::Request
4
+
5
+ request_method :put
6
+ request_body { |r| { 'post' => r.post_params } }
7
+ request_path { |r| "/community/posts/#{r.post_id}.json" }
8
+
9
+ def post_params
10
+ Cistern::Hash.slice(params.fetch('post'), *Zendesk2::CreateHelpCenterPost.accepted_attributes)
11
+ end
12
+
13
+ def post_id
14
+ params.fetch('post').fetch('id')
15
+ end
16
+
17
+ def mock
18
+ mock_response('post' => find!(:help_center_categories, post_id).merge!(post_params))
19
+ end
20
+ end
@@ -1,25 +1,23 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::UpdateHelpCenterSection
2
3
  include Zendesk2::Request
3
4
 
4
5
  request_method :put
5
- request_body { |r| { "section" => r.section_params } }
6
- request_path { |r|
7
- if locale = r.section_params["locale"]
8
- "/help_center/#{locale}/sections/#{r.section_id}.json"
9
- else
10
- "/help_center/sections/#{r.section_id}.json"
11
- end
12
- }
6
+ request_body { |r| { 'section' => r.section_params } }
7
+ request_path do |r|
8
+ locale = r.section_params['locale']
9
+ locale ? "/help_center/#{locale}/sections/#{r.section_id}.json" : "/help_center/sections/#{r.section_id}.json"
10
+ end
13
11
 
14
12
  def section_params
15
- @_section_params ||= Cistern::Hash.slice(params.fetch("section"), *Zendesk2::CreateHelpCenterSection.accepted_attributes)
13
+ Cistern::Hash.slice(params.fetch('section'), *Zendesk2::CreateHelpCenterSection.accepted_attributes)
16
14
  end
17
15
 
18
16
  def section_id
19
- params.fetch("section").fetch("id")
17
+ params.fetch('section').fetch('id')
20
18
  end
21
19
 
22
20
  def mock
23
- mock_response("section" => self.find!(:help_center_sections, section_id).merge!(section_params))
21
+ mock_response('section' => find!(:help_center_sections, section_id).merge!(section_params))
24
22
  end
25
23
  end
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+ class Zendesk2::UpdateHelpCenterTopic
3
+ include Zendesk2::Request
4
+
5
+ request_method :put
6
+ request_body { |r| { 'topic' => r.topic_params } }
7
+ request_path { |r| "/community/topics/#{r.topic_id}.json" }
8
+
9
+ def topic_params
10
+ Cistern::Hash.slice(params.fetch('topic'), *Zendesk2::CreateHelpCenterTopic.accepted_attributes)
11
+ end
12
+
13
+ def topic_id
14
+ params.fetch('topic').fetch('id')
15
+ end
16
+
17
+ def mock
18
+ mock_response('topic' => find!(:help_center_categories, topic_id).merge!(topic_params))
19
+ end
20
+ end
@@ -1,16 +1,17 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::UpdateHelpCenterTranslation
2
3
  include Zendesk2::Request
3
4
  include Zendesk2::HelpCenter::TranslationSource::Request
4
5
 
5
6
  request_method :put
6
- request_body { |r| { "translation" => r.translation_params } }
7
+ request_body { |r| { 'translation' => r.translation_params } }
7
8
  request_path { |r| "/help_center/#{r.source_type_url}/#{r.source_id}/translations/#{r.locale}.json" }
8
9
 
9
10
  def translation_params
10
- @_translation_params ||= Cistern::Hash.slice(params.fetch("translation"), *Zendesk2::CreateHelpCenterTranslation.accepted_attributes)
11
+ Cistern::Hash.slice(params.fetch('translation'), *Zendesk2::CreateHelpCenterTranslation.accepted_attributes)
11
12
  end
12
13
 
13
14
  def mock
14
- mock_response("translation" => self.find!(:help_center_translations, mock_translation_key).merge!(translation_params))
15
+ mock_response('translation' => find!(:help_center_translations, mock_translation_key).merge!(translation_params))
15
16
  end
16
17
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::Logger < Faraday::Response::Middleware
2
3
  extend Forwardable
3
4
 
@@ -9,14 +10,14 @@ class Zendesk2::Logger < Faraday::Response::Middleware
9
10
  def_delegators :@logger, :debug, :info, :warn, :error, :fatal
10
11
 
11
12
  def call(env)
12
- info("#{env[:method]} => #{env[:url].to_s}")
13
+ info("#{env[:method]} => #{env[:url]}")
13
14
  debug('request') { dump_headers env[:request_headers] }
14
15
  debug('request.body') { env[:body] }
15
16
  super
16
17
  end
17
18
 
18
19
  def on_complete(env)
19
- info("#{env[:status]} <= #{env[:url].to_s}")
20
+ info("#{env[:status]} <= #{env[:url]}")
20
21
  debug('response') { dump_headers env[:response_headers] }
21
22
  debug('response.body') { env[:body] }
22
23
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::MarkMembershipDefault
2
3
  include Zendesk2::Request
3
4
 
@@ -5,19 +6,19 @@ class Zendesk2::MarkMembershipDefault
5
6
  request_path { |r| "/users/#{r.user_id}/organization_memberships/#{r.identity}/make_default.json" }
6
7
 
7
8
  def identity
8
- params.fetch("membership").fetch("id")
9
+ params.fetch('membership').fetch('id')
9
10
  end
10
11
 
11
12
  def user_id
12
- params.fetch("membership").fetch("user_id").to_i
13
+ params.fetch('membership').fetch('user_id').to_i
13
14
  end
14
15
 
15
16
  def mock
16
- if (membership = self.find!(:memberships, identity)) && (membership["user_id"] == user_id)
17
+ if (membership = find!(:memberships, identity)) && (membership['user_id'] == user_id)
17
18
  # only one user can be default
18
- other_user_memberships = self.data[:memberships].values.select { |m| m["user_id"]== user_id }
19
- other_user_memberships.each { |i| i["default"] = false }
20
- membership["default"] = true
19
+ other_user_memberships = data[:memberships].values.select { |m| m['user_id'] == user_id }
20
+ other_user_memberships.each { |i| i['default'] = false }
21
+ membership['default'] = true
21
22
 
22
23
  mock_response(params)
23
24
  else
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::MarkUserIdentityPrimary
2
3
  include Zendesk2::Request
3
4
 
@@ -5,21 +6,21 @@ class Zendesk2::MarkUserIdentityPrimary
5
6
  request_method :put
6
7
 
7
8
  def user_id
8
- params.fetch("user_identity").fetch("user_id")
9
+ params.fetch('user_identity').fetch('user_id')
9
10
  end
10
11
 
11
12
  def user_identity_id
12
- params.fetch("user_identity").fetch("id")
13
+ params.fetch('user_identity').fetch('id')
13
14
  end
14
15
 
15
16
  def mock
16
- user_identity = self.find!(:identities, user_identity_id)
17
+ user_identity = find!(:identities, user_identity_id)
17
18
 
18
19
  # only one user can be primary
19
- other_user_identities = cistern.data[:identities].values.select { |i| i["user_id"] == user_id }
20
- other_user_identities.map { |i| i["primary"] = false }
20
+ other_user_identities = cistern.data[:identities].values.select { |i| i['user_id'] == user_id }
21
+ other_user_identities.map { |i| i['primary'] = false }
21
22
 
22
- user_identity.merge!("primary" => true)
23
+ user_identity['primary'] = true
23
24
 
24
25
  mock_response(nil)
25
26
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::Membership
2
3
  include Zendesk2::Model
3
4
 
@@ -26,11 +27,11 @@ class Zendesk2::Membership
26
27
  data = if new_record?
27
28
  requires :organization_id, :user_id
28
29
 
29
- cistern.create_membership("membership" => self.attributes).body["organization_membership"]
30
+ cistern.create_membership('membership' => attributes).body['organization_membership']
30
31
  else
31
32
  requires :identity
32
33
 
33
- raise ArgumentError, "update not implemented"
34
+ raise ArgumentError, 'update not implemented'
34
35
  end
35
36
 
36
37
  merge_attributes(data)
@@ -39,17 +40,18 @@ class Zendesk2::Membership
39
40
  def destroy!
40
41
  requires :identity
41
42
 
42
- cistern.destroy_membership("membership" => { "id" => self.identity })
43
+ cistern.destroy_membership('membership' => { 'id' => identity })
43
44
  end
44
45
 
45
46
  def default!
46
47
  requires :identity, :user_id
47
48
 
48
- self.cistern.mark_membership_default(
49
- "membership" => {
50
- "user_id" => self.user_id,
51
- "id" => self.identity
52
- })
49
+ cistern.mark_membership_default(
50
+ 'membership' => {
51
+ 'user_id' => user_id,
52
+ 'id' => identity,
53
+ }
54
+ )
53
55
 
54
56
  self.default = true
55
57
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::Memberships
2
3
  include Zendesk2::Collection
3
4
 
@@ -12,27 +13,32 @@ class Zendesk2::Memberships
12
13
  assoc_accessor :organization
13
14
  assoc_accessor :user
14
15
 
15
- self.collection_root = "organization_memberships"
16
+ self.collection_root = 'organization_memberships'
16
17
  self.model_method = :get_membership
17
- self.model_root = "organization_membership"
18
+ self.model_root = 'organization_membership'
18
19
 
19
- def all(params={})
20
+ def all(params = {})
20
21
  requires_one :user_id, :organization_id
21
22
 
22
- body = if self.user_id && self.organization_id
23
+ body = if user_id && organization_id
23
24
  {
24
- "organization_memberships" => [
25
- cistern.get_membership("user_id" => self.user_id, "organization_id" => self.organization_id).body["organization_membership"]
26
- ]
25
+ 'organization_memberships' => [
26
+ cistern.get_membership(
27
+ 'user_id' => user_id,
28
+ 'organization_id' => organization_id,
29
+ ).body['organization_membership'],
30
+ ],
27
31
  }
28
- elsif self.user_id
29
- cistern.get_user_memberships({"membership" => { "user_id" => self.user_id }}.merge(params)).body
32
+ elsif user_id
33
+ request_params = { 'membership' => { 'user_id' => user_id } }.merge(params)
34
+ cistern.get_user_memberships(request_params).body
30
35
  else
31
- cistern.get_organization_memberships({"membership" => { "organization_id" => self.organization_id }}.merge(params)).body
36
+ request_params = { 'membership' => { 'organization_id' => organization_id } }.merge(params)
37
+ cistern.get_organization_memberships(request_params).body
32
38
  end
33
39
 
34
- self.load(body[collection_root])
35
- self.merge_attributes(Cistern::Hash.slice(body, "count", "next_page", "previous_page"))
40
+ load(body[collection_root])
41
+ merge_attributes(Cistern::Hash.slice(body, 'count', 'next_page', 'previous_page'))
36
42
  self
37
43
  end
38
44
 
data/lib/zendesk2/mock.rb CHANGED
@@ -1,32 +1,36 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::Mock
2
3
  attr_reader :username, :url, :token, :jwt_token
3
4
  attr_accessor :last_request
4
5
 
5
6
  def self.data
6
- @data ||= Hash.new { |h,k| h[k] = {
7
- :categories => {},
8
- :forums => {},
9
- :groups => {},
10
- :help_center_access_policies => {},
11
- :help_center_articles => {},
12
- :help_center_categories => {},
13
- :help_center_sections => {},
14
- :help_center_translations => {},
15
- :identities => {},
16
- :memberships => {},
17
- :organizations => {},
18
- :ticket_audits => {},
19
- :ticket_comments => {},
20
- :ticket_fields => {},
21
- :ticket_metrics => {},
22
- :tickets => {},
23
- :topic_comments => {},
24
- :topics => {},
25
- :user_fields => {},
26
- :users => {},
27
- :views => {},
28
- }
29
- }
7
+ @data ||= Hash.new do |h, k|
8
+ h[k] = {
9
+ categories: {},
10
+ forums: {},
11
+ groups: {},
12
+ help_center_access_policies: {},
13
+ help_center_articles: {},
14
+ help_center_categories: {},
15
+ help_center_posts: {},
16
+ help_center_sections: {},
17
+ help_center_topics: {},
18
+ help_center_translations: {},
19
+ identities: {},
20
+ memberships: {},
21
+ organizations: {},
22
+ ticket_audits: {},
23
+ ticket_comments: {},
24
+ ticket_fields: {},
25
+ ticket_metrics: {},
26
+ tickets: {},
27
+ topic_comments: {},
28
+ topics: {},
29
+ user_fields: {},
30
+ users: {},
31
+ views: {},
32
+ }
33
+ end
30
34
  end
31
35
 
32
36
  def self.serial_id
@@ -51,27 +55,28 @@ class Zendesk2::Mock
51
55
  self.class.serial_id
52
56
  end
53
57
 
54
- def initialize(options={})
58
+ def initialize(options = {})
55
59
  @url = options[:url]
56
60
  @path = URI.parse(url).path
57
- @username, @password = options[:username], options[:password]
61
+ @username = options[:username]
62
+ @password = options[:password]
58
63
  @token = options[:token]
59
64
  @jwt_token = options[:jwt_token]
60
65
 
61
- @current_user ||= self.data[:users].values.find { |u|
62
- @username == u["name"]
63
- } || self.create_user(
64
- "user" => {"email" => @username, "name" => @username}
65
- ).body["user"]
66
+ @current_user ||= data[:users].values.find do |u|
67
+ @username == u['name']
68
+ end || create_user(
69
+ 'user' => { 'email' => @username, 'name' => @username }
70
+ ).body['user']
66
71
 
67
- @current_user_identity ||= self.data[:identities].values.first
72
+ @current_user_identity ||= data[:identities].values.first
68
73
  end
69
74
 
70
75
  # Lazily re-seeds data after reset
71
76
  # @return [Hash] current user response
72
77
  def current_user
73
- self.data[:users][@current_user["id"]] ||= @current_user
74
- self.data[:identities][@current_user_identity["id"]] ||= @current_user_identity
78
+ data[:users][@current_user['id']] ||= @current_user
79
+ data[:identities][@current_user_identity['id']] ||= @current_user_identity
75
80
 
76
81
  @current_user
77
82
  end