Packages

Elixir implementation of Algolia Search API

Current section

Files

Jump to
algolia_ex lib algolia middleware retry.ex
Raw

lib/algolia/middleware/retry.ex

defmodule Algolia.Middleware.Retry do
@behaviour Tesla.Middleware
@impl Tesla.Middleware
def call(env, next, _opts) do
curr_retry = 0
retry(env, next, curr_retry)
end
defp retry(_env, _next, 4) do
{:error, {"Unable to connect to Algolia", 4}}
end
defp retry(env, next, curr_retry) do
opts = Keyword.put(env.opts || [], :curr_retry, curr_retry)
with {:error, _} <- Tesla.run(%{env | opts: opts}, next) do
retry(env, next, curr_retry + 1)
end
end
end