1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
let v = match Sys.getenv_opt "EZAPICLIENT" with
| Some "true" -> ref 7
| Some x ->
begin match int_of_string_opt x with
| None -> ref 0
| Some i -> ref i
end
| _ -> ref 0
let callback = ref (fun (_ : int) -> ())
let set_verbose i =
v := i;
!callback i
let log ?(meth="GET") url = function
| None -> if !v <> 0 then Format.eprintf "[ez_api] %s %s@." meth url
| Some msg -> Format.eprintf "[>%s %s %s]" msg meth url
let request ?msg ?meth ?content ?(=[]) url =
log ?meth url msg;
(if !v land 4 <> 0 then
Format.printf "[ez_api] headers\n %s@." @@
String.concat "\n " @@ List.map (fun (k, v) -> k ^ " : " ^ v) headers);
if !v land 2 <> 0 then match content with
| Some s when s <> "" -> Format.printf "[ez_api] sent:\n%s@." s
| _ -> ()
let response ?msg ~code ~content url =
log ~meth:("RECV " ^ string_of_int code) url msg;
if !v land 1 <> 0 && content <> "" then Format.printf "[ez_api] received:\n%s@." content