Class: Readiness::Zendesk::Roles

Inherits:
Client
  • Object
show all
Defined in:
lib/support_readiness/zendesk/roles.rb

Overview

Defines the class Roles within the module Readiness::Zendesk.

Author:

  • Jason Colyer

Since:

  • 1.0.0

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

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 = {}) ⇒ Roles

Creates a new Readiness::Zendesk::Roles instance

Examples:

require 'support_readiness'
Readiness::Zendesk::Roles.new

Parameters:

Author:

  • Jason Colyer

Since:

  • 1.0.0



24
25
26
27
28
29
30
31
# File 'lib/support_readiness/zendesk/roles.rb', line 24

def initialize(object = {})
  @configuration = object['configuration']
  @description = object['description']
  @id = object['id']
  @name = object['name']
  @role_type = object['role_type']
  @team_member_count = object['team_member_count']
end

Instance Attribute Details

#configurationObject

Since:

  • 1.0.0



13
14
15
# File 'lib/support_readiness/zendesk/roles.rb', line 13

def configuration
  @configuration
end

#descriptionObject

Since:

  • 1.0.0



13
14
15
# File 'lib/support_readiness/zendesk/roles.rb', line 13

def description
  @description
end

#idObject

Since:

  • 1.0.0



13
14
15
# File 'lib/support_readiness/zendesk/roles.rb', line 13

def id
  @id
end

#nameObject

Since:

  • 1.0.0



13
14
15
# File 'lib/support_readiness/zendesk/roles.rb', line 13

def name
  @name
end

#role_typeObject

Since:

  • 1.0.0



13
14
15
# File 'lib/support_readiness/zendesk/roles.rb', line 13

def role_type
  @role_type
end

#team_member_countObject

Since:

  • 1.0.0



13
14
15
# File 'lib/support_readiness/zendesk/roles.rb', line 13

def team_member_count
  @team_member_count
end

Class Method Details

.create!(client, role) ⇒ Object

Creates a Custom Role. Will exit if unsuccessful

Examples:

require 'support_readiness'
config = Readiness::Zendesk::Configuration.new
config.username = 'alice@example.com'
config.token = 'test123abc'
config.url = 'https://example.zendesk.com/api/v2'
client = Readiness::Zendesk::Client.new(config)
orig_role = Readiness::Zendesk::Roles.find!(client, 10127)
new_role = Readiness::Zendesk::Roles.new
new_role.configuration = orig_role.configuration
new_role.configuration['explore_access'] = 'edit'
new_role.description = 'sample description'
new_role.name = 'sample role'
create = Readiness::Zendesk::Roles.create!(client, new_role)
pp create.id
# => 10127

Parameters:

Returns:

See Also:

Author:

  • Jason Colyer

Since:

  • 1.0.0



134
135
136
137
138
# File 'lib/support_readiness/zendesk/roles.rb', line 134

def self.create!(client, role)
  response = client.connection.post 'custom_roles/', to_clean_json_with_key(role, 'custom_role')
  handle_request_error(1, 'Zendesk', response.status, { action: 'Create Custom Role', message: Oj.load(response.body)}) unless response.status == 201
  Roles.new(Oj.load(response.body)['custom_role'])
end

.delete!(client, role) ⇒ Boolean

Deletes a Custom Role. Will exit if unsuccessful

Examples:

require 'support_readiness'
config = Readiness::Zendesk::Configuration.new
config.username = 'alice@example.com'
config.token = 'test123abc'
config.url = 'https://example.zendesk.com/api/v2'
client = Readiness::Zendesk::Client.new(config)
role = Readiness::Zendesk::Roles.find!(client, 10127)
delete = Readiness::Zendesk::Roles.delete!(client, role)
pp delete
# => true

Parameters:

Returns:

  • (Boolean)

See Also:

Author:

  • Jason Colyer

Since:

  • 1.0.0



187
188
189
190
191
# File 'lib/support_readiness/zendesk/roles.rb', line 187

def self.delete!(client, role)
  response = client.connection.delete "custom_roles/#{role.id}"
  handle_request_error(1, 'Zendesk', response.status, { action: 'Delete a Custom Role', id: role.id, message: Oj.load(response.body)}) unless response.status == 204
  true
end

.find(client, rid) ⇒ Hash

