Class: Readiness::Salesforce::Cases

Inherits:
Client
  • Object
show all
Defined in:
lib/support_readiness/salesforce/cases.rb

Overview

Defines the class Cases within the module Readiness::Salesforce.

Author:

  • Jason Colyer

Since:

  • 1.0.12

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

Creates a new Readiness::Salesforce::Cases instance

Examples:

require 'support_readiness'
item = Readiness::Salesforce::Cases.new

Parameters:

Author:

  • Jason Colyer

Since:

  • 1.0.12



24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/support_readiness/salesforce/cases.rb', line 24

def initialize(object = {})
  @AccountId = object['AccountId']
  @Description = object['Description']
  @Id = object['Id']
  @OwnerId = object['OwnerId']
  @Priority = object['Priority']
  @RecordTypeId = object['RecordTypeId']
  @Status = object['Status']
  @Subject = object['Subject']
  @Zendesk_Support_Ticket_ID__c = object['Zendesk_Support_Ticket_ID__c']
  @Zendesk_Support_Ticket_Requester_Email__c = object['Zendesk_Support_Ticket_Requester_Email__c']
  @Zendesk_Support_Ticket_URL__c = object['Zendesk_Support_Ticket_URL__c']
end

Instance Attribute Details

#AccountIdObject

Since:

  • 1.0.12



13
14
15
# File 'lib/support_readiness/salesforce/cases.rb', line 13

def AccountId
  @AccountId
end

#DescriptionObject

Since:

  • 1.0.12



13
14
15
# File 'lib/support_readiness/salesforce/cases.rb', line 13

def Description
  @Description
end

#IdObject

Since:

  • 1.0.12



13
14
15
# File 'lib/support_readiness/salesforce/cases.rb', line 13

def Id
  @Id
end

#OwnerIdObject

Since:

  • 1.0.12



13
14
15
# File 'lib/support_readiness/salesforce/cases.rb', line 13

def OwnerId
  @OwnerId
end

#PriorityObject

Since:

  • 1.0.12



13
14
15
# File 'lib/support_readiness/salesforce/cases.rb', line 13

def Priority
  @Priority
end

#RecordTypeIdObject

Since:

  • 1.0.12



13
14
15
# File 'lib/support_readiness/salesforce/cases.rb', line 13

def RecordTypeId
  @RecordTypeId
end

#StatusObject

Since:

  • 1.0.12



13
14
15
# File 'lib/support_readiness/salesforce/cases.rb', line 13

def Status
  @Status
end

#SubjectObject

Since:

  • 1.0.12



13
14
15
# File 'lib/support_readiness/salesforce/cases.rb', line 13

def Subject
  @Subject
end

#Zendesk_Support_Ticket_ID__cObject

Since:

  • 1.0.12



13
14
15
# File 'lib/support_readiness/salesforce/cases.rb', line 13

def Zendesk_Support_Ticket_ID__c
  @Zendesk_Support_Ticket_ID__c
end

#Zendesk_Support_Ticket_Requester_Email__cObject

Since:

  • 1.0.12



13
14
15
# File 'lib/support_readiness/salesforce/cases.rb', line 13

def Zendesk_Support_Ticket_Requester_Email__c
  @Zendesk_Support_Ticket_Requester_Email__c
end

#Zendesk_Support_Ticket_URL__cObject

Since:

  • 1.0.12



13
14
15
# File 'lib/support_readiness/salesforce/cases.rb', line 13

def Zendesk_Support_Ticket_URL__c
  @Zendesk_Support_Ticket_URL__c
end

Class Method Details

.create!(client, object) ⇒ Boolean

Creates a Case in Salesforce. This will exit on error

returns case ID as String

Examples:

config = Readiness::Salesforce::Configuration.new
config.api_version = '58.0'
config.client_id = ENV.fetch('SFDC_CLIENTID')
config.client_secret = ENV.fetch('SFDC_CLIENTSECRET')
config.password = ENV.fetch('SFDC_PASSWORD')
config.security_token = ENV.fetch('SFDC_SECURITYTOKEN')
config.username = ENV.fetch('SFDC_USERNAME')
client = Readiness::Salesforce::Client.new(config)
item = Readiness::Salesforce::Cases.new
item.AccountId = '001ABC123'
item.Description = 'Test description'
item.Id = '500ABC123'
item.OwnerId = '0054ABC123'
item.Priority = 'Normal'
item.Status = 'Closed'
item.Subject = 'Test subject'
item.Zendesk_Support_Ticket_ID__c = '123456'
item.Zendesk_Support_Ticket_Requester_Email__c = 'alice@example.com'
item.Zendesk_Support_Ticket_URL__c = 'https://gitlab.zendesk.com/agent/tickets/123456'
pp Readiness::Salesforce::Cases.update!(client, item)
# => true

Parameters:

Returns:

  • (Boolean)

Author:

  • Jason Colyer

Since:

  • 1.0.12



69
70
71
# File 'lib/support_readiness/salesforce/cases.rb', line 69

def self.create!(client, object)
  client.connection.create!('Case', to_clean_json(object))
end

.update!(client, object) ⇒ Boolean

Updates a Case in Salesforce. This will exit on error

Examples:

config = Readiness::Salesforce::Configuration.new
config.api_version = '58.0'
config.client_id = ENV.fetch('SFDC_CLIENTID')
config.client_secret = ENV.fetch('SFDC_CLIENTSECRET')
config.password = ENV.fetch('SFDC_PASSWORD')
config.security_token = ENV.fetch('SFDC_SECURITYTOKEN')
config.username = ENV.fetch('SFDC_USERNAME')
client = Readiness::Salesforce::Client.new(config)
item = Readiness::Salesforce::Cases.new
item.AccountId = '001ABC123'
item.Description = 'Test description'
item.Id = '500ABC123'
item.OwnerId = '0054ABC123'
item.Priority = 'Normal'
item.RecordTypeId: '012123ABC'
item.Status = 'Closed'
item.Subject = 'Test subject'
item.Zendesk_Support_Ticket_ID__c = '123456'
item.Zendesk_Support_Ticket_Requester_Email__c = 'alice@example.com'
item.Zendesk_Support_Ticket_URL__c = 'https://gitlab.zendesk.com/agent/tickets/123456'
pp Readiness::Salesforce::Cases.update!(client, item)
# => true

Parameters:

Returns:

  • (Boolean)

Author:

  • Jason Colyer

Since:

  • 1.0.12



104
105
106
# File 'lib/support_readiness/salesforce/cases.rb', line 104

def self.update!(client, object)
  client.connection.update!('Case', to_hash(object))
end