zendesk2 1.8.1 → 1.9.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 (82) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -1
  3. data/lib/zendesk2/attributes.rb +1 -1
  4. data/lib/zendesk2/audit_event.rb +1 -1
  5. data/lib/zendesk2/category.rb +3 -3
  6. data/lib/zendesk2/collection.rb +2 -2
  7. data/lib/zendesk2/create_category.rb +2 -2
  8. data/lib/zendesk2/create_forum.rb +2 -2
  9. data/lib/zendesk2/create_group.rb +1 -1
  10. data/lib/zendesk2/create_membership.rb +1 -1
  11. data/lib/zendesk2/create_organization.rb +1 -1
  12. data/lib/zendesk2/create_ticket.rb +9 -9
  13. data/lib/zendesk2/create_ticket_field.rb +1 -1
  14. data/lib/zendesk2/create_topic.rb +1 -1
  15. data/lib/zendesk2/create_topic_comment.rb +1 -1
  16. data/lib/zendesk2/create_user.rb +3 -3
  17. data/lib/zendesk2/create_user_field.rb +2 -2
  18. data/lib/zendesk2/create_user_identity.rb +4 -4
  19. data/lib/zendesk2/create_view.rb +2 -2
  20. data/lib/zendesk2/destroy_user.rb +2 -2
  21. data/lib/zendesk2/forum.rb +3 -3
  22. data/lib/zendesk2/get_assignable_groups.rb +1 -1
  23. data/lib/zendesk2/get_ccd_tickets.rb +1 -1
  24. data/lib/zendesk2/get_current_user.rb +1 -1
  25. data/lib/zendesk2/get_user_identities.rb +1 -1
  26. data/lib/zendesk2/group.rb +3 -3
  27. data/lib/zendesk2/groups.rb +2 -2
  28. data/lib/zendesk2/help_center.rb +9 -0
  29. data/lib/zendesk2/help_center/access_policy.rb +1 -1
  30. data/lib/zendesk2/help_center/article.rb +9 -3
  31. data/lib/zendesk2/help_center/articles.rb +1 -1
  32. data/lib/zendesk2/help_center/category.rb +11 -5
  33. data/lib/zendesk2/help_center/create_help_center_article.rb +2 -2
  34. data/lib/zendesk2/help_center/create_help_center_category.rb +2 -2
  35. data/lib/zendesk2/help_center/create_help_center_section.rb +4 -4
  36. data/lib/zendesk2/help_center/create_help_center_translation.rb +37 -0
  37. data/lib/zendesk2/help_center/destroy_help_center_translation.rb +13 -0
  38. data/lib/zendesk2/help_center/get_help_center_translation.rb +13 -0
  39. data/lib/zendesk2/help_center/get_help_center_translations.rb +25 -0
  40. data/lib/zendesk2/help_center/section.rb +12 -6
  41. data/lib/zendesk2/help_center/sections.rb +1 -1
  42. data/lib/zendesk2/help_center/translation.rb +48 -0
  43. data/lib/zendesk2/help_center/translation_source.rb +45 -0
  44. data/lib/zendesk2/help_center/translations.rb +29 -0
  45. data/lib/zendesk2/help_center/update_help_center_translation.rb +16 -0
  46. data/lib/zendesk2/mark_user_identity_primary.rb +1 -1
  47. data/lib/zendesk2/membership.rb +3 -3
  48. data/lib/zendesk2/memberships.rb +3 -3
  49. data/lib/zendesk2/mock.rb +2 -1
  50. data/lib/zendesk2/organization.rb +8 -8
  51. data/lib/zendesk2/organizations.rb +2 -2
  52. data/lib/zendesk2/paged_collection.rb +3 -3
  53. data/lib/zendesk2/real.rb +6 -6
  54. data/lib/zendesk2/request.rb +9 -9
  55. data/lib/zendesk2/search.rb +2 -2
  56. data/lib/zendesk2/searchable.rb +1 -1
  57. data/lib/zendesk2/ticket.rb +9 -9
  58. data/lib/zendesk2/ticket_audit.rb +2 -2
  59. data/lib/zendesk2/ticket_audits.rb +3 -3
  60. data/lib/zendesk2/ticket_comment.rb +1 -1
  61. data/lib/zendesk2/ticket_comment_privacy_change.rb +1 -1
  62. data/lib/zendesk2/ticket_comments.rb +2 -2
  63. data/lib/zendesk2/ticket_field.rb +3 -3
  64. data/lib/zendesk2/ticket_metric.rb +1 -1
  65. data/lib/zendesk2/ticket_voice_comment.rb +1 -1
  66. data/lib/zendesk2/tickets.rb +1 -1
  67. data/lib/zendesk2/topic.rb +3 -3
  68. data/lib/zendesk2/topic_comment.rb +4 -4
  69. data/lib/zendesk2/update_organization.rb +1 -1
  70. data/lib/zendesk2/update_ticket.rb +5 -5
  71. data/lib/zendesk2/update_user.rb +4 -4
  72. data/lib/zendesk2/user.rb +13 -13
  73. data/lib/zendesk2/user_field.rb +3 -3
  74. data/lib/zendesk2/user_identity.rb +5 -5
  75. data/lib/zendesk2/users.rb +1 -1
  76. data/lib/zendesk2/version.rb +1 -1
  77. data/lib/zendesk2/view.rb +4 -4
  78. data/spec/help_center/articles_spec.rb +18 -0
  79. data/spec/help_center/categories_spec.rb +13 -0
  80. data/spec/help_center/sections_spec.rb +14 -1
  81. data/spec/support/client_helper.rb +0 -1
  82. metadata +10 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 47765b2ecc5d355c801ffb42c539133e3e52c5f0
