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::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