class Translator::Smartling::API::UploadFile

Public Class Methods

new(translation_request:, project_id:, batch_id:, token:) click to toggle source
# File lib/nexmo_developer/app/services/translator/smartling/api/upload_file.rb, line 7
def initialize(translation_request:, project_id:, batch_id:, token:)
  @translation_request = translation_request
  @project_id          = project_id
  @batch_id            = batch_id
  @token               = token
end

Public Instance Methods

build_request() click to toggle source
# File lib/nexmo_developer/app/services/translator/smartling/api/upload_file.rb, line 14
def build_request
  request = Net::HTTP::Post.new(uri.path, headers)
  request.set_form form_data, 'multipart/form-data'
  request
end
cleanup() click to toggle source
# File lib/nexmo_developer/app/services/translator/smartling/api/upload_file.rb, line 49
def cleanup
  file.unlink
end
file() click to toggle source
# File lib/nexmo_developer/app/services/translator/smartling/api/upload_file.rb, line 53
def file
  @file ||= begin
    file = Tempfile.new
    file.write(
      Nexmo::Markdown::Pipelines::Smartling::Preprocessor.new.call(
        File.read(@translation_request.file_path)
      )
    )
    file.rewind
    file.close
    file
  end
end
form_data() click to toggle source
# File lib/nexmo_developer/app/services/translator/smartling/api/upload_file.rb, line 20
def form_data
  [
    ['file', File.open(file)],
    ['fileUri', @translation_request.file_uri],
    ['fileType', 'markdown'],
    ['localeIdsToAuthorize[]', @translation_request.locale],
  ]
end
headers() click to toggle source
# File lib/nexmo_developer/app/services/translator/smartling/api/upload_file.rb, line 45
def headers
  { 'Authorization' => "Bearer #{@token}" }
end
return_value() click to toggle source
# File lib/nexmo_developer/app/services/translator/smartling/api/upload_file.rb, line 37
def return_value
  @return_value ||= @translation_request.file_uri
end
success?() click to toggle source
# File lib/nexmo_developer/app/services/translator/smartling/api/upload_file.rb, line 29
def success?
  @response.code == '202'
end
to_s() click to toggle source
# File lib/nexmo_developer/app/services/translator/smartling/api/upload_file.rb, line 41
def to_s
  return_value
end
uri() click to toggle source
# File lib/nexmo_developer/app/services/translator/smartling/api/upload_file.rb, line 33
def uri
  @uri ||= URI("https://api.smartling.com/jobs-batch-api/v2/projects/#{@project_id}/batches/#{@batch_id}/file")
end