Class: Translator::Smartling::API::FileStatus

Inherits:
Object
  • Object
show all
Includes:
Base
Defined in:
lib/nexmo_developer/app/services/translator/smartling/api/file_status.rb

Instance Method Summary collapse

Methods included from Base

#call, #cleanup, #error, included, #make_request!, #response_body

Constructor Details

#initialize(project_id:, file_uri:, token:) ⇒ FileStatus

Returns a new instance of FileStatus.



7
8
9
10
11
# File 'lib/nexmo_developer/app/services/translator/smartling/api/file_status.rb', line 7

def initialize(project_id:, file_uri:, token:)
  @project_id   = project_id
  @file_uri     = file_uri
  @token        = token
end

Instance Method Details

#build_requestObject



13
14
15
# File 'lib/nexmo_developer/app/services/translator/smartling/api/file_status.rb', line 13

def build_request
  Net::HTTP::Get.new(uri, headers)
end

#headersObject



17
18
19
# File 'lib/nexmo_developer/app/services/translator/smartling/api/file_status.rb', line 17

def headers
  { 'Authorization' => "Bearer #{@token}", 'Content-Type' => 'application/json' }
end

#return_valueObject



33
34
35
36
37
38
39
40
41
# File 'lib/nexmo_developer/app/services/translator/smartling/api/file_status.rb', line 33

def return_value
  @return_value ||= begin
    total_word_count = response_body['response']['data']['totalWordCount']
    total_string_count = response_body['response']['data']['totalStringCount']
    response_body['response']['data']['items'].map do |item|
      item['localeId'] if total_word_count == item['completedWordCount'] && total_string_count == item['completedStringCount']
    end.compact
  end
end

#success?Boolean

Returns:

  • (Boolean)


29
30
31
# File 'lib/nexmo_developer/app/services/translator/smartling/api/file_status.rb', line 29

def success?
  @response.code == '200'
end

#to_sObject



43
44
45
# File 'lib/nexmo_developer/app/services/translator/smartling/api/file_status.rb', line 43

def to_s
  "#{@file_uri} => #{return_value}"
end

#uriObject



21
22
23
24
25
26
27
# File 'lib/nexmo_developer/app/services/translator/smartling/api/file_status.rb', line 21

def uri
  @uri ||= begin
    uri = URI("https://api.smartling.com/files-api/v2/projects/#{@project_id}/file/status")
    uri.query = URI.encode_www_form({ 'fileUri' => @file_uri })
    uri
  end
end