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
open Core
open Async_kernel
type request = Request.t * Body.Reader.t [@@deriving sexp_of]
type response = Response.t * Body.Writer.t [@@deriving sexp_of]
type t = request -> response Deferred.t
let body request = Body.Reader.pipe (snd request)
let request key = Headers.find (Request.headers (fst request)) key
let request key = Headers.find_multi (Request.headers (fst request)) key
let resource request = Request.path (fst request)
let meth request = Request.meth (fst request)
let respond_string ?( = []) ?(status = `Ok) body =
let body = Body.Writer.string body in
let = Headers.of_rev_list headers in
let response = Response.create ~headers status in
return (response, body)
;;
let respond_bigstring ?( = []) ?(status = `Ok) body =
let body = Body.Writer.bigstring body in
let = Headers.of_rev_list headers in
let response = Response.create ~headers status in
return (response, body)
;;
let respond_stream ?( = []) ?(status = `Ok) body =
let body = Body.Writer.stream body in
let = Headers.of_rev_list headers in
let response = Response.create ~headers status in
return (response, body)
;;