zendesk2 1.4.2 → 1.5.3

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 (153) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +7 -1
  3. data/lib/zendesk2/attributes.rb +1 -1
  4. data/lib/zendesk2/{collection.rb → client/collection.rb} +22 -17
  5. data/lib/zendesk2/client/collections/categories.rb +2 -1
  6. data/lib/zendesk2/client/collections/forums.rb +2 -1
  7. data/lib/zendesk2/client/collections/groups.rb +4 -3
  8. data/lib/zendesk2/client/collections/help_center/articles.rb +2 -1
  9. data/lib/zendesk2/client/collections/help_center/categories.rb +2 -1
  10. data/lib/zendesk2/client/collections/help_center/sections.rb +2 -1
  11. data/lib/zendesk2/client/collections/memberships.rb +9 -7
  12. data/lib/zendesk2/client/collections/organizations.rb +3 -2
  13. data/lib/zendesk2/client/collections/ticket_audits.rb +5 -4
  14. data/lib/zendesk2/client/collections/ticket_comments.rb +4 -3
  15. data/lib/zendesk2/client/collections/ticket_fields.rb +3 -1
  16. data/lib/zendesk2/client/collections/tickets.rb +2 -1
  17. data/lib/zendesk2/client/collections/topic_comments.rb +2 -1
  18. data/lib/zendesk2/client/collections/topics.rb +2 -1
  19. data/lib/zendesk2/client/collections/user_fields.rb +3 -1
  20. data/lib/zendesk2/client/collections/user_identities.rb +3 -1
  21. data/lib/zendesk2/client/collections/users.rb +3 -2
  22. data/lib/zendesk2/client/help_center.rb +3 -0
  23. data/lib/zendesk2/client/mock.rb +7 -130
  24. data/lib/zendesk2/{model.rb → client/model.rb} +7 -3
  25. data/lib/zendesk2/client/models/audit_event.rb +2 -2
  26. data/lib/zendesk2/client/models/category.rb +8 -8
  27. data/lib/zendesk2/client/models/forum.rb +11 -16
  28. data/lib/zendesk2/client/models/group.rb +8 -13
  29. data/lib/zendesk2/client/models/help_center/article.rb +12 -16
  30. data/lib/zendesk2/client/models/help_center/category.rb +12 -16
  31. data/lib/zendesk2/client/models/help_center/section.rb +12 -16
  32. data/lib/zendesk2/client/models/membership.rb +10 -12
  33. data/lib/zendesk2/client/models/organization.rb +13 -20
  34. data/lib/zendesk2/client/models/ticket.rb +21 -19
  35. data/lib/zendesk2/client/models/ticket_audit.rb +3 -3
  36. data/lib/zendesk2/client/models/ticket_comment.rb +1 -1
  37. data/lib/zendesk2/client/models/ticket_comment_privacy_change.rb +1 -1
  38. data/lib/zendesk2/client/models/ticket_field.rb +5 -13
  39. data/lib/zendesk2/client/models/ticket_metric.rb +1 -1
  40. data/lib/zendesk2/client/models/ticket_voice_comment.rb +1 -1
  41. data/lib/zendesk2/client/models/topic.rb +9 -14
  42. data/lib/zendesk2/client/models/topic_comment.rb +14 -19
  43. data/lib/zendesk2/client/models/user.rb +25 -32
  44. data/lib/zendesk2/client/models/user_field.rb +10 -18
  45. data/lib/zendesk2/client/models/user_identity.rb +9 -18
  46. data/lib/zendesk2/client/real.rb +7 -8
  47. data/lib/zendesk2/client/request.rb +271 -0
  48. data/lib/zendesk2/client/requests/create_category.rb +19 -27
  49. data/lib/zendesk2/client/requests/create_forum.rb +23 -28
  50. data/lib/zendesk2/client/requests/create_group.rb +25 -29
  51. data/lib/zendesk2/client/requests/create_help_center_article.rb +54 -60
  52. data/lib/zendesk2/client/requests/create_help_center_category.rb +35 -47
  53. data/lib/zendesk2/client/requests/create_help_center_section.rb +49 -55
  54. data/lib/zendesk2/client/requests/create_membership.rb +42 -42
  55. data/lib/zendesk2/client/requests/create_organization.rb +30 -40
  56. data/lib/zendesk2/client/requests/create_ticket.rb +76 -85
  57. data/lib/zendesk2/client/requests/create_ticket_field.rb +36 -40
  58. data/lib/zendesk2/client/requests/create_topic.rb +23 -28
  59. data/lib/zendesk2/client/requests/create_topic_comment.rb +27 -31
  60. data/lib/zendesk2/client/requests/create_user.rb +51 -56
  61. data/lib/zendesk2/client/requests/create_user_field.rb +36 -40
  62. data/lib/zendesk2/client/requests/create_user_identity.rb +39 -44
  63. data/lib/zendesk2/client/requests/destroy_category.rb +8 -21
  64. data/lib/zendesk2/client/requests/destroy_forum.rb +8 -23
  65. data/lib/zendesk2/client/requests/destroy_group.rb +8 -21
  66. data/lib/zendesk2/client/requests/destroy_help_center_article.rb +8 -18
  67. data/lib/zendesk2/client/requests/destroy_help_center_category.rb +8 -18
  68. data/lib/zendesk2/client/requests/destroy_help_center_section.rb +10 -18
  69. data/lib/zendesk2/client/requests/destroy_membership.rb +8 -22
  70. data/lib/zendesk2/client/requests/destroy_organization.rb +8 -21
  71. data/lib/zendesk2/client/requests/destroy_ticket.rb +8 -21
  72. data/lib/zendesk2/client/requests/destroy_ticket_field.rb +8 -21
  73. data/lib/zendesk2/client/requests/destroy_topic.rb +8 -23
  74. data/lib/zendesk2/client/requests/destroy_topic_comment.rb +11 -24
  75. data/lib/zendesk2/client/requests/destroy_user.rb +17 -43
  76. data/lib/zendesk2/client/requests/destroy_user_field.rb +7 -22
  77. data/lib/zendesk2/client/requests/destroy_user_identity.rb +10 -25
  78. data/lib/zendesk2/client/requests/get_assignable_groups.rb +8 -16
  79. data/lib/zendesk2/client/requests/get_categories.rb +7 -15
  80. data/lib/zendesk2/client/requests/get_category.rb +11 -22
  81. data/lib/zendesk2/client/requests/get_ccd_tickets.rb +11 -18
  82. data/lib/zendesk2/client/requests/get_current_user.rb +6 -16
  83. data/lib/zendesk2/client/requests/get_forum.rb +11 -23
  84. data/lib/zendesk2/client/requests/get_forums.rb +7 -15
  85. data/lib/zendesk2/client/requests/get_group.rb +9 -23
  86. data/lib/zendesk2/client/requests/get_groups.rb +7 -15
  87. data/lib/zendesk2/client/requests/get_help_center_article.rb +13 -37
  88. data/lib/zendesk2/client/requests/get_help_center_articles.rb +6 -15
  89. data/lib/zendesk2/client/requests/get_help_center_categories.rb +6 -15
  90. data/lib/zendesk2/client/requests/get_help_center_category.rb +13 -37
  91. data/lib/zendesk2/client/requests/get_help_center_section.rb +14 -37
  92. data/lib/zendesk2/client/requests/get_help_center_sections.rb +6 -15
  93. data/lib/zendesk2/client/requests/get_membership.rb +9 -24
  94. data/lib/zendesk2/client/requests/get_organization.rb +9 -22
  95. data/lib/zendesk2/client/requests/get_organization_by_external_id.rb +11 -20
  96. data/lib/zendesk2/client/requests/get_organization_memberships.rb +10 -16
  97. data/lib/zendesk2/client/requests/get_organization_tickets.rb +14 -21
  98. data/lib/zendesk2/client/requests/get_organization_users.rb +12 -20
  99. data/lib/zendesk2/client/requests/get_organizations.rb +7 -16
  100. data/lib/zendesk2/client/requests/get_requested_tickets.rb +12 -18
  101. data/lib/zendesk2/client/requests/get_ticket.rb +9 -23
  102. data/lib/zendesk2/client/requests/get_ticket_audits.rb +12 -18
  103. data/lib/zendesk2/client/requests/get_ticket_comments.rb +10 -19
  104. data/lib/zendesk2/client/requests/get_ticket_field.rb +9 -22
  105. data/lib/zendesk2/client/requests/get_ticket_fields.rb +7 -15
  106. data/lib/zendesk2/client/requests/get_tickets.rb +7 -15
  107. data/lib/zendesk2/client/requests/get_topic.rb +8 -23
  108. data/lib/zendesk2/client/requests/get_topic_comment.rb +12 -28
  109. data/lib/zendesk2/client/requests/get_topic_comments.rb +13 -18
  110. data/lib/zendesk2/client/requests/get_topics.rb +6 -15
  111. data/lib/zendesk2/client/requests/get_user.rb +15 -28
  112. data/lib/zendesk2/client/requests/get_user_field.rb +9 -22
  113. data/lib/zendesk2/client/requests/get_user_identities.rb +11 -18
  114. data/lib/zendesk2/client/requests/get_user_identity.rb +11 -21
  115. data/lib/zendesk2/client/requests/get_user_memberships.rb +12 -18
  116. data/lib/zendesk2/client/requests/get_users.rb +7 -15
  117. data/lib/zendesk2/client/requests/mark_membership_default.rb +17 -28
  118. data/lib/zendesk2/client/requests/mark_user_identity_primary.rb +17 -30
  119. data/lib/zendesk2/client/requests/search.rb +30 -19
  120. data/lib/zendesk2/client/requests/search_help_center_articles.rb +22 -18
  121. data/lib/zendesk2/client/requests/search_organization.rb +40 -28
  122. data/lib/zendesk2/client/requests/search_user.rb +56 -44
  123. data/lib/zendesk2/client/requests/update_category.rb +14 -24
  124. data/lib/zendesk2/client/requests/update_forum.rb +13 -25
  125. data/lib/zendesk2/client/requests/update_group.rb +12 -24
  126. data/lib/zendesk2/client/requests/update_help_center_article.rb +17 -42
  127. data/lib/zendesk2/client/requests/update_help_center_category.rb +17 -42
  128. data/lib/zendesk2/client/requests/update_help_center_section.rb +17 -42
  129. data/lib/zendesk2/client/requests/update_organization.rb +23 -35
  130. data/lib/zendesk2/client/requests/update_ticket.rb +63 -63
  131. data/lib/zendesk2/client/requests/update_ticket_field.rb +12 -24
  132. data/lib/zendesk2/client/requests/update_topic.rb +11 -25
  133. data/lib/zendesk2/client/requests/update_user.rb +47 -62
  134. data/lib/zendesk2/client/requests/update_user_field.rb +11 -23
  135. data/lib/zendesk2/client/requests/update_user_identity.rb +20 -28
  136. data/lib/zendesk2/client.rb +52 -28
  137. data/lib/zendesk2/paged_collection.rb +9 -9
  138. data/lib/zendesk2/searchable.rb +1 -1
  139. data/lib/zendesk2/version.rb +1 -1
  140. data/lib/zendesk2.rb +1 -13
  141. data/spec/categories_spec.rb +132 -0
  142. data/spec/forums_spec.rb +132 -0
  143. data/spec/lib/paged_collection_spec.rb +2 -2
  144. data/spec/memberships_spec.rb +5 -9
  145. data/spec/organizations_spec.rb +176 -25
  146. data/spec/spec_helper.rb +2 -0
  147. data/spec/tickets_spec.rb +2 -2
  148. data/spec/topic_comments_spec.rb +2 -2
  149. data/spec/user_identities_spec.rb +9 -6
  150. data/spec/users_spec.rb +22 -21
  151. data/zendesk2.gemspec +1 -2
  152. metadata +7 -21
  153. data/lib/zendesk2/client/requests/update_topic_comment.rb +0 -37
