zendesk2 1.4.2 → 1.5.3

Sign up to get free protection for your applications and to get access to all the features.
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