1
- open Lwt . Infix ;
2
1
module Client = Piaf . Client . Oneshot ;
3
2
4
- let my_handler = (_request, _context ) => {
3
+ let my_handler = (_request, { Lambda_runtime . Context . sw , env , _} ) => {
5
4
let uri =
6
5
Uri . of_string(
7
6
"http://api.giphy.com/v1/gifs/random?tag=cat&api_key=hamBGlVDz0XI5tYtxTuPgudCVhHSNX8q&limit=1" ,
8
7
);
9
- Client . get(uri)
10
- >>= (
11
- fun
12
- | Ok (response ) => {
13
- Piaf . Body . to_string(response. body)
14
- >>= (
15
- fun
16
- | Ok (body_str ) => {
17
- open Yojson . Safe ;
18
- let body_json = Yojson . Safe . from_string(body_str);
19
- let img_url =
20
- body_json
21
- |> Util . member("data" )
22
- |> Util . member("images" )
23
- |> Util . member("original" )
24
- |> Util . member("url" )
25
- |> Util . to_string;
26
- let body = Printf . sprintf("<img src=\" % s \" >" , img_url);
27
- let response =
28
- Piaf . Response . of_string(
29
- ~body,
30
- ~headers=
31
- Piaf . Headers . of_list([ ("content-type" , "text/html" )] ),
32
- ` OK ,
33
- );
34
- Lwt . return_ok(response);
35
- }
36
- | Error (_ ) => Lwt . return(Error ("Failed for some reason" ))
8
+ switch (Client . get(~sw, env, uri)) {
9
+ | Ok (response ) =>
10
+ switch (Piaf . Body . to_string(response. body)) {
11
+ | Ok (body_str ) =>
12
+ open Yojson . Safe ;
13
+ let body_json = Yojson . Safe . from_string(body_str);
14
+ let img_url =
15
+ body_json
16
+ |> Util . member("data" )
17
+ |> Util . member("images" )
18
+ |> Util . member("original" )
19
+ |> Util . member("url" )
20
+ |> Util . to_string;
21
+ let body = Printf . sprintf("<img src=\" % s \" >" , img_url);
22
+ let response =
23
+ Piaf . Response . of_string(
24
+ ~body,
25
+ ~headers= Piaf . Headers . of_list([ ("content-type" , "text/html" )] ),
26
+ ` OK ,
37
27
);
38
- }
39
- | Error (_ ) => Lwt . return(Error ("Failed for some reason" ))
40
- );
28
+ Ok (response);
29
+ | Error (_ ) => Error ("Failed for some reason" )
30
+ }
31
+ | Error (_ ) => Error ("Failed for some reason" )
32
+ };
41
33
};
42
34
43
35
let setup_log = (~style_renderer=?, level) => {
@@ -49,5 +41,5 @@ let setup_log = (~style_renderer=?, level) => {
49
41
50
42
let () = {
51
43
setup_log(Some (Logs . Debug ));
52
- Vercel . io_lambda (my_handler);
44
+ Vercel . lambda (my_handler);
53
45
};
0 commit comments