@@ -1,27 +1,14 @@
1
- class Zendesk2::Client
2
- class Real
3
- def destroy_category(params={})
4
- id = params["id"]
1
+ class Zendesk2::Client::DestroyCategory < Zendesk2::Client::Request
2
+ request_method :delete
3
+ request_path { |r| "/categories/#{r.category_id}.json" }
5
4
 
6
- request(
7
- :method => :delete,
8
- :path => "/categories/#{id}.json"
9
- )
10
- end
5
+ def category_id
6
+ params.fetch("category").fetch("id")
11
7
  end
12
8
 
13
- class Mock
14
- def destroy_category(params={})
15
- id = params["id"]
16
- body = self.delete!(:categories, id)
9
+ def mock
10
+ delete!(:categories, category_id)
17
11
 
18
- response(
19
- :method => :delete,
20
- :path => "/categories/#{id}.json",
21
- :body => {
22
- "category" => body,
23
- },
24
- )
25
- end
12
+ mock_response(nil)
26
13
  end
27
14
  end
@@ -1,29 +1,14 @@
1
- class Zendesk2::Client
2
- class Real
3
- def destroy_forum(params={})
4
- id = params["id"]
1
+ class Zendesk2::Client::DestroyForum < Zendesk2::Client::Request
2
+ request_method :delete
3
+ request_path { |r| "/forums/#{r.forum_id}.json" }
5
4
 
