Class: Translator::Smartling::API::FileUris

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

Instance Method Summary collapse

Methods included from Base

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

Constructor Details

#initialize(project_id:, token:) ⇒ FileUris

Returns a new instance of FileUris.



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

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

Instance Method Details

#build_requestObject



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

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

#format_dateObject



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

def format_date
  DateTime.parse(1.week.ago.to_s).iso8601.to_s
end

#headersObject



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

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

#return_valueObject



36
37
38
# File 'lib/nexmo_developer/app/services/translator/smartling/api/file_uris.rb', line 36

def return_value
  @return_value ||= response_body['response']['data']['items'].map { |item| item['fileUri'] }
end

#success?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/nexmo_developer/app/services/translator/smartling/api/file_uris.rb', line 32

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

#to_sObject



40
41
42
# File 'lib/nexmo_developer/app/services/translator/smartling/api/file_uris.rb', line 40

def to_s
  return_value.join("\n").prepend("\n")
end

#uriObject



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

def uri
  @uri ||= begin
    uri = URI("https://api.smartling.com/published-files-api/v2/projects/#{@project_id}/files/list/recently-published")
    uri.query = URI.encode_www_form({ 'publishedAfter' => format_date })
    uri
  end
end