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::DestroyCategory
2
3
  include Zendesk2::Request
3
4
 
@@ -5,7 +6,7 @@ class Zendesk2::DestroyCategory
5
6
  request_path { |r| "/categories/#{r.category_id}.json" }
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
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::DestroyForum
2
3
  include Zendesk2::Request
3
4
 
@@ -5,7 +6,7 @@ class Zendesk2::DestroyForum
5
6
  request_path { |r| "/forums/#{r.forum_id}.json" }
6
7
 
7
8
  def forum_id
8
- params.fetch("forum").fetch("id")
9
+ params.fetch('forum').fetch('id')
9
10
  end
10
11
 
11
12
  def mock
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::DestroyGroup
2
3
  include Zendesk2::Request
3
4
 
@@ -5,11 +6,11 @@ class Zendesk2::DestroyGroup
5
6
  request_path { |r| "/groups/#{r.group_id}.json" }
6
7
 
7
8
  def group_id
8
- params.fetch("group").fetch("id")
9
+ params.fetch('group').fetch('id')
9
10
  end
10
11
 
11
12
  def mock
12
- find!(:groups, group_id, params).merge!("deleted" => true)
13
+ find!(:groups, group_id, params)['deleted'] = true
13
14
 
14
15
  mock_response(nil)
15
16
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::DestroyMembership
2
3
  include Zendesk2::Request
3
4
 
@@ -5,18 +6,19 @@ class Zendesk2::DestroyMembership
5
6
  request_path { |r| "/organization_memberships/#{r.membership_id}.json" }
6
7
 
7
8
  def membership_id
8
- params.fetch("membership").fetch("id").to_i
9
+ params.fetch('membership').fetch('id').to_i
9
10
  end
10
11
 
11
12
  def mock
12
13
  membership = delete!(:memberships, membership_id)
13
14
 
14
- primary_organization = self.data[:memberships].values.find { |m| m["user_id"] == membership["user_id"] && m["default"] } ||
15
- self.data[:memberships].values.find { |m| m["user_id"] == membership["user_id"] }
15
+ primary_organization = data[:memberships].values.find do |m|
16
+ m['user_id'] == membership['user_id'] && m['default']
17
+ end || data[:memberships].values.find { |m| m['user_id'] == membership['user_id'] }
16
18
 
17
19
  if primary_organization
18
- primary_organization.merge!("default" => true)
19
- self.find!(:users, membership["user_id"].to_i).merge!("organization_id" => primary_organization["organization_id"])
20
+ primary_organization['default'] = true
21
+ find!(:users, membership['user_id'].to_i)['organization_id'] = primary_organization['organization_id']
20
22
  end
21
23
 
22
24
  mock_response(nil)
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::DestroyOrganization
2
3
  include Zendesk2::Request
3
4
 
@@ -5,11 +6,11 @@ class Zendesk2::DestroyOrganization
5
6
  request_path { |r| "/organizations/#{r.organization_id}.json" }
6
7
 
7
8
  def organization_id
8
- params.fetch("organization").fetch("id")
9
+ params.fetch('organization').fetch('id')
9
10
  end
10
11
 
11
12
  def mock
12
- self.delete!(:organizations, organization_id)
13
+ delete!(:organizations, organization_id)
13
14
 
14
15
  mock_response(nil)
15
16
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::DestroyTicket
2
3
  include Zendesk2::Request
3
4
 
@@ -5,11 +6,11 @@ class Zendesk2::DestroyTicket
5
6
  request_path { |r| "/tickets/#{r.ticket_id}.json" }
6
7
 
7
8
  def ticket_id
8
- @_ticket_id ||= params.fetch("ticket").fetch("id")
9
+ @_ticket_id ||= params.fetch('ticket').fetch('id')
9
10
  end
10
11
 
11
12
  def mock
12
- self.delete!(:tickets, ticket_id)
13
+ delete!(:tickets, ticket_id)
13
14
 
14
15
  mock_response(nil)
15
16
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::DestroyTicketField
2
3
  include Zendesk2::Request
3
4
 
@@ -5,11 +6,11 @@ class Zendesk2::DestroyTicketField
5
6
  request_path { |r| "/ticket_fields/#{r.ticket_field_id}.json" }