6
- request(
7
- :method => :delete,
8
- :path => "/forums/#{id}.json"
9
- )
10
- end
5
+ def forum_id
6
+ params.fetch("forum").fetch("id")
11
7
  end
12
8
 
13
- class Mock
14
- def destroy_forum(params={})
15
- id = params["id"]
16
- path = "/forums/#{id}.json"
9
+ def mock
10
+ delete!(:forums, forum_id)
17
11
 
18
- body = self.delete!(:forums, id)
19
-
20
- response(
21
- :method => :delete,
22
- :path => path,
23
- :body => {
24
- "forum" => body,
25
- },
26
- )
27
- end
12
+ mock_response(nil)
28
13
  end
29
14
  end
@@ -1,27 +1,14 @@
1
- class Zendesk2::Client
2
- class Real
3
- def destroy_group(params={})
4
- id = params["id"]
1
+ class Zendesk2::Client::DestroyGroup < Zendesk2::Client::Request
2
+ request_method :delete
3
+ request_path { |r| "/groups/#{r.group_id}.json" }
5
4
 
6
- request(
7
- :method => :delete,
8
- :path => "/groups/#{id}.json"
9
- )
10
- end
5
+ def group_id
6
+ params.fetch("group").fetch("id")
11
7
  end
12
8
 
