Class: Readiness::Zendesk::Groups
- Defined in:
- lib/support_readiness/zendesk/groups.rb
Overview
Defines the class Groups within the module Readiness::Zendesk.
Instance Attribute Summary collapse
- #default ⇒ Object
- #deleted ⇒ Object
- #description ⇒ Object
- #id ⇒ Object
- #is_public ⇒ Object
- #name ⇒ Object
Class Method Summary collapse
-
.count(client) ⇒ Hash
Show information on the approximate count of groups.
-
.create!(client, group) ⇒ Object
Creates a group.
-
.delete!(client, group) ⇒ Boolean
Deletes a group.
-
.find(client, gid) ⇒ Hash
Locates a group within Zendesk.
-
.find!(client, gid) ⇒ Hash
Locates a group within Zendesk.
-
.find_by_name(client, name, cache = nil) ⇒ Object
Locates a group within Zendesk by name.
-
.list(client) ⇒ Array
Lists the first 100 groups.
-
.memberships(client, group) ⇒ Array
Lists the members of a group.
-
.update!(client, group) ⇒ Object
Updates a group.
Instance Method Summary collapse
-
#initialize(object = {}) ⇒ Groups
constructor
Creates a new Groups instance.
Methods inherited from Client
auth_error, bad_request_error, convert_actions, convert_conditions, convert_standard_names_to_ids, convert_ticket_form_agent_conditions, convert_ticket_form_brands, convert_ticket_form_end_user_conditions, convert_ticket_form_names_to_ids, convert_view_names_to_ids, convert_view_restrictions, covert_ticket_form_field_ids, create_package!, erb_renderer, handle_request_error, not_found_error, not_processible_error, put_into_archive, recursively_deflate_directory, timestamp_filename, to_clean_json, to_clean_json_with_key, to_hash, to_nearly_clean_json, to_nearly_clean_json_with_key, to_param_string, write_entries
Constructor Details
#initialize(object = {}) ⇒ Groups
Creates a new Readiness::Zendesk::Groups instance
24 25 26 27 28 29 30 31 |
# File 'lib/support_readiness/zendesk/groups.rb', line 24 def initialize(object = {}) @default = object['default'] @deleted = object['deleted'] @description = object['description'] @id = object['id'] @is_public = object['is_public'] @name = object['name'] end |
Instance Attribute Details
#default ⇒ Object
13 14 15 |
# File 'lib/support_readiness/zendesk/groups.rb', line 13 def default @default end |
#deleted ⇒ Object
13 14 15 |
# File 'lib/support_readiness/zendesk/groups.rb', line 13 def deleted @deleted end |
#description ⇒ Object
13 14 15 |
# File 'lib/support_readiness/zendesk/groups.rb', line 13 def description @description end |
#id ⇒ Object
13 14 15 |
# File 'lib/support_readiness/zendesk/groups.rb', line 13 def id @id end |
#is_public ⇒ Object
13 14 15 |
# File 'lib/support_readiness/zendesk/groups.rb', line 13 def is_public @is_public end |
#name ⇒ Object
13 14 15 |
# File 'lib/support_readiness/zendesk/groups.rb', line 13 def name @name end |
Class Method Details
.count(client) ⇒ Hash
Show information on the approximate count of groups.
75 76 77 78 79 |
# File 'lib/support_readiness/zendesk/groups.rb', line 75 def self.count(client) response = client.connection.get('groups/count') handle_request_error(0, 'Zendesk', response.status) unless response.status == 200 Oj.load(response.body)['count'] end |
.create!(client, group) ⇒ Object
Creates a group. Will exit if unsuccessful
182 183 184 185 186 |
# File 'lib/support_readiness/zendesk/groups.rb', line 182 def self.create!(client, group) response = client.connection.post 'groups', to_clean_json_with_key(group, 'group') handle_request_error(1, 'Zendesk', response.status, { action: 'Create group', message: Oj.load(response.body)}) unless response.status == 201 Groups.new(Oj.load(response.body)['group']) end |
.delete!(client, group) ⇒ Boolean
Deletes a group. Will exit if unsuccessful
235 236 237 238 239 |
# File 'lib/support_readiness/zendesk/groups.rb', line 235 def self.delete!(client, group) response = client.connection.delete "groups/#{group.id}" handle_request_error(1, 'Zendesk', response.status, { action: 'Delete an group', id: group.id, message: Oj.load(response.body)}) unless response.status == 204 true end |
.find(client, gid) ⇒ Hash
Locates a group within Zendesk. This will not exit on error (except Authentication errors)
100 101 102 103 104 105 106 |
# File 'lib/support_readiness/zendesk/groups.rb', line 100 def self.find(client, gid) response = client.connection.get("groups/#{gid}") handle_request_error(0, 'Zendesk', response.status, { action: 'get', id: gid }) unless response.status == 200 return Groups.new(Oj.load(response.body)['group']) if response.status == 200 Oj.load(response.body) end |
.find!(client, gid) ⇒ Hash
Locates a group within Zendesk. This will exit on error
127 128 129 130 131 |
# File 'lib/support_readiness/zendesk/groups.rb', line 127 def self.find!(client, gid) response = client.connection.get("groups/#{gid}") handle_request_error(1, 'Zendesk', response.status, { action: 'Find group', id: gid }) unless response.status == 200 Groups.new(Oj.load(response.body)['group']) end |
.find_by_name(client, name, cache = nil) ⇒ Object
Locates a group within Zendesk by name. Can utilize a cacheh for quicker results
152 153 154 155 156 157 158 159 |
# File 'lib/support_readiness/zendesk/groups.rb', line 152 def self.find_by_name(client, name, cache = nil) groups = if cache.nil? Groups.list(client) else cache end groups.detect { |f| f.name == name } end |
.list(client) ⇒ Array
Lists the first 100 groups
51 52 53 54 55 |
# File 'lib/support_readiness/zendesk/groups.rb', line 51 def self.list(client) response = client.connection.get("groups?page[size]=100") handle_request_error(0, 'Zendesk', response.status) unless response.status == 200 Oj.load(response.body)['groups'].map { |g| Groups.new(g) } end |
.memberships(client, group) ⇒ Array
Lists the members of a group
260 261 262 263 264 265 266 267 268 269 270 271 272 273 |
# File 'lib/support_readiness/zendesk/groups.rb', line 260 def self.memberships(client, group) array = [] opts = "page[size]=100" loop do response = client.connection.get("groups/#{group.id}/memberships?#{opts}") handle_request_error(0, 'Zendesk', response.status) unless response.status == 200 body = Oj.load(response.body) array += body['group_memberships'] break unless body['meta']['has_more'] opts = body['links'] ['next'].split('?').last end array end |
.update!(client, group) ⇒ Object
Updates a group. Will exit if unsuccessful
209 210 211 212 213 |
# File 'lib/support_readiness/zendesk/groups.rb', line 209 def self.update!(client, group) response = client.connection.put "groups/#{group.id}", to_clean_json_with_key(group, 'group') handle_request_error(1, 'Zendesk', response.status, { action: 'Update group', id: group.id, message: Oj.load(response.body)}) unless response.status == 200 Groups.new(Oj.load(response.body)['group']) end |