Class: Opener::ChainedDaemon::MicrosoftTranslator

Inherits:
Object
  • Object
show all
Defined in:
lib/opener/chained_daemon/microsoft_translator.rb

Constant Summary collapse

URL =
'https://api.cognitive.microsofttranslator.com/translate?api-version=3.0&to=%{to}'
TOKEN =
ENV['MICROSOFT_TRANSLATE_TOKEN']

Instance Method Summary collapse

Constructor Details

#initializeMicrosoftTranslator

Returns a new instance of MicrosoftTranslator.



8
9
10
# File 'lib/opener/chained_daemon/microsoft_translator.rb', line 8

def initialize
  @http = HTTPClient.new
end

Instance Method Details

#translate(text, to: :en) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/opener/chained_daemon/microsoft_translator.rb', line 12

def translate text, to: :en
  url  = URL % {to: to}
  resp = @http.post url,
    body:   [{Text: text}].to_json,
    header: {'Ocp-Apim-Subscription-Key' => TOKEN, 'Content-Type' => 'application/json'}

  data = JSON.parse resp.body
  raise data['error']['message'] if data.is_a? Hash and data['error']

  data = Hashie::Mash.new data[0]
  data&.translations&.first&.text
end