13
- class Mock
14
- def destroy_group(params={})
15
- id = params["id"]
16
- body = self.find!(:groups, id).merge!("deleted" => true)
9
+ def mock
10
+ find!(:groups, group_id, params).merge!("deleted" => true)
17
11
 
18
- response(
19
- :method => :delete,
20
- :path => "/groups/#{id}.json",
21
- :body => {
22
- "group" => body,
23
- },
24
- )
25
- end
12
+ mock_response(nil)
26
13
  end
27
14
  end
@@ -1,22 +1,12 @@
1
- class Zendesk2::Client
2
- class Real
3
- def destroy_help_center_article(id)
4
- request(
5
- :method => :delete,
6
- :path => "/help_center/articles/#{id}.json"
7
- )
8
- end
1
+ class Zendesk2::Client::DestroyHelpCenterArticle < Zendesk2::Client::Request
2
+ request_method :delete
3
+ request_path { |r| "/help_center/articles/#{r.article_id}.json" }
4
+
5
+ def article_id
6
+ params.fetch("article").fetch("id")
9
7
  end
10
8
 
11
- class Mock
12
- def destroy_help_center_article(id)
13
- response(
14
- :method => :delete,
15
- :path => "/help_center/articles/#{id}.json",
16
- :body => {
17
- "article" => self.find!(:help_center_articles, id),
18
- },
19
- )
20
- end
9
+ def mock
10
+ mock_response("article" => self.find!(:help_center_articles, article_id))
21
11
  end
