Class: Readiness::Zendesk::DynamicContentVariants

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

Overview

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

Author:

  • Jason Colyer

Since:

  • 1.0.73

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

Examples:

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

Parameters:

Author:

  • Jason Colyer

Since:

  • 1.0.73



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

def initialize(object = {})
  @active = object['active']
  @content = object['content']
  @default = object['default']
  @id = object['id']
  @locale_id = object['locale_id']
  @outdated = object['outdated']
end

Instance Attribute Details

#activeObject

Since:

  • 1.0.73



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

def active
  @active
end

#contentObject

Since:

  • 1.0.73



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

def content
  @content
end

#defaultObject

Since:

  • 1.0.73



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

def default
  @default
end

#idObject

Since:

  • 1.0.73



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

def id
  @id
end

#locale_idObject

Since:

  • 1.0.73



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

def locale_id
  @locale_id
end

#outdatedObject

Since:

  • 1.0.73



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

def outdated
  @outdated
end

Class Method Details

.create!(client, dynamic_content, variant) ⇒ Object

Creates a dynamic content item variant within Zendesk. 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)
content = Readiness::Zendesk::DynamicContent.find!(client, 8)
variant = Readiness::Zendesk::DyanmicContentVariants.new
variant.content = 'Ciao'
variant.default = true
variant.locale_id = 26
create = Readiness::Zendesk::DynamicContentVariants.create!(client, content, variant)
pp create.id
# => 123456

Parameters:

Returns:

  • (Object)

See Also:

Author:

  • Jason Colyer

Since:

  • 1.0.73



139
140
141
142
143
# File 'lib/support_readiness/zendesk/dynamic_content_variants.rb', line 139

def self.create!(client, dynamic_content, variant)
  response = client.connection.post "dynamic_content/items/#{dynamic_content.id}/variants/", to_clean_json_with_key(variant, 'variant')
  handle_request_error(1, 'Zendesk', response.status, { action: 'Create variant', message: Oj.load(response.body)}) unless response.status == 201
  DynamicContentVariants.new(Oj.load(response.body)['variant'])
end

.create_many!(client, dynamic_content, variants) ⇒ Object

Creates many dynamic content item variant within Zendesk. 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)
content = Readiness::Zendesk::DynamicContent.find!(client, 8)
variant1 = Readiness::Zendesk::DyanmicContentVariants.new
variant1.content = 'Ciao'
variant1.default = false
variant1.locale_id = 26
variant2 = Readiness::Zendesk::DyanmicContentVariants.new
variant2.content = 'Bonjour'
variant2.default = false
variant2.locale_id = 27
creates = Readiness::Zendesk::DynamicContentVariants.create_many!(client, content, [variant1, variant2])
pp creates.map { |c| c.id }
# => [123455, 123456]

Parameters:

Returns:

  • (Object)

See Also:

Author:

  • Jason Colyer

Since:

  • 1.0.73



174
175
176
177
178
179
# File 'lib/support_readiness/zendesk/dynamic_content_variants.rb', line 174

def self.create_many!(client, dynamic_content, variants)
  data = { variants: variants.map { |t| to_hash(t).compact } }.to_json
  response = client.connection.put("dynamic_content/items/#{dynamic_content.id}/variants/create_many", data)
  handle_request_error(1, 'Zendesk', response.status, { action: 'Create many variants', message: Oj.load(response.body)}) unless response.status == 201
  Oj.load(response.body)['variants'].map { |v| DynamicContentVariants.new(v) }
end

.delete!(client, dynamic_content, variant) ⇒ Boolean

Deletes a dynamic content item variant within Zendesk. 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)
content = Readiness::Zendesk::DynamicContent.find!(client, 8)
variant = Readiness::Zendesk::DynamicContentVariants.find!(client, content, 123456)
delete = Readiness::Zendesk::DynamicContentVariants.delete!(client, content, variant)
pp delete
# => true

Parameters:

Returns:

  • (Boolean)

See Also:

Author:

  • Jason Colyer

Since:

  • 1.0.73



266
267
268
269
270
# File 'lib/support_readiness/zendesk/dynamic_content_variants.rb', line 266

def self.delete!(client, dynamic_content, variant)
  response = client.connection.delete "dynamic_content/items/#{dynamic_content.id}/variants/#{variant.id}"
  handle_request_error(1, 'Zendesk', response.status, { action: 'Delete a dynamic content variant', id: variant.id, message: Oj.load(response.body)}) unless response.status == 204
  true
end

.find(client, dynamic_content, vid) ⇒ Hash

Locates a dynamic content item variant 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)
content = Readiness::Zendesk::DynamicContent.find!(client, 8)
variant = Readiness::Zendesk::DynamicContentVariants.find(client, content, 123456)
pp variant.content
# => "Bonjour"

Parameters:

Returns:

  • (Hash)

See Also:

Author:

  • Jason Colyer

Since:

  • 1.0.73



79
80
81
82
83
84
85
# File 'lib/support_readiness/zendesk/dynamic_content_variants.rb', line 79

def self.find(client, dynamic_content, vid)
  response = client.connection.get("dynamic_content/items/#{dynamic_content.id}/variants/#{vid}")
  handle_request_error(0, 'Zendesk', response.status,  { action: 'get', id: vid }) unless response.status == 200
  return DynamicContentVariants.new(Oj.load(response.body)['variant']) if response.status == 200

  Oj.load(response.body)
end

.find!(client, dynamic_content, vid) ⇒ Hash

Locates a dynamic content item variant 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)
content = Readiness::Zendesk::DynamicContent.find!(client, 8)
variant = Readiness::Zendesk::DynamicContentVariants.find!(client, content, 123456)
pp variant.content
# => "Bonjour"

Parameters:

Returns:

  • (Hash)

See Also:

Author:

  • Jason Colyer

Since:

  • 1.0.73



108
109
110
111
112
# File 'lib/support_readiness/zendesk/dynamic_content_variants.rb', line 108

def self.find!(client, dynamic_content, vid)
  response = client.connection.get("dynamic_content/items/#{dynamic_content.id}/variants/#{vid}")
  handle_request_error(1, 'Zendesk', response.status, { action: 'Find dynamic content variant', id: vid }) unless response.status == 200
  DynamicContentVariants.new(Oj.load(response.body)['variant'])
end

.list(client, dynamic_content) ⇒ Array

Lists dynamic content variants.

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)
items = Readiness::Zendesk::DynamicContent.list(client)
pp items.first.id
# => 47

Parameters:

  • client (Object)

    An instance of Client

Returns:

  • (Array)

See Also:

Author:

  • Jason Colyer

Since:

  • 1.0.73



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

def self.list(client, dynamic_content)
  response = client.connection.get("dynamic_content/items/#{dynamic_content.id}/variants")
  handle_request_error(0, 'Zendesk', response.status) unless response.status == 200
  body = Oj.load(response.body)
  body['variants'].map { |v| DynamicContentVariants.new(v) }
end

.update!(client, dynamic_content, variant) ⇒ Object

Updates a dynamic content item variant within Zendesk. 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)
content = Readiness::Zendesk::DynamicContent.find!(client, 8)
variant = Readiness::Zendesk::DyanmicContentVariants.find!(client, 123456)
variant.content = 'Ciao!'
variant.default = true
variant.locale_id = 26
update = Readiness::Zendesk::DynamicContentVariants.update!(client, content, variant)
pp update.content
# => "Ciao!"

Parameters:

Returns:

  • (Object)

See Also:

Author:

  • Jason Colyer

Since:

  • 1.0.73



206
207
208
209
210
# File 'lib/support_readiness/zendesk/dynamic_content_variants.rb', line 206

def self.update!(client, dynamic_content, variant)
  response = client.connection.put "dynamic_content/items/#{dynamic_content.id}/variants/#{variant.id}", to_clean_json_with_key(variant, 'variant')
  handle_request_error(1, 'Zendesk', response.status, { action: 'Update dynamic content variant', id: variant.id, message: Oj.load(response.body)}) unless response.status == 200
  DynamicContentVariants.new(Oj.load(response.body)['variant'])
end

.update_many!(client, dynamic_content, variants) ⇒ Array

Updates amanydynamic content item variants within Zendesk. 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)
content = Readiness::Zendesk::DynamicContent.find!(client, 8)
variant1 = Readiness::Zendesk::DyanmicContentVariants.find!(client, 123456)
variant1.content = 'Ciao!'
variant2 = Readiness::Zendesk::DyanmicContentVariants.find!(client, 123455)
variant2.content = 'Bonjour!'
updates = Readiness::Zendesk::DynamicContentVariants.update_many!(client, content, [variant1, variant2])
pp updates.map { u| u.content }
# => ["Ciao!", "Bonjour!"]

Parameters:

Returns:

  • (Array)

See Also:

Author:

  • Jason Colyer

Since:

  • 1.0.73



237
238
239
240
241
242
# File 'lib/support_readiness/zendesk/dynamic_content_variants.rb', line 237

def self.update_many!(client, dynamic_content, variants)
  data = { variants: variants.map { |t| to_hash(t).compact } }.to_json
  response = client.connection.put("dynamic_content/items/#{dynamic_content.id}/variants/update_many", data)
  handle_request_error(1, 'Zendesk', response.status, { action: 'Update many variants', message: Oj.load(response.body)}) unless response.status == 200
  Oj.load(response.body)['variants'].map { |v| DynamicContentVariants.new(v) }
end