This module is used in a callback model and in charge of
- extracting resources associated from RemoteTranslation and preparing
its fields to be sent to the MicrosoftTranslateClient thought DelayedJobs
- receive the response from MicrosoftTranslateClient and update resource
with his translates
Co-authored-by: javierm <elretirao@gmail.com>
22 lines
693 B
Ruby
22 lines
693 B
Ruby
class RemoteTranslation < ApplicationRecord
|
|
|
|
belongs_to :remote_translatable, polymorphic: true
|
|
|
|
validates :remote_translatable_id, presence: true
|
|
validates :remote_translatable_type, presence: true
|
|
validates :locale, presence: true
|
|
|
|
after_create :enqueue_remote_translation
|
|
|
|
def enqueue_remote_translation
|
|
RemoteTranslationsCaller.new(self).delay.call
|
|
end
|
|
|
|
def self.remote_translation_enqueued?(remote_translation)
|
|
where(remote_translatable_id: remote_translation["remote_translatable_id"],
|
|
remote_translatable_type: remote_translation["remote_translatable_type"],
|
|
locale: remote_translation["locale"],
|
|
error_message: nil).any?
|
|
end
|
|
end
|