6
7
 
7
8
  def ticket_field_id
8
- params.fetch("ticket_field").fetch("id")
9
+ params.fetch('ticket_field').fetch('id')
9
10
  end
10
11
 
11
12
  def mock
12
- self.delete!(:ticket_fields, ticket_field_id)
13
+ delete!(:ticket_fields, ticket_field_id)
13
14
 
14
15
  mock_response(nil)
15
16
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::DestroyTopic
2
3
  include Zendesk2::Request
3
4
 
@@ -5,11 +6,11 @@ class Zendesk2::DestroyTopic
5
6
  request_path { |r| "/topics/#{r.topic_id}.json" }
6
7
 
7
8
  def topic_id
8
- params.fetch("topic").fetch("id")
9
+ params.fetch('topic').fetch('id')
9
10
  end
10
11
 
11
12
  def mock
12
- self.delete!(:topics, topic_id)
13
+ delete!(:topics, topic_id)
13
14
 
14
15
  mock_response(nil)
15
16
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::DestroyTopicComment
2
3
  include Zendesk2::Request
3
4
 
@@ -5,15 +6,15 @@ class Zendesk2::DestroyTopicComment
5
6
  request_path { |r| "/topics/#{r.topic_id}/comments/#{r.topic_comment_id}.json" }
6
7
 
7
8
  def topic_id
8
- params.fetch("topic_comment").fetch("topic_id")
9
+ params.fetch('topic_comment').fetch('topic_id')
9
10
  end
10
11
 
11
12
  def topic_comment_id
12
- params.fetch("topic_comment").fetch("id")
13
+ params.fetch('topic_comment').fetch('id')
13
14
  end
14
15
 
15
16
  def mock
16
- self.delete!(:topic_comments, topic_comment_id)
17
+ delete!(:topic_comments, topic_comment_id)
17
18
 
18
19
  mock_response(nil)
19
20
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::DestroyUser
2
3
  include Zendesk2::Request
3
4
 
@@ -5,23 +6,23 @@ class Zendesk2::DestroyUser
5
6
  request_path { |r| "/users/#{r.user_id}.json" }
6
7
 
7
8
  def user_id
8
- @_user_id ||= params.fetch("user").fetch("id").to_i
9
+ @_user_id ||= params.fetch('user').fetch('id').to_i
9
10
  end
10
11
 
11
12
  def mock
12
- ticket_count = cistern.data[:tickets].values.select { |t| t["requester_id"].to_i == user_id }.size
13
+ ticket_count = cistern.data[:tickets].values.select { |t| t['requester_id'].to_i == user_id }.size
13
14
 
14
15
  if ticket_count < 1
15
- cistern.data[:identities].each { |k,v| cistern.data[:identities].delete(k) if v["user_id"] == user_id }
16
+ cistern.data[:identities].each { |k, v| cistern.data[:identities].delete(k) if v['user_id'] == user_id }
16
17
 
17
- mock_response("user" => self.delete!(:users, user_id))
18
+ mock_response('user' => delete!(:users, user_id))
18
19
  else
19
- error!(:invalid, "details" => {
20
- "base" => [{
21
- "type" => "User is requester on #{ticket_count} ticket(s) that are not closed.",
22
- "description" => "Base User is requester on #{ticket_count} ticket(s) that are not closed."
23
- }]
24
- })
20
+ error!(:invalid, 'details' => {
21
+ 'base' => [{
22
+ 'type' => "User is requester on #{ticket_count} ticket(s) that are not closed.",
23
+ 'description' => "Base User is requester on #{ticket_count} ticket(s) that are not closed.",
24
+ },],
25
+ })
25
26
  end
26
27
  end
27
28
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::DestroyUserField
2
3
  include Zendesk2::Request
3
4
 
@@ -5,10 +6,10 @@ class Zendesk2::DestroyUserField
5
6
  request_path { |r| "/user_fields/#{r.user_field_id}.json" }
6
7
 
7
8
  def user_field_id
8
- params.fetch("user_field").fetch("id")
9
+ params.fetch('user_field').fetch('id')
9
10
  end
10
11
 
11
12
  def mock
12
- mock_response("user_field" => self.delete!(:user_fields, user_field_id))
13
+ mock_response('user_field' => delete!(:user_fields, user_field_id))
13
14
  end