22
12
  end
@@ -1,22 +1,12 @@
1
- class Zendesk2::Client
2
- class Real
3
- def destroy_help_center_category(id)
4
- request(
5
- :method => :delete,
6
- :path => "/help_center/categories/#{id}.json"
7
- )
8
- end
1
+ class Zendesk2::Client::DestroyHelpCenterCategory < Zendesk2::Client::Request
2
+ request_path { |r| "/help_center/categories/#{r.category_id}.json" }
3
+ request_method :delete
4
+
5
+ def category_id
6
+ params.fetch("category").fetch("id")
9
7
  end
10
8
 
11
- class Mock
12
- def destroy_help_center_category(id)
13
- response(
14
- :method => :delete,
15
- :path => "/help_center/categories/#{id}.json",
16
- :body => {
17
- "category" => self.find!(:help_center_categories, id),
18
- },
19
- )
20
- end
9
+ def mock
10
+ mock_response("category" => self.delete!(:help_center_categories, category_id))
21
11
  end
22
12
  end
@@ -1,22 +1,14 @@
1
- class Zendesk2::Client
2
- class Real
3
- def destroy_help_center_section(id)
4
- request(
5
- :method => :delete,
6
- :path => "/help_center/sections/#{id}.json"
7
- )
8
- end
1
+ class Zendesk2::Client::DestroyHelpCenterSection < Zendesk2::Client::Request
2
+ request_method :delete
3
+ request_path { |r| "/help_center/sections/#{r.section_id}.json" }
4
+
5
+ def section_id
6
+ params.fetch("section").fetch("id")
9
7
  end
10
8
 
11
- class Mock
12
- def destroy_help_center_section(id)
13
- response(
14
- :method => :delete,
15
- :path => "/help_center/sections/#{id}.json",
16
- :body => {
17
- "section" => self.find!(:help_center_sections, id),
18
- },
19
- )
20
- end
9
+ def mock
10
+ self.delete!(:help_center_sections, section_id)
11
+
12
+ mock_response(nil)
21
13
  end
22
14
  end
@@ -1,28 +1,14 @@
1
- class Zendesk2::Client
2
- class Real
3
- def destroy_membership(params={})
4
- id = params["id"]
1
+ class Zendesk2::Client::DestroyMembership < Zendesk2::Client::Request
2
+ request_method :delete
3
+ request_path { |r| "/organization_memberships/#{r.membership_id}.json" }
5
4
 
6
- request(
7
- :method => :delete,
8
- :path => "/organization_memberships/#{id}.json"
9
- )
10
- end
5
+ def membership_id
6
+ params.fetch("membership").fetch("id")
11
7
  end
12
8
 
13
- class Mock
14
- def destroy_membership(params={})
15
- id = params["id"]
9
+ def mock
10
+ delete!(:memberships, membership_id)
16
11
 
17
- body = self.delete!(:memberships, id)
18
-
19
- response(
20
- :method => :delete,
21
- :path => "/organization_memberships/#{id}.json",
22
- :body => {
23
- "membership" => body,
24
- },
25
- )
26
- end
12
+ mock_response(nil)
27
13
  end
28
14
  end
@@ -1,27 +1,14 @@
1
- class Zendesk2::Client
2
- class Real
3
- def destroy_organization(params={})
4
- id = params["id"]
1
+ class Zendesk2::Client::DestroyOrganization < Zendesk2::Client::Request
2
+ request_method :delete
3
+ request_path { |r| "/organizations/#{r.organization_id}.json" }
5
4
 
