I have a translation_api.rb file, and one of the body inputs is a text input, which I isolate in a function & name 'ticket_description'. However, when I use this variable in my 'make_request' method, the value is nil, and therefore the API returns me an empty translation. How do I ensure that the value is carried over?
How do I best take the 'ticket_description' value and sub it into my API request?
translation_api.rb
module Ccenter
module Utils
class TranslationApi
attr_accessor :cc_message_id
include Service
InvalidResponseError = Class.new(StandardError)
def initialize(cc_message_id)
@cc_message_id = cc_message_id
end
def call
grab_de_message_text(cc_message_id)
make_request
end
private
def make_request
response = Faraday.post('https://api.deepl.com/v2/translate', auth_key: '', text: @ticket_description, target_lang: 'DE', source_lang: 'EN')
if response.status == 200
body = response.body
message_element = body.split('"')[-2]
return message_element
else
raise InvalidResponseError unless response.success?
end
end
def grab_de_message_text(cc_message_id)
ticket = Ccenter::Adapters::Zendesk::TicketBase.new(zendesk_id: @cc_message_id).zendesk_ticket
ticket_data = ticket.pretty_inspect
refined_data = ticket_data.split(" ")
ticket_description = refined_data.select { |word| word.include? 'description' }
@ticket_description = ticket_description
end
end
end
end
EDIT w/ further details of 'ticket'
ticket.class => ZendeskAPI::Ticket
#<ZendeskAPI::Ticket {"url"=>"https://-staging.zendesk.com/api/v2/tickets/2116450.json", "id"=>2116450, "external_id"=>nil, "via"=>{"channel"=>"email", "source"=>{"from"=>{"address"=>"xxxx@pairfinance.com", "name"=>"xxxx"}, "to"=>
{"name"=>"Pair Finance GmbH", "address"=>"support@pairfinance-staging.zendesk.com"}, "rel"=>nil}},
"created_at"=>2021-11-05 12:25:36 UTC, "updated_at"=>2021-11-12 11:09:33 UTC, "type"=>"incident", "subject"=>"Add Participant Check", "raw_subject"=>"Add Participant Check", "description"=>"Testing participant addition", "priority"=>nil, "status"=>"open", "recipient"=>"support@pairfinance-staging.zendesk.com", "requester_id"=>387320355880, "submitter_id"=>387320355880,
"assignee_id"=>2944262769, "organization_id"=>375908938920, "group_id"=>24802909, "collaborator_ids"=>[], "follower_ids"=>[], "email_cc_ids"=>[], "forum_topic_id"=>nil, "problem_id"=>nil, "has_incidents"=>false, "is_public"=>true, "due_at"=>nil, "tags"=>["creditor_test1", "not_matched"], "custom_fields"=>[#<ZendeskAPI::Trackie id=27262705 value="">, #<ZendeskAPI::Trackie id=360022581580 value="">, #<ZendeskAPI::Trackie id=360000824460 value=nil>, #<ZendeskAPI::Trackie id=45203605 value="">, #<ZendeskAPI::Trackie id=360000038229 value="">, #
<ZendeskAPI::Trackie id=360022718000 value="">, #<ZendeskAPI::Trackie id=360022689799 value="27">, #
<ZendeskAPI::Trackie id=360022840199 value="2021-11-12">, #<ZendeskAPI::Trackie id=1900000581074 value="0.0">, #<ZendeskAPI::Trackie id=360022823559 value="">, #
<ZendeskAPI::Trackie id=1900000642554 value=false>, #<ZendeskAPI::Trackie id=360022857519 value=nil>, #<ZendeskAPI::Trackie id=360022738860 value=nil>, #
<ZendeskAPI::Trackie id=1900000693194 value="">, #<ZendeskAPI::Trackie id=1900000768974 value=nil>, #<ZendeskAPI::Trackie id=360022886360 value=nil>, #<ZendeskAPI::Trackie id=1900000752094 value=nil>], "satisfaction_rating"=>nil, "sharing_agreement_ids"=>[], "fields"=>[#<ZendeskAPI::Trackie id=27262705 value="">, #<ZendeskAPI::Trackie id=360022581580 value="">, #<ZendeskAPI::Trackie id=360000824460 value=nil>, #<ZendeskAPI::Trackie id=45203605 value="">, #<ZendeskAPI::Trackie id=360000038229 value="">, #<ZendeskAPI::Trackie id=360022718000 value="">, #<ZendeskAPI::Trackie id=360022689799 value="27">, #<ZendeskAPI::Trackie id=360022840199 value="2021-11-12">, #<ZendeskAPI::Trackie id=1900000581074 value="0.0">, #<ZendeskAPI::Trackie id=360022823559 value="">, #<ZendeskAPI::Trackie id=1900000642554 value=false>, #<ZendeskAPI::Trackie id=360022857519 value=nil>, #<ZendeskAPI::Trackie id=360022738860 value=nil>, #<ZendeskAPI::Trackie id=1900000693194 value="">, #<ZendeskAPI::Trackie id=1900000768974 value=nil>, #<ZendeskAPI::Trackie id=360022886360 value=nil>, #<ZendeskAPI::Trackie id=1900000752094 value=nil>], "followup_ids"=>[], "brand_id"=>721889, "allow_channelback"=>false, "allow_attachments"=>true}>