14
15
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::DestroyUserIdentity
2
3
  include Zendesk2::Request
3
4
 
@@ -5,14 +6,14 @@ class Zendesk2::DestroyUserIdentity
5
6
  request_method :delete
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
- mock_response("identity" => self.delete!(:identities, user_identity_id))
17
+ mock_response('identity' => delete!(:identities, user_identity_id))
17
18
  end
18
19
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::DestroyView
2
3
  include Zendesk2::Request
3
4
 
@@ -5,11 +6,11 @@ class Zendesk2::DestroyView
5
6
  request_path { |r| "/views/#{r.view_id}.json" }
6
7
 
7
8
  def view_id
8
- @_view_id ||= params.fetch("view").fetch("id")
9
+ @_view_id ||= params.fetch('view').fetch('id')
9
10
  end
10
11
 
11
12
  def mock
12
- self.delete!(:views, view_id)
13
+ delete!(:views, view_id)
13
14
 
14
15
  mock_response(nil)
15
16
  end
@@ -1,5 +1,5 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::Error < StandardError
2
-
3
3
  attr_reader :wrapped_exception, :response
4
4
  def initialize(wrapped_exception)
5
5
  @wrapped_exception = wrapped_exception
@@ -1,22 +1,40 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::Forum
2
3
  include Zendesk2::Model
3
4
 
4
5
  extend Zendesk2::Attributes
5
6
 
6
- identity :id, type: :integer # ro yes mandatory no Automatically assigned upon creation
7
- attribute :url, type: :string # ro yes mandatory no The API url of this forum
8
- attribute :name, type: :string # ro no mandatory yes The name of the forum
9
- attribute :description, type: :string # ro no mandatory no A description of the forum
10
- attribute :category_id, type: :integer # ro no mandatory no Category this forum is in
11
- attribute :organization_id, type: :integer # ro no mandatory no Organization this forum is restricted to
12
- attribute :locale_id, type: :integer # ro no mandatory no User locale id this forum is restricted to
13
- attribute :locked, type: :boolean # ro no mandatory no Whether this forum is locked such that new entries and comments cannot be made
14
- attribute :unanswered_topics, type: :integer # ro yes mandatory no Contains the number of unanswered questions if this forum's topics are questions.
15
- attribute :position, type: :integer # ro no mandatory no The position of this forum relative to other forums in the same category
16
- attribute :forum_type, type: :string # ro no mandatory no The type of the topics in this forum, valid values: "articles", "ideas" or "questions"
17
- attribute :access, type: :string # ro no mandatory no Who has access to this forum, valid values: "everybody", "logged-in users" or "agents only"
18
- attribute :created_at, type: :time # ro yes mandatory no The time the forum was created
19
- attribute :updated_at, type: :time # ro yes mandatory no The time of the last update of the forum
7
+ # @return [Fixnum] Automatically assigned upon creation
8
+ identity :id, type: :integer # ro: yes, required: no
9
+
10
+ # @return [String] The API url of this forum
11
+ attribute :url, type: :string # ro: yes, required: no
12
+ # @return [String] The name of the forum
13
+ attribute :name, type: :string # ro: no, required: yes
14
+ # @return [String] A description of the forum
15
+ attribute :description, type: :string # ro: no, required: no
16
+ # @return [Fixnum] Category this forum is in
17
+ attribute :category_id, type: :integer # ro: no, required: no
18
+ # @return [Fixnum] Organization this forum is restricted to
19
+ attribute :organization_id, type: :integer # ro: no, required: no
20
+ # @return [Fixnum] User locale id this forum is restricted to
21
+ attribute :locale_id, type: :integer # ro: no, required: no
22
+ # @return [Boolean] Whether this forum is locked such that new entries and comments cannot be made
23
+ attribute :locked, type: :boolean # ro: no, required: no
24
+ # @return [Fixnum] Contains the number of unanswered questions if this forum's topics are questions.
25
+ attribute :unanswered_topics, type: :integer # ro: yes, required: no
26
+ # @return [Fixnum] The position of this forum relative to other forums in the same category
27
+ attribute :position, type: :integer # ro: no, required: no
28
+ # @return [String] The type of the topics in this forum, valid values: "articles", "ideas" or "questions"
29
+ attribute :forum_type, type: :string # ro: no, required: no
30
+ # @return [String] Who has access to this forum, valid values: "everybody", "logged-in users" or "agents only"
31
+ attribute :access, type: :string # ro: no, required: no
32
+ # @return [Array] Restrict access to end-users and organizations with all these tags
33
+ attribute :tags, type: :array # ro: no, required: no
34
+ # @return [Time] The time the forum was created
35
+ attribute :created_at, type: :time # ro: yes, required: no
36
+ # @return [Time] The time of the last update of the forum
37
+ attribute :updated_at, type: :time # ro: yes, required: no
20
38
 
