From 41b98c2cb99e02415c9088881f9c1227ff1d5109 Mon Sep 17 00:00:00 2001 From: crova Date: Sat, 21 Aug 2021 15:15:50 +0200 Subject: [PATCH 1/2] Handle {:push_promise, request_ref(), promised_request_ref :: request_ref(), headers()} --- lib/tesla/adapter/mint.ex | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lib/tesla/adapter/mint.ex b/lib/tesla/adapter/mint.ex index d5889f5ac..a3c1bf1b6 100644 --- a/lib/tesla/adapter/mint.ex +++ b/lib/tesla/adapter/mint.ex @@ -326,17 +326,32 @@ if Code.ensure_loaded?(Mint.HTTP) do defp reduce_responses(responses, ref, acc) do Enum.reduce(responses, acc, fn + {:push_promise, ^ref, _promised_request_ref, _headers}, acc -> + acc + {:status, ^ref, code}, acc -> Map.put(acc, :status, code) + {:status, _promised_request_ref, _code}, acc -> + acc + {:headers, ^ref, headers}, acc -> Map.update(acc, :headers, headers, &(&1 ++ headers)) + {:headers, _promised_request_ref, _headers}, acc -> + acc + {:data, ^ref, data}, acc -> Map.update(acc, :data, data, &(&1 <> data)) + {:data, _promised_request_ref, _data}, acc -> + acc + {:done, ^ref}, acc -> Map.put(acc, :done, true) + + {:done, _promised_request_ref}, acc -> + acc end) end end From 2a528824151be0e6300e2fe481befdb266eb0fcc Mon Sep 17 00:00:00 2001 From: crova Date: Mon, 12 Aug 2024 14:28:47 -0300 Subject: [PATCH 2/2] Handle {:error, ref, error} Mint response. --- lib/tesla/adapter/mint.ex | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/tesla/adapter/mint.ex b/lib/tesla/adapter/mint.ex index ca6b63aca..1b5ca7581 100644 --- a/lib/tesla/adapter/mint.ex +++ b/lib/tesla/adapter/mint.ex @@ -337,6 +337,9 @@ if Code.ensure_loaded?(Mint.HTTP) do defp reduce_responses(responses, ref, acc) do Enum.reduce(responses, acc, fn + {:error, ^ref, _error}, acc -> + acc + {:push_promise, ^ref, _promised_request_ref, _headers}, acc -> acc