zendesk_support_api 0.2.0 → 0.3.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.
- checksums.yaml +4 -4
- data/.yardoc/checksums +4 -3
- data/.yardoc/object_types +0 -0
- data/.yardoc/objects/root.dat +0 -0
- data/README.md +4 -0
- data/lib/zendesk_support_api/client.rb +1 -0
- data/lib/zendesk_support_api/groups.rb +178 -0
- data/lib/zendesk_support_api/users.rb +28 -1
- data/lib/zendesk_support_api/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4914120c422052e97716f808fe888ec810bee8977f4fcd9d275cc6b1705c4ca0
|
4
|
+
data.tar.gz: 4cded8d95430a510322e44f0310f18ce9c01a5776a4dac4ab476eaee487fbecf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0065aa4ea3865fd6169a1650ed126d1748e290190dd5a5755c72fda7e37f6f365599e1f73fe178c07d68aa6ed2fed202cad6f6768fec91567c86dd2dafc2817a
|
7
|
+
data.tar.gz: 89c5da1d7258032fe2c56369a7d31e69131137012ada8573618b61693be110ac8a5e0b5bb196afa4cdca0ad1a1e20c21b7ddaa4c51da58f4ddda62e1aef7f162
|
data/.yardoc/checksums
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
lib/zendesk_support_api.rb fee89f019b11ec8feb844644e000cec6cad6a695
|
2
2
|
lib/zendesk_support_api/jobs.rb 15e3db660bb16f1a2bc580ce17a9368f81fc9d0e
|
3
|
-
lib/zendesk_support_api/users.rb
|
4
|
-
lib/zendesk_support_api/client.rb
|
3
|
+
lib/zendesk_support_api/users.rb eb4f8d81f6f9ccf779679f7bfe354c0cc6be8d0c
|
4
|
+
lib/zendesk_support_api/client.rb f73dc3643644c6bf5f1a82593971b78a47b384fc
|
5
|
+
lib/zendesk_support_api/groups.rb bcc2a0b1af5bf3552c7838d80f339efbf8636e53
|
5
6
|
lib/zendesk_support_api/search.rb e741717c61809c578afbcd44f9b8e8f18a8c0363
|
6
|
-
lib/zendesk_support_api/version.rb
|
7
|
+
lib/zendesk_support_api/version.rb e6591152418f6cbe5b2a2ff5d68799f735ed597d
|
data/.yardoc/object_types
CHANGED
Binary file
|
data/.yardoc/objects/root.dat
CHANGED
Binary file
|
data/README.md
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
module ZendeskSupportAPI
|
4
4
|
# Client class - https://developer.zendesk.com/rest_api/docs/support/introduction#security-and-authentication
|
5
5
|
class Client
|
6
|
+
require 'zendesk_support_api/groups'
|
6
7
|
require 'zendesk_support_api/jobs'
|
7
8
|
require 'zendesk_support_api/search'
|
8
9
|
require 'zendesk_support_api/users'
|
@@ -0,0 +1,178 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module ZendeskSupportAPI
|
4
|
+
# Groups class - https://developer.zendesk.com/rest_api/docs/support/groups
|
5
|
+
class Groups
|
6
|
+
# Function to return a string that side-loads users
|
7
|
+
#
|
8
|
+
# @return [String]
|
9
|
+
|
10
|
+
def self.user_map(groups, users)
|
11
|
+
groups.map { |g| group_object(g, users) }
|
12
|
+
end
|
13
|
+
|
14
|
+
# Creates a group hash (for mappping the user into the group Hash)
|
15
|
+
#
|
16
|
+
# @param group [Hash] The group details to use
|
17
|
+
# @param users [Array] The Array of users to use
|
18
|
+
# @return [Hash]
|
19
|
+
|
20
|
+
def self.group_object(group, users)
|
21
|
+
group['user'] = users.select { |u| u['id'] == group['user_id'] }
|
22
|
+
group
|
23
|
+
end
|
24
|
+
|
25
|
+
# Returns the string of the next_page for pagination
|
26
|
+
#
|
27
|
+
# @param res [Hash] The Hash containing the response from a request
|
28
|
+
# @return [nil|String]
|
29
|
+
#
|
30
|
+
# @example
|
31
|
+
# ZendeskSupportAPI::Users.next_page(response) #=> nil
|
32
|
+
# ZendeskSupportAPI::Users.next_page(response)
|
33
|
+
# #=> "memberships.json?include=users&page=3
|
34
|
+
|
35
|
+
def self.next_page(res)
|
36
|
+
(res['next_page'].nil? ? nil : res['next_page'].split('/').last)
|
37
|
+
end
|
38
|
+
|
39
|
+
# Lists groups (first 100)
|
40
|
+
#
|
41
|
+
# @param client [ZendeskSupportAPI::Client] The client instance to use
|
42
|
+
# @return [Array]
|
43
|
+
#
|
44
|
+
# @example
|
45
|
+
# ZendeskSupportAPI::Groups.list(client)
|
46
|
+
# #=> [
|
47
|
+
# #=> {
|
48
|
+
# #=> "name": "DJs",
|
49
|
+
# #=> "created_at": "2009-05-13T00:07:08Z",
|
50
|
+
# #=> "updated_at": "2011-07-22T00:11:12Z",
|
51
|
+
# #=> "id": 211
|
52
|
+
# #=> },
|
53
|
+
# #=> {
|
54
|
+
# #=> "name": "MCs",
|
55
|
+
# #=> "created_at": "2009-08-26T00:07:08Z",
|
56
|
+
# #=> "updated_at": "2010-05-13T00:07:08Z",
|
57
|
+
# #=> "id": 122
|
58
|
+
# #=> }
|
59
|
+
# #=> ]
|
60
|
+
|
61
|
+
def self.list(client)
|
62
|
+
client.request(:get, 'groups.json')['groups']
|
63
|
+
end
|
64
|
+
|
65
|
+
# Shows assignable groups (first 100)
|
66
|
+
#
|
67
|
+
# @param client [ZendeskSupportAPI::Client] The client instance to use
|
68
|
+
# @return [Array]
|
69
|
+
#
|
70
|
+
# @example
|
71
|
+
# ZendeskSupportAPI::Groups.assignable(client)
|
72
|
+
# #=> [
|
73
|
+
# #=> {
|
74
|
+
# #=> "name": "DJs",
|
75
|
+
# #=> "created_at": "2009-05-13T00:07:08Z",
|
76
|
+
# #=> "updated_at": "2011-07-22T00:11:12Z",
|
77
|
+
# #=> "id": 211
|
78
|
+
# #=> },
|
79
|
+
# #=> {
|
80
|
+
# #=> "name": "MCs",
|
81
|
+
# #=> "created_at": "2009-08-26T00:07:08Z",
|
82
|
+
# #=> "updated_at": "2010-05-13T00:07:08Z",
|
83
|
+
# #=> "id": 122
|
84
|
+
# #=> }
|
85
|
+
# #=> ]
|
86
|
+
|
87
|
+
def self.assignable(client)
|
88
|
+
client.request(:get, 'assignable.json')['groups']
|
89
|
+
end
|
90
|
+
|
91
|
+
# Shows info about a specific group
|
92
|
+
#
|
93
|
+
# @param client [ZendeskSupportAPI::Client] The client instance to use
|
94
|
+
# @param gid [Integer] The Group ID
|
95
|
+
# @return [Hash]
|
96
|
+
#
|
97
|
+
# @example
|
98
|
+
# ZendeskSupportAPI::Groups.show(client, 122)
|
99
|
+
# #=> {
|
100
|
+
# #=> "name": "MCs",
|
101
|
+
# #=> "created_at": "2009-08-26T00:07:08Z",
|
102
|
+
# #=> "updated_at": "2010-05-13T00:07:08Z",
|
103
|
+
# #=> "id": 122
|
104
|
+
# #=> }
|
105
|
+
|
106
|
+
def self.show(client, gid)
|
107
|
+
client.request(:get, "groups/#{gid}.json")['group']
|
108
|
+
end
|
109
|
+
|
110
|
+
# Create a group
|
111
|
+
#
|
112
|
+
# @param client [ZendeskSupportAPI::Client] The client instance to use
|
113
|
+
# @param group [Hash] The group details to use
|
114
|
+
# @return [String|Hash]
|
115
|
+
#
|
116
|
+
# @example
|
117
|
+
# group = {
|
118
|
+
# name: 'Test Group'
|
119
|
+
# }
|
120
|
+
# ZendeskSupportAPI::Groups.create(client, group)
|
121
|
+
# #=> {
|
122
|
+
# #=> "name": "Test Group",
|
123
|
+
# #=> "created_at": "2011-04-20T17:49:00Z",
|
124
|
+
# #=> "updated_at": "2011-04-20T17:49:00Z",
|
125
|
+
# #=> "id": 123
|
126
|
+
# #=> }
|
127
|
+
|
128
|
+
def self.create(client, group)
|
129
|
+
res = client.request(:post, 'groups.json', group: group)
|
130
|
+
return "Creation failed: #{res['details']}" if res['error']
|
131
|
+
|
132
|
+
res
|
133
|
+
end
|
134
|
+
|
135
|
+
# Updates a group
|
136
|
+
#
|
137
|
+
# @param client [ZendeskSupportAPI::Client] The client instance to use
|
138
|
+
# @param gid [Integer] The group ID to use
|
139
|
+
# @param group [Hash] The group details to use
|
140
|
+
# @return [String|Hash]
|
141
|
+
#
|
142
|
+
# @example
|
143
|
+
# group = {
|
144
|
+
# name: 'Test Group - defunct'
|
145
|
+
# }
|
146
|
+
# ZendeskSupportAPI::Groups.update(client, 123, group)
|
147
|
+
# #=> {
|
148
|
+
# #=> "name": "Test Group - defunct",
|
149
|
+
# #=> "created_at": "2011-04-20T17:49:00Z",
|
150
|
+
# #=> "updated_at": "2011-07-20T17:49:00Z",
|
151
|
+
# #=> "id": 123
|
152
|
+
# #=> }
|
153
|
+
|
154
|
+
def self.update(client, gid, group)
|
155
|
+
res = client.request(:post, "groups/#{gid}.json", group: group)
|
156
|
+
return "Update failed: #{res['details']}" if res['error']
|
157
|
+
|
158
|
+
res
|
159
|
+
end
|
160
|
+
|
161
|
+
# Deletes a group
|
162
|
+
#
|
163
|
+
# @param client [ZendeskSupportAPI::Client] The client instance to use
|
164
|
+
# @param gid [Integer] The group ID to use
|
165
|
+
# @return [String]
|
166
|
+
#
|
167
|
+
# @example
|
168
|
+
# ZendeskSupportAPI::Groups.delete(client, 123)
|
169
|
+
# #=> Group 123 has been deleted
|
170
|
+
|
171
|
+
def self.delete(client, gid)
|
172
|
+
res = client.request(:delete, "groups/#{gid}.json")
|
173
|
+
return "Deletion of #{gid} failed: #{res['error']}" if res['error']
|
174
|
+
|
175
|
+
"Group #{gid} has been deleted"
|
176
|
+
end
|
177
|
+
end
|
178
|
+
end
|
@@ -57,7 +57,7 @@ module ZendeskSupportAPI
|
|
57
57
|
#
|
58
58
|
# @example
|
59
59
|
# ZendeskSupportAPI::Users.all(client)
|
60
|
-
# #=> Grabbing users... / ...done
|
60
|
+
# #=> Grabbing users (total: 215336)... / ...done
|
61
61
|
# #=> {users:[{user1},{user2}...{user201520}]}
|
62
62
|
|
63
63
|
def self.all(client)
|
@@ -286,5 +286,32 @@ module ZendeskSupportAPI
|
|
286
286
|
|
287
287
|
"User #{id} suspended" if res['user']['suspended']
|
288
288
|
end
|
289
|
+
|
290
|
+
# Shows a users groups
|
291
|
+
#
|
292
|
+
# @param client [ZendeskSupportAPI::Client] The client instance to use
|
293
|
+
# @param uid [Integer] The User ID to use
|
294
|
+
# @return [Array]
|
295
|
+
#
|
296
|
+
# @example
|
297
|
+
# ZendeskSupportAPI::Users.groups(client, 1234)
|
298
|
+
# #=> [
|
299
|
+
# #=> {
|
300
|
+
# #=> "name": "DJs",
|
301
|
+
# #=> "created_at": "2009-05-13T00:07:08Z",
|
302
|
+
# #=> "updated_at": "2011-07-22T00:11:12Z",
|
303
|
+
# #=> "id": 211
|
304
|
+
# #=> },
|
305
|
+
# #=> {
|
306
|
+
# #=> "name": "MCs",
|
307
|
+
# #=> "created_at": "2009-08-26T00:07:08Z",
|
308
|
+
# #=> "updated_at": "2010-05-13T00:07:08Z",
|
309
|
+
# #=> "id": 122
|
310
|
+
# #=> }
|
311
|
+
# #=> ]
|
312
|
+
|
313
|
+
def self.groups(client, uid)
|
314
|
+
client.request(:get, "users/#{uid}/groups.json")['groups']
|
315
|
+
end
|
289
316
|
end
|
290
317
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zendesk_support_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jason Colyer
|
@@ -53,6 +53,7 @@ files:
|
|
53
53
|
- README.md
|
54
54
|
- lib/zendesk_support_api.rb
|
55
55
|
- lib/zendesk_support_api/client.rb
|
56
|
+
- lib/zendesk_support_api/groups.rb
|
56
57
|
- lib/zendesk_support_api/jobs.rb
|
57
58
|
- lib/zendesk_support_api/search.rb
|
58
59
|
- lib/zendesk_support_api/users.rb
|