21
39
  assoc_accessor :organization
22
40
  assoc_accessor :category
@@ -24,20 +42,20 @@ class Zendesk2::Forum
24
42
  def destroy!
25
43
  requires :identity
26
44
 
27
- cistern.destroy_forum("forum" => {"id" => self.identity})
45
+ cistern.destroy_forum('forum' => { 'id' => identity })
28
46
  end
29
47
 
30
48
  def save!
31
49
  response = if new_record?
32
50
  requires :name
33
51
 
34
- cistern.create_forum("forum" => self.attributes)
52
+ cistern.create_forum('forum' => attributes)
35
53
  else
36
54
  requires :identity
37
55
 
38
- cistern.update_forum("forum" => self.attributes)
56
+ cistern.update_forum('forum' => attributes)
39
57
  end
40
58
 
41
- merge_attributes(response.body["forum"])
59
+ merge_attributes(response.body['forum'])
42
60
  end
43
61
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::Forums
2
3
  include Zendesk2::Collection
3
4
 
@@ -7,8 +8,8 @@ class Zendesk2::Forums
7
8
  model Zendesk2::Forum
8
9
 
9
10
  self.collection_method = :get_forums
10
- self.collection_root = "forums"
11
+ self.collection_root = 'forums'
11
12
  self.model_method = :get_forum
12
- self.model_root = "forum"
13
- self.search_type = "forum"
13
+ self.model_root = 'forum'
14
+ self.search_type = 'forum'
14
15
  end
@@ -1,14 +1,15 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::GetAssignableGroups
2
3
  include Zendesk2::Request
3
4
 
4
5
  request_method :get
5
- request_path { |r| "/groups/assignable.json" }
6
+ request_path { |_r| '/groups/assignable.json' }
6
7
 
7
8
  page_params!
8
9
 
9
10
  def mock
10
11
  groups = cistern.data[:groups].values.select { |group| group.select { |g| !g['deleted'] } }
11
12
 
12
- page(groups, root: "groups")
13
+ page(groups, root: 'groups')
13
14
  end
14
15
  end
@@ -1,8 +1,9 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::GetCategories
2
3
  include Zendesk2::Request
3
4
 
4
5
  request_method :get
5
- request_path { |_| "/categories.json" }
6
+ request_path { |_| '/categories.json' }
6
7
 
7
8
  page_params!
8
9
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::GetCategory
2
3
  include Zendesk2::Request
3
4
 
@@ -5,12 +6,12 @@ class Zendesk2::GetCategory
5
6
  request_path { |r| "/categories/#{r.category_id}.json" }
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
13
  mock_response(
13
- "category" => self.find!(:categories, category_id)
14
+ 'category' => find!(:categories, category_id)
14
15
  )
15
16
  end
16
17
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  class Zendesk2::GetCcdTickets
2
3
  include Zendesk2::Request
3
4
 
@@ -6,12 +7,12 @@ class Zendesk2::GetCcdTickets
6
7
  page_params!
7
8
 
8
9
  def collaborator_id
9
- params.fetch("collaborator_id").to_i
10
+ params.fetch('collaborator_id').to_i
10
11
  end
11
12
 
12
13
  def mock
13
- tickets = cistern.data[:tickets].values.select { |u| u["collaborator_ids"].include?(collaborator_id) }
14
+ tickets = cistern.data[:tickets].values.select { |u| u['collaborator_ids'].include?(collaborator_id) }
14
15
 
15
- page(tickets, root: "tickets")
16
+ page(tickets, root: 'tickets')
16
17
  end
17
18
  end