mirror of
https://github.com/lingble/chatwoot.git
synced 2025-11-02 03:57:52 +00:00
31 lines
730 B
Ruby
31 lines
730 B
Ruby
class Integrations::GoogleTranslate::ProcessorService
|
|
pattr_initialize [:message!, :target_language!]
|
|
|
|
def perform
|
|
return if message.content.blank?
|
|
return if hook.blank?
|
|
|
|
response = client.translate_text(
|
|
contents: [message.content],
|
|
target_language_code: target_language,
|
|
parent: "projects/#{hook.settings['project_id']}"
|
|
)
|
|
|
|
return if response.translations.first.blank?
|
|
|
|
response.translations.first.translated_text
|
|
end
|
|
|
|
private
|
|
|
|
def hook
|
|
@hook ||= message.account.hooks.find_by(app_id: 'google_translate')
|
|
end
|
|
|
|
def client
|
|
@client ||= Google::Cloud::Translate.translation_service do |config|
|
|
config.credentials = hook.settings['credentials']
|
|
end
|
|
end
|
|
end
|