4
- data.tar.gz: 8539465b4426c2ac045fb947564465b2932c9011
3
+ metadata.gz: 57938a7a4d8d6885607eb9ce942295373b41559b
4
+ data.tar.gz: b56d6e5fc5b3505f8ebe107bca1198cdfa568dc8
5
5
  SHA512:
6
- metadata.gz: cdea7b59ded18ae6a9f01a7b7bf88a23db8674d8f878bf1eb2832476305c1b590bbe2586a53e75eaa7f1c0eedbca32547985394ede25f3050c73d9a27c5f7317
7
- data.tar.gz: e114b86cac3a84db21f6d190a13f79ef09bb435c105105d107c2f483bc11d3824daccc296bfa2cabb73e88deb03b33f8453feb8734a236cf478598f516575d1d
6
+ metadata.gz: 9147be1837cf536af9c09ffd595dbf2542cfc759d160162d70f7e141d680502dfcc057f67a13997b18d501aae4f73d5dc867b17265bcb566e39ea7e08b8759e7
7
+ data.tar.gz: 345b472a1182294e3a5a23a1bfac5b775bcb024f020d3117bc78737d781b5797c206df09273eab2084493aa127d6415aa748a9d2855399238ddf4b1042893bd4
data/CHANGELOG.md CHANGED
@@ -2,7 +2,16 @@
2
2
 
3
3
  ## [Unreleased](https://github.com/lanej/zendesk2/tree/HEAD)
4
4
 
5
- [Full Changelog](https://github.com/lanej/zendesk2/compare/v1.8.0...HEAD)
5
+ [Full Changelog](https://github.com/lanej/zendesk2/compare/v1.8.1...HEAD)
6
+
7
+ **Merged pull requests:**
8
+
9
+ - separate auth\_id and username [\#50](https://github.com/lanej/zendesk2/pull/50) ([lanej](https://github.com/lanej))
10
+ - s/service/cistern/g [\#49](https://github.com/lanej/zendesk2/pull/49) ([lanej](https://github.com/lanej))
11
+ - Help center translations API [\#48](https://github.com/lanej/zendesk2/pull/48) ([omgitsads](https://github.com/omgitsads))
12
+
13
+ ## [v1.8.1](https://github.com/lanej/zendesk2/tree/v1.8.1) (2016-05-19)
14
+ [Full Changelog](https://github.com/lanej/zendesk2/compare/v1.8.0...v1.8.1)
6
15
 
7
16
  **Merged pull requests:**
8
17
 
@@ -4,7 +4,7 @@ module Zendesk2::Attributes
4
4
  collection = options[:collection] || "#{name}s"
5
5
  define_method(name) do
6
6
  if assoc_id = self.send(assoc_key)
7
- self.service.send(collection).get(assoc_id)
7
+ self.cistern.send(collection).get(assoc_id)
8
8
  else self.instance_variable_get("@#{name}")
9
9
  end
10
10
  end
@@ -18,7 +18,7 @@ class Zendesk2::AuditEvent
18
18
  if klass = all.find{|k| k.name == event_class}
19
19
  klass.new(attributes)
20
20
  else # handle unrecognized audit events
21
- attributes.reject{|k,v| k == :service}
21
+ attributes.reject{|k,v| k == :cistern}
22
22
  end
23
23
  end
24
24
 
@@ -21,18 +21,18 @@ class Zendesk2::Category
21
21
  def destroy!
22
22
  requires :identity
23
23
 
24
- service.destroy_category("category" => {"id" => self.identity})
24
+ cistern.destroy_category("category" => {"id" => self.identity})
25
25
  end
26
26
 
27
27
  def save!
28
28
  data = if new_record?
29
29
  requires :name
30
30
 
31
- service.create_category(params).body["category"]
31
+ cistern.create_category(params).body["category"]
32
32
  else
33
33
  requires :identity
34
34
 
35
- service.update_category(params).body["category"]
35
+ cistern.update_category(params).body["category"]
36
36
  end
37
37
 
38
38
  merge_attributes(data)
@@ -48,7 +48,7 @@ module Zendesk2::Collection
48
48
  # Fetch a collection of resources
49
49
  def all(params={})
50
50
  scoped_attributes = self.class.scopes.inject({}){|r,k| r.merge(k.to_s => send(k))}.merge(params)
51
- body = service.send(collection_method, scoped_attributes).body
51
+ body = cistern.send(collection_method, scoped_attributes).body
52
52
 
53
53
  self.load(body[collection_root])
54
54
  self.merge_attributes(Cistern::Hash.slice(body, "count"))
@@ -80,7 +80,7 @@ module Zendesk2::Collection
80
80
 
81
81
  scoped_attributes = { namespace => scoped_attributes }
82
82
 
83
- if data = self.service.send(model_method, scoped_attributes).body[self.model_root]
83
+ if data = self.cistern.send(model_method, scoped_attributes).body[self.model_root]
84
84
  new(data)
85
85
  end
86
86
  end
@@ -10,7 +10,7 @@ class Zendesk2::CreateCategory
10
10
  end
11
11
 
12
12
  def mock
13
- identity = service.serial_id
13
+ identity = cistern.serial_id
14
14
 
15
15
  record = {
16
16
  "id" => identity,
@@ -19,7 +19,7 @@ class Zendesk2::CreateCategory
19
19
  "updated_at" => Time.now.iso8601,
20
20
  }.merge(Cistern::Hash.slice(params.fetch("category"), *self.class.accepted_attributes))
21
21
 
22
- service.data[:categories][identity] = record
22
+ cistern.data[:categories][identity] = record
23
23
 
24
24
  mock_response({"category" => record}, {status: 201})
25
25
  end
@@ -14,7 +14,7 @@ class Zendesk2::CreateForum
14
14
  end
15
15
 
16
16
  def mock
17
- identity = service.serial_id
17
+ identity = cistern.serial_id
18
18
 
19
19
  record = {
20
20
  "id" => identity,
@@ -23,7 +23,7 @@ class Zendesk2::CreateForum
23
23
  "updated_at" => Time.now.iso8601,
24
24
  }.merge(Cistern::Hash.slice(params.fetch("forum"), *self.class.accepted_attributes))
25
25
 
26
- service.data[:forums][identity] = record
26
+ cistern.data[:forums][identity] = record
27
27
 
28
28
  mock_response({"forum" => record}, {status: 201})
29
29
  end
@@ -14,7 +14,7 @@ class Zendesk2::CreateGroup
14
14
  end
15
15
 
16
16
  def mock(params={})
17
- identity = service.serial_id
17
+ identity = cistern.serial_id
18
18
 
19
19
  record = {
20
20
  "id" => identity,
@@ -33,7 +33,7 @@ class Zendesk2::CreateMembership
33
33
  error!(:invalid, description: { "user_id" => [ { "description" => "User has already been taken" } ] })
34
34
  end
35
35
 
36
- resource_id = service.serial_id
36
+ resource_id = cistern.serial_id
37
37
 
38
38
  default_membership = !self.data[:memberships].values.find { |m| m["user_id"] == user_id && m["default"] }
39
39
 
@@ -14,7 +14,7 @@ class Zendesk2::CreateOrganization
14
14
  end
15
15
 
16
16
  def mock
17
- identity = service.serial_id
17
+ identity = cistern.serial_id
18
18
 
19
19
  record = {
20
20
  "id" => identity,
@@ -33,11 +33,11 @@ class Zendesk2::CreateTicket
33
33
  ]})
34
34
  end
35
35
 
36
- user_id = if known_user = service.users.search(email: requester['email']).first
36
+ user_id = if known_user = cistern.users.search(email: requester['email']).first
37
37
  known_user.identity
38
38
  else
39
39
  # name is not required in this case
40
- service.create_user("user" => requester).body["user"]["id"]
40
+ cistern.create_user("user" => requester).body["user"]["id"]
41
41
  end
42
42
 
43
43
  create_params['requester_id'] = user_id.to_i
@@ -48,19 +48,19 @@ class Zendesk2::CreateTicket
48
48
  custom_fields = requested_custom_fields.map do |cf|
49
49
  field_id = cf["id"].to_i
50
50
 
51
- if service.data[:ticket_fields][field_id]
51
+ if cistern.data[:ticket_fields][field_id]
52
52
  {"id" => field_id, "value" => cf["value"] }
53
53
  else
54
54
  # @fixme error ?!
55
55
  end
56
56
  end.compact
57
57
 
58
- service.data[:ticket_fields].each do |field_id, field|
58
+ cistern.data[:ticket_fields].each do |field_id, field|
59
59
  requested_custom_fields.find { |cf| cf["id"] == field_id } ||
60
60
  custom_fields << {"id" => field_id, "value" => nil }
61
61
  end
62
62
 
63
- identity = service.serial_id
63
+ identity = cistern.serial_id
64
64
 
65
65
  record = {
66
66
  "id" => identity,
@@ -72,14 +72,14 @@ class Zendesk2::CreateTicket
72
72
  "custom_fields" => custom_fields,
73
73
  }.merge(create_params)
74
74
 
75
- record["requester_id"] ||= (requester_id && requester_id.to_i) || service.current_user["id"]
76
- record["submitter_id"] = service.current_user["id"].to_i
75
+ record["requester_id"] ||= (requester_id && requester_id.to_i) || cistern.current_user["id"]
76
+ record["submitter_id"] = cistern.current_user["id"].to_i
77
77
 
78
- record["organization_id"] ||= if requester = service.data[:users][record["requester_id"].to_i]
78
+ record["organization_id"] ||= if requester = cistern.data[:users][record["requester_id"].to_i]
79
79
  requester["organization_id"]
80
80
  end
81
81
 
82
- service.data[:tickets][identity] = record
82
+ cistern.data[:tickets][identity] = record
83
83
 
84
84
  mock_response("ticket" => record)
85
85
  end
@@ -14,7 +14,7 @@ class Zendesk2::CreateTicketField
14
14
  end
15
15
 
16
16
  def mock
17
- identity = service.serial_id
17
+ identity = cistern.serial_id
18
18
 
19
19
  record = {
20
20
  "active" => true,
@@ -14,7 +14,7 @@ class Zendesk2::CreateTopic
14
14
  end
15
15
 
16
16
  def mock
17
- identity = service.serial_id
17
+ identity = cistern.serial_id
18
18
 
19
19
  record = {
20
20
  "id" => identity,
@@ -18,7 +18,7 @@ class Zendesk2::CreateTopicComment
18
18
  end
19
19
 
20
20
  def mock
21
- identity = service.serial_id
21
+ identity = cistern.serial_id
22
22
 
23
23
  record = {
24
24
  "id" => identity,
@@ -14,7 +14,7 @@ class Zendesk2::CreateUser
14
14
  end
15
15
 
16
16
  def mock
17
- user_id = service.serial_id
17
+ user_id = cistern.serial_id
18
18
 
19
19
  user = params.fetch("user")
20
20
 
@@ -41,7 +41,7 @@ class Zendesk2::CreateUser
41
41
  "description" => "Email: #{email} is already being used by another user"
42
42
  }]})
43
43
  else
44
- user_identity_id = service.serial_id
44
+ user_identity_id = cistern.serial_id
45
45
 
46
46
  user_identity = {
47
47
  "id" => user_identity_id,
@@ -59,7 +59,7 @@ class Zendesk2::CreateUser
59
59
  self.data[:users][user_id] = record.reject { |k,v| k == "email" }
60
60
 
61
61
  if organization_id
62
- service.create_membership("membership" => { "user_id" => user_id, "organization_id" => organization_id, "default" => true } )
62
+ cistern.create_membership("membership" => { "user_id" => user_id, "organization_id" => organization_id, "default" => true } )
63
63
  end
64
64
 
65
65
  mock_response({"user" => record}, {status: 201})
@@ -14,7 +14,7 @@ class Zendesk2::CreateUserField
14
14
  end
15
15
 
16
16
  def mock
17
- identity = service.serial_id
17
+ identity = cistern.serial_id
18
18
 
19
19
  record = {
20
20
  "active" => true,
@@ -35,7 +35,7 @@ class Zendesk2::CreateUserField
35
35
  "visible_in_portal" => false,
36
36
  }.merge(user_field_params)
37
37
 
38
- service.data[:user_fields][identity] = record
38
+ cistern.data[:user_fields][identity] = record
39
39
 
40
40
  mock_response("user_field" => record)
41
41
  end
@@ -18,7 +18,7 @@ class Zendesk2::CreateUserIdentity
18
18
  end
19
19
 
20
20
  def mock
21
- identity = service.serial_id
21
+ identity = cistern.serial_id
22
22
 
23
23
  record = {
24
24
  "id" => identity,
@@ -30,13 +30,13 @@ class Zendesk2::CreateUserIdentity
30
30
  "user_id" => user_id,
31
31
  }.merge(user_identity_params)
32
32
 
33
- record.merge("primary" => true) if service.data[:identities].values.find { |ui| ui["user_id"] == user_id }.nil?
33
+ record.merge("primary" => true) if cistern.data[:identities].values.find { |ui| ui["user_id"] == user_id }.nil?
34
34
 
35
- if service.data[:identities].values.find { |i| i["value"] == record["value"] }
35
+ if cistern.data[:identities].values.find { |i| i["value"] == record["value"] }
36
36
  error!(:invalid, details: { "value" => [ { "description" => "Value: #{record["value"]} is already being used by another user" } ] })
37
37
  end
38
38
 
39
- service.data[:identities][identity] = record
39
+ cistern.data[:identities][identity] = record
40
40
 
41
41
  mock_response("identity" => record)
42
42
  end
@@ -55,7 +55,7 @@ class Zendesk2::CreateView
55
55
  error!(:invalid, :details => {"base" => ["Invalid conditions: You must select at least one condition"]})
56
56
  end
57
57
 
58
- identity = service.serial_id
58
+ identity = cistern.serial_id
59
59
 
60
60
  output = view_params.delete("output") || {}
61
61
  columns = (output["columns"] || []).inject([]) { |r,c| r << {"id" => c, "name" => self.class.view_columns.fetch(c)} }
@@ -91,7 +91,7 @@ class Zendesk2::CreateView
91
91
  },
92
92
  }.merge(create_params)
93
93
 
94
- service.data[:views][identity] = record
94
+ cistern.data[:views][identity] = record
95
95
 
96
96
  mock_response("view" => record)
97
97
  end
@@ -9,10 +9,10 @@ class Zendesk2::DestroyUser
9
9
  end
10
10
 
11
11
  def mock
12
- ticket_count = service.data[:tickets].values.select { |t| t["requester_id"].to_i == user_id }.size
12
+ ticket_count = cistern.data[:tickets].values.select { |t| t["requester_id"].to_i == user_id }.size
13
13
 
14
14
  if ticket_count < 1
15
- service.data[:identities].each { |k,v| service.data[:identities].delete(k) if v["user_id"] == user_id }
15
+ cistern.data[:identities].each { |k,v| cistern.data[:identities].delete(k) if v["user_id"] == user_id }
16
16
 
17
17
  mock_response("user" => self.delete!(:users, user_id))
18
18
  else
@@ -24,18 +24,18 @@ class Zendesk2::Forum
24
24
  def destroy!
25
25
  requires :identity
26
26
 
27
- service.destroy_forum("forum" => {"id" => self.identity})
27
+ cistern.destroy_forum("forum" => {"id" => self.identity})
28
28
  end
29
29
 
30
30
  def save!
31
31
  response = if new_record?
32
32
  requires :name
33
33
 
34
- service.create_forum("forum" => self.attributes)
34
+ cistern.create_forum("forum" => self.attributes)
35
35
  else
36
36
  requires :identity
37
37
 
38
- service.update_forum("forum" => self.attributes)
38
+ cistern.update_forum("forum" => self.attributes)
39
39
  end
40
40
 
41
41
  merge_attributes(response.body["forum"])
@@ -7,7 +7,7 @@ class Zendesk2::GetAssignableGroups
7
7
  page_params!
8
8
 
9
9
  def mock
10
- groups = service.data[:groups].values.select { |group| group.select { |g| !g['deleted'] } }
10
+ groups = cistern.data[:groups].values.select { |group| group.select { |g| !g['deleted'] } }
11
11
 
12
12
  page(groups, root: "groups")
13
13
  end
@@ -10,7 +10,7 @@ class Zendesk2::GetCcdTickets
10
10
  end
11
11
 
12
12
  def mock
13
- tickets = service.data[:tickets].values.select { |u| u["collaborator_ids"].include?(collaborator_id) }
13
+ tickets = cistern.data[:tickets].values.select { |u| u["collaborator_ids"].include?(collaborator_id) }
14
14
 
15
15
  page(tickets, root: "tickets")
16
16
  end
@@ -5,6 +5,6 @@ class Zendesk2::GetCurrentUser
5
5
  request_path { |_| "/users/me.json" }
6
6
 
7
7
  def mock
8
- service.get_user("user" => {"id" => service.current_user.fetch("id")})
8
+ cistern.get_user("user" => {"id" => cistern.current_user.fetch("id")})
9
9
  end
10
10
  end
@@ -10,7 +10,7 @@ class Zendesk2::GetUserIdentities
10
10
  end
11
11
 
12
12
  def mock
13
- identities = service.data[:identities].values.select { |a| a["user_id"] == user_id }
13
+ identities = cistern.data[:identities].values.select { |a| a["user_id"] == user_id }
14
14
 
15
15
  page(identities, root: "identities")
16
16
  end
@@ -21,11 +21,11 @@ class Zendesk2::Group
21
21
  data = if new_record?
22
22
  requires :name
23
23
 
24
- service.create_group("group" => self.attributes)
24
+ cistern.create_group("group" => self.attributes)
25
25
  else
26
26
  requires :identity
27
27
 
28
- service.update_group("group" => self.attributes)
28
+ cistern.update_group("group" => self.attributes)
29
29
  end.body["group"]
30
30
 
31
31
  merge_attributes(data)
@@ -34,7 +34,7 @@ class Zendesk2::Group
34
34
  def destroy!
35
35
  requires :identity
36
36
 
37
- service.destroy_group("group" => {"id" => self.identity})
37
+ cistern.destroy_group("group" => {"id" => self.identity})
38
38
 
39
39
  self.deleted = true
40
40
  end
@@ -13,8 +13,8 @@ class Zendesk2::Groups
13
13
  self.search_type = "group"
14
14
 
15
15
  def assignable
16
- data = self.service.get_assignable_groups.body
17
- collection = self.service.groups.load(data["groups"])
16
+ data = self.cistern.get_assignable_groups.body
17
+ collection = self.cistern.groups.load(data["groups"])
18
18
  collection.merge_attributes(Cistern::Hash.slice(data, "next_page", "previous_page", "count"))
19
19
  end
20
20
  end