Skip to content

Commit c04c9be

Browse files
committed
fix match errors in mint client
1 parent 5e3fe5f commit c04c9be

File tree

2 files changed

+31
-24
lines changed

2 files changed

+31
-24
lines changed

Diff for: lib/arangox/client/mint.ex

+30-23
Original file line numberDiff line numberDiff line change
@@ -70,30 +70,37 @@ if Code.ensure_compiled(Mint.HTTP) == {:module, Mint.HTTP} do
7070
%Request{method: method, path: path, headers: headers, body: body},
7171
%Connection{socket: socket} = state
7272
) do
73-
{:ok, conn, ref} =
74-
Mint.request(
75-
socket,
76-
method
77-
|> to_string()
78-
|> String.upcase(),
79-
path,
80-
Enum.into(headers, []),
81-
body
82-
)
83-
84-
case do_recv(conn, ref) do
85-
{:ok, new_conn, buffer} ->
86-
do_response(ref, buffer, %{state | socket: new_conn})
87-
88-
{:error, %_{state: :closed} = new_conn, _, ^ref} ->
89-
{:error, :noproc, %{state | socket: new_conn}}
90-
91-
{:error, new_conn, exception, ^ref} ->
92-
{:error, exception, %{state | socket: new_conn}}
73+
with(
74+
{:ok, new_socket, ref} <-
75+
Mint.request(
76+
socket,
77+
method
78+
|> to_string()
79+
|> String.upcase(),
80+
path,
81+
Enum.into(headers, []),
82+
body
83+
),
84+
{:ok, new_socket, buffer} <-
85+
do_recv(new_socket, ref)
86+
) do
87+
do_response(ref, buffer, %{state | socket: new_socket})
88+
else
89+
{:error, new_socket, %_{reason: :closed}} ->
90+
{:error, :noproc, %{state | socket: new_socket}}
91+
92+
{:error, new_socket, %_{reason: :closed}, _} ->
93+
{:error, :noproc, %{state | socket: new_socket}}
94+
95+
{:error, new_socket, exception} ->
96+
{:error, exception, %{state | socket: new_socket}}
97+
98+
{:error, new_socket, exception, _} ->
99+
{:error, exception, %{state | socket: new_socket}}
93100
end
94101
end
95102

96-
def do_recv(conn, ref, buffer \\ []) do
103+
defp do_recv(conn, ref, buffer \\ []) do
97104
case Mint.recv(conn, 0, :infinity) do
98105
{:ok, new_conn, next_buffer} ->
99106
if {:done, ref} in next_buffer do
@@ -102,12 +109,12 @@ if Code.ensure_compiled(Mint.HTTP) == {:module, Mint.HTTP} do
102109
do_recv(new_conn, ref, buffer ++ next_buffer)
103110
end
104111

105-
{:error, _, _, ^ref} = error ->
112+
{:error, _, _, _} = error ->
106113
error
107114
end
108115
end
109116

110-
def do_response(ref, buffer, state) do
117+
defp do_response(ref, buffer, state) do
111118
case buffer do
112119
[{:status, ^ref, status}, {:headers, ^ref, headers}, {:done, ^ref}] ->
113120
{:ok, %Response{status: status, headers: Map.new(headers)}, state}

Diff for: mix.exs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
defmodule Arangox.MixProject do
22
use Mix.Project
33

4-
@version "0.5.0"
4+
@version "0.5.1"
55
@description """
66
ArangoDB 3.3.9+ driver for Elixir with connection pooling, support for \
77
VelocyStream, active failover, transactions and streamed cursors.

0 commit comments

Comments
 (0)