6
- request(
7
- :method => :delete,
8
- :path => "/organizations/#{id}.json"
9
- )
10
- end
5
+ def organization_id
6
+ params.fetch("organization").fetch("id")
11
7
  end
12
8
 
13
- class Mock
14
- def destroy_organization(params={})
15
- id = require_parameters(params, "id")
16
- body = self.delete!(:organizations, id)
9
+ def mock
10
+ self.delete!(:organizations, organization_id)
17
11
 
18
- response(
19
- :method => :delete,
20
- :path => "/organizations/#{id}.json",
21
- :body => {
22
- "organization" => body,
23
- },
24
- )
25
- end
12
+ mock_response(nil)
26
13
  end
27
14
  end
@@ -1,27 +1,14 @@
1
- class Zendesk2::Client
2
- class Real
3
- def destroy_ticket(params={})
4
- id = params["id"]
1
+ class Zendesk2::Client::DestroyTicket < Zendesk2::Client::Request
2
+ request_method :delete
3
+ request_path { |r| "/tickets/#{r.ticket_id}.json" }
5
4
 
6
- request(
7
- :method => :delete,
8
- :path => "/tickets/#{id}.json"
9
- )
10
- end
5
+ def ticket_id
6
+ @_ticket_id ||= params.fetch("ticket").fetch("id")
11
7
  end
12
8
 
13
- class Mock
14
- def destroy_ticket(params={})
15
- id = params["id"]
16
- body = self.delete!(:tickets, id)
9
+ def mock
10
+ self.delete!(:tickets, ticket_id)
17
11
 
18
- response(
19
- :method => :delete,
20
- :path => "/tickets/#{id}.json",
21
- :body => {
22
- "ticket" => body,
23
- },
24
- )
25
- end
12
+ mock_response(nil)
26
13
  end
27
14
  end
@@ -1,27 +1,14 @@
1
- class Zendesk2::Client
2
- class Real
3
- def destroy_ticket_field(params={})
4
- id = params["id"]
1
+ class Zendesk2::Client::DestroyTicketField < Zendesk2::Client::Request
2
+ request_method :delete
3
+ request_path { |r| "/ticket_fields/#{r.ticket_field_id}.json" }
5
4
 
6
- request(
7
- :method => :delete,
8
- :path => "/ticket_fields/#{id}.json"
9
- )
10
- end
5
+ def ticket_field_id
6
+ params.fetch("ticket_field").fetch("id")
11
7
  end
12
8
 
13
- class Mock
14
- def destroy_ticket_field(params={})
15
- id = params["id"]
16
- body = self.delete!(:ticket_fields, id)
9
+ def mock
10
+ self.delete!(:ticket_fields, ticket_field_id)
17
11
 
18
- response(
19
- :method => :delete,
20
- :path => "/ticket_fields/#{id}.json",
21
- :body => {
22
- "ticket_field" => body,
23
- },
24
- )
25
- end
12
+ mock_response(nil)
26
13
  end
27
14
  end
@@ -1,29 +1,14 @@
1
- class Zendesk2::Client
2
- class Real
3
- def destroy_topic(params={})
4
- id = params["id"]
1
+ class Zendesk2::Client::DestroyTopic < Zendesk2::Client::Request
2
+ request_method :delete
3
+ request_path { |r| "/topics/#{r.topic_id}.json" }
5
4
 
6
- request(
7
- :method => :delete,
8
- :path => "/topics/#{id}.json"
9
- )
10
- end
5
+ def topic_id
6
+ params.fetch("topic").fetch("id")
11
7
  end
12
8
 
13
- class Mock
14
- def destroy_topic(params={})
15
- id = params["id"]
16
- path = "/topics/#{id}.json"
9
+ def mock
10
+ self.delete!(:topics, topic_id)
17
11
 
18
- body = self.delete!(:topics, id)
19
-
20
- response(
21
- :method => :delete,
22
- :path => path,
23
- :body => {
24
- "topic" => body,
25
- },
26
- )
27
- end
12
+ mock_response(nil)
28
13
  end
