forked from AkkomaGang/akkoma
unnecessary with
This commit is contained in:
parent
d0e4d3ca3b
commit
05429730e4
1 changed files with 26 additions and 25 deletions
|
@ -55,33 +55,36 @@ def post(url, body, headers \\ [], options \\ []),
|
||||||
@spec request(atom(), Request.url(), String.t(), Request.headers(), keyword()) ::
|
@spec request(atom(), Request.url(), String.t(), Request.headers(), keyword()) ::
|
||||||
{:ok, Env.t()} | {:error, any()}
|
{:ok, Env.t()} | {:error, any()}
|
||||||
def request(method, url, body, headers, options) when is_binary(url) do
|
def request(method, url, body, headers, options) when is_binary(url) do
|
||||||
with uri <- URI.parse(url),
|
uri = URI.parse(url)
|
||||||
received_adapter_opts <- Keyword.get(options, :adapter, []),
|
received_adapter_opts = Keyword.get(options, :adapter, [])
|
||||||
adapter_opts <- Connection.options(uri, received_adapter_opts),
|
adapter_opts = Connection.options(uri, received_adapter_opts)
|
||||||
options <- put_in(options[:adapter], adapter_opts),
|
options = put_in(options[:adapter], adapter_opts)
|
||||||
params <- Keyword.get(options, :params, []),
|
params = Keyword.get(options, :params, [])
|
||||||
request <- build_request(method, headers, options, url, body, params),
|
request = build_request(method, headers, options, url, body, params)
|
||||||
client <- Tesla.client([Tesla.Middleware.FollowRedirects], tesla_adapter()),
|
|
||||||
pid <- Process.whereis(adapter_opts[:pool]) do
|
|
||||||
pool_alive? =
|
|
||||||
if tesla_adapter() == Tesla.Adapter.Gun && pid do
|
|
||||||
Process.alive?(pid)
|
|
||||||
else
|
|
||||||
false
|
|
||||||
end
|
|
||||||
|
|
||||||
request_opts =
|
adapter = Application.get_env(:tesla, :adapter)
|
||||||
adapter_opts
|
client = Tesla.client([Tesla.Middleware.FollowRedirects], adapter)
|
||||||
|> Enum.into(%{})
|
|
||||||
|> Map.put(:env, Pleroma.Config.get([:env]))
|
|
||||||
|> Map.put(:pool_alive?, pool_alive?)
|
|
||||||
|
|
||||||
response = request(client, request, request_opts)
|
pid = Process.whereis(adapter_opts[:pool])
|
||||||
|
|
||||||
Connection.after_request(adapter_opts)
|
pool_alive? =
|
||||||
|
if adapter == Tesla.Adapter.Gun && pid do
|
||||||
|
Process.alive?(pid)
|
||||||
|
else
|
||||||
|
false
|
||||||
|
end
|
||||||
|
|
||||||
response
|
request_opts =
|
||||||
end
|
adapter_opts
|
||||||
|
|> Enum.into(%{})
|
||||||
|
|> Map.put(:env, Pleroma.Config.get([:env]))
|
||||||
|
|> Map.put(:pool_alive?, pool_alive?)
|
||||||
|
|
||||||
|
response = request(client, request, request_opts)
|
||||||
|
|
||||||
|
Connection.after_request(adapter_opts)
|
||||||
|
|
||||||
|
response
|
||||||
end
|
end
|
||||||
|
|
||||||
@spec request(Client.t(), keyword(), map()) :: {:ok, Env.t()} | {:error, any()}
|
@spec request(Client.t(), keyword(), map()) :: {:ok, Env.t()} | {:error, any()}
|
||||||
|
@ -138,6 +141,4 @@ defp build_request(method, headers, options, url, body, params) do
|
||||||
|> Builder.add_param(:query, :query, params)
|
|> Builder.add_param(:query, :query, params)
|
||||||
|> Builder.convert_to_keyword()
|
|> Builder.convert_to_keyword()
|
||||||
end
|
end
|
||||||
|
|
||||||
defp tesla_adapter, do: Application.get_env(:tesla, :adapter)
|
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue