@@ -6,11 +6,13 @@ defmodule ChromeRemoteInterface.HTTP do
66 @ type success_http_response :: { :ok , Map . t ( ) }
77 @ type error_http_response :: { :error , any ( ) }
88
9- @ spec call ( ChromeRemoteInterface.Server . t ( ) , String . t ( ) ) ::
9+ @ spec call ( ChromeRemoteInterface.Server . t ( ) , String . t ( ) , method: :get | :put ) ::
1010 success_http_response | error_http_response
11- def call ( server , path ) do
11+ def call ( server , path , opts \\ [ ] ) do
12+ method = Keyword . get ( opts , :method , :get )
13+
1214 server
13- |> execute_request ( path )
15+ |> execute_request ( method , path )
1416 |> handle_response ( )
1517 end
1618
@@ -22,8 +24,8 @@ defmodule ChromeRemoteInterface.HTTP do
2224 "http://#{ server . host } :#{ server . port } #{ path } "
2325 end
2426
25- defp execute_request ( server , path ) do
26- :hackney . request ( :get , http_url ( server , path ) , [ ] , << >> , path_encode_fun: & & 1 )
27+ defp execute_request ( server , method , path ) when method in [ :get , :put ] do
28+ :hackney . request ( method , http_url ( server , path ) , [ ] , << >> , path_encode_fun: & & 1 )
2729 end
2830
2931 defp handle_response ( { :ok , status_code , _response_headers , client_ref } ) do
0 commit comments