Locates a Custom Role within Zendesk. This will not exit on error (except Authentication errors)

Examples:

require 'support_readiness'
config = Readiness::Zendesk::Configuration.new
config.username = 'alice@example.com'
config.token = 'test123abc'
config.url = 'https://example.zendesk.com/api/v2'
client = Readiness::Zendesk::Client.new(config)
role = Readiness::Zendesk::Roles.find(client, 10127)
pp role.team_member_count
# => 10

Parameters:

  • client (Object)

    An instance of Client

  • rid (Integer)

    The Custom Role ID to find

Returns:

  • (Hash)

See Also:

Author:

  • Jason Colyer

Since:

  • 1.0.0



76
77
78
79
80
81
82
# File 'lib/support_readiness/zendesk/roles.rb', line 76

def self.find(client, rid)
  response = client.connection.get("custom_roles/#{rid}")
  handle_request_error(0, 'Zendesk', response.status,  { action: 'get', id: rid }) unless response.status == 200
  return Roles.new(Oj.load(response.body)['custom_role']) if response.status == 200

  Oj.load(response.body)
end

.find!(client, rid) ⇒ Object

Locates a Custom Role within within Zendesk. This will exit on error

Examples:

require 'support_readiness'
config = Readiness::Zendesk::Configuration.new
config.username = 'alice@example.com'
config.token = 'test123abc'
config.url = 'https://example.zendesk.com/api/v2'
client = Readiness::Zendesk::Client.new(config)
role = Readiness::Zendesk::Roles.find!(client, 10127)
pp role.team_member_count
# => 10

Parameters:

  • client (Object)

    An instance of Client

  • rid (Integer)

    The Custom Role ID to find

Returns:

See Also:

Author:

  • Jason Colyer

Since:

  • 1.0.0



103
104
105
106
107
# File 'lib/support_readiness/zendesk/roles.rb', line 103

def self.find!(client, rid)
  response = client.connection.get("custom_roles/#{rid}")
  handle_request_error(1, 'Zendesk', response.status, { action: 'Find Custom Role', id: rid }) unless response.status == 200
  Roles.new(Oj.load(response.body)['custom_role'])
end

.list(client) ⇒ Array

Lists the Custom Roles

Examples:

require 'support_readiness'
config = Readiness::Zendesk::Configuration.new
config.username = 'alice@example.com'
config.token = 'test123abc'
config.url = 'https://example.zendesk.com/api/v2'
client = Readiness::Zendesk::Client.new(config)
roles = Readiness::Zendesk::Roles.list(client)
pp roles.first.configuration['end_user_profile_access']
# => "readonly"

Parameters:

  • client (Object)

    An instance of Client

Returns:

  • (Array)

See Also:

Author:

  • Jason Colyer

Since:

  • 1.0.0



51
52
53
54
55
# File 'lib/support_readiness/zendesk/roles.rb', line 51

def self.list(client)
  response = client.connection.get('custom_roles/')
  handle_request_error(0, 'Zendesk', response.status) unless response.status == 200
  Oj.load(response.body)['custom_roles'].map { |s| Roles.new(s) }
end

.update!(client, role) ⇒ Object

Updates a Custom Role. Will exit if unsuccessful

Examples:

require 'support_readiness'
config = Readiness::Zendesk::Configuration.new
config.username = 'alice@example.com'
config.token = 'test123abc'
config.url = 'https://example.zendesk.com/api/v2'
client = Readiness::Zendesk::Client.new(config)
role = Readiness::Zendesk::Roles.find!(client, 10127)
role.configuration['explore_access'] = 'edit'
update = Readiness::Zendesk::Roles.update!(client, role)
pp update.configuration['explore_access']
# => "edit"

Parameters:

Returns:

See Also:

Author:

  • Jason Colyer

Since:

  • 1.0.0



161
162
163
164
165
# File 'lib/support_readiness/zendesk/roles.rb', line 161

def self.update!(client, role)
  response = client.connection.put "custom_roles/#{role.id}", to_clean_json_with_key(role, 'custom_role')
  handle_request_error(1, 'Zendesk', response.status, { action: 'Update Custom Role', id: role.id, message: Oj.load(response.body)}) unless response.status == 200
  Roles.new(Oj.load(response.body)['custom_role'])
end