29
14
  end
@@ -1,31 +1,18 @@
1
- class Zendesk2::Client
2
- class Real
3
- def destroy_topic_comment(params={})
4
- id = params["id"]
5
- topic_id = params["topic_id"]
1
+ class Zendesk2::Client::DestroyTopicComment < Zendesk2::Client::Request
2
+ request_method :delete
3
+ request_path { |r| "/topics/#{r.topic_id}/comments/#{r.topic_comment_id}.json" }
6
4
 
7
- request(
8
- :method => :delete,
9
- :path => "/topics/#{topic_id}/comments/#{id}.json"
10
- )
11
- end
5
+ def topic_id
6
+ params.fetch("topic_comment").fetch("topic_id")
12
7
  end
13
8
 
14
- class Mock
15
- def destroy_topic_comment(params={})
16
- id = params["id"]
17
- topic_id = params["topic_id"]
18
- path = "/topics/#{topic_id}/comments/#{id}.json"
9
+ def topic_comment_id
10
+ params.fetch("topic_comment").fetch("id")
11
+ end
19
12
 
20
- body = self.delete!(:topic_comments, id)
13
+ def mock
14
+ self.delete!(:topic_comments, topic_comment_id)
21
15
 
22
- response(
23
- :method => :delete,
24
- :path => path,
25
- :body => {
26
- "topic_comment" => body,
27
- },
28
- )
29
- end
16
+ mock_response(nil)
30
17
  end
31
18
  end
@@ -1,51 +1,25 @@
1
- class Zendesk2::Client
2
- class Real
3
- def destroy_user(params={})
4
- id = params["id"]
1
+ class Zendesk2::Client::DestroyUser < Zendesk2::Client::Request
2
+ request_method :delete
3
+ request_path { |r| "/users/#{r.user_id}.json" }
5
4
 
6
- request(
7
- :method => :delete,
8
- :path => "/users/#{id}.json"
9
- )
10
- end
5
+ def user_id
6
+ @_user_id ||= params.fetch("user").fetch("id").to_i
11
7
  end
12
8
 
13
- class Mock
14
- def destroy_user(params={})
15
- id = params["id"].to_s
16
- path = "/users/#{id}.json"
17
-
18
- tickets = self.data[:tickets].values.select { |t| t["requester_id"] == id }.size
19
-
20
- if tickets < 1
21
- self.data[:identities].each { |k,v| self.data[:identities].delete(k) if v["user_id"] == id }
9
+ def mock
10
+ ticket_count = service.data[:tickets].values.select { |t| t["requester_id"].to_i == user_id }.size
22
11
 
23
- body = self.delete!(:users, id)
12
+ if ticket_count < 1
13
+ service.data[:identities].each { |k,v| service.data[:identities].delete(k) if v["user_id"] == user_id }
24
14
 
25
- response(
26
- :method => :delete,
27
- :path => path,
28
- :body => {
29
- "user" => body,
30
- },
31
- )
32
- else
33
- response(
34
- :method => :delete,
35
- :path => path,
36
- :status => 422,
37
- :body => {
38
- "error" => "RecordInvalid",
39
- "description" => "Record validation errors",
40
- "details" => {
41
- "base" => [{
42
- "type" => "User is requester on #{tickets} ticket(s) that are not closed.",
43
- "description" => "Base User is requester on #{tickets} ticket(s) that are not closed."
44
- }]
45
- }
46
- }
47
- )
48
- end
15
+ mock_response("user" => self.delete!(:users, user_id))
16
+ else
17
+ error!(:invalid, "details" => {
18
+ "base" => [{
19
+ "type" => "User is requester on #{ticket_count} ticket(s) that are not closed.",
20
+ "description" => "Base User is requester on #{ticket_count} ticket(s) that are not closed."
21
+ }]
22
+ })
49
23
  end
50
24
  end
51
25
  end