This commit is contained in:
Danil Negrienko 2020-06-30 07:30:23 +03:00
parent 9c24e1651b
commit bac33b304e

View File

@ -1,4 +1,5 @@
defmodule MicrosoftTranslator.Client do
@attempt_delay 3_000
@base_host "api.cognitive.microsofttranslator.com"
@base_path "/"
@api_methods %{
@ -103,12 +104,22 @@ defmodule MicrosoftTranslator.Client do
end)
end
def fetch(api_method, headers, body, params) do
def fetch(api_method, headers, body, params, attempt \\ 0) do
method = @api_methods[api_method].method
url = "https://#{@base_host}#{@base_path}#{@api_methods[api_method].path}#{params}"
{:ok, response} = Mojito.request(method, url, headers, body)
case Mojito.request(method, url, headers, body) do
{:ok, response} ->
response
response
{:error, %Mojito.Error{reason: :timeout} = response} ->
if attempt < 2 do
:timer.sleep(@attempt_delay)
IO.inspect(url, label: "Attempt #{attempt + 1}")
fetch(api_method, headers, body, params, attempt + 1)
else
response
end
end
end
end