summaryrefslogtreecommitdiff
path: root/api/startapp.ml
blob: 3b459d5905b95c89a9b745cc220d7f509f6c869a (plain)
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

(* Middleware to enable CORS for testing purposes *)
let cors_middleware handler request =
  let handlers =
    [
      "Allow", "OPTIONS, GET, HEAD, POST";
      "Access-Control-Allow-Origin", "*";
      "Access-Control-Allow-Methods", "OPTIONS, GET, HEAD, POST";
      "Access-Control-Allow-Headers", "Content-Type";
      "Access-Control-Max-Age", "86400"
    ]
  in

  let%lwt res = handler request in
  handlers
  |> List.map (fun (key, value) -> Dream.add_header res key value)
  |> ignore;
  Lwt.return res

  (* Create and start the app *)
let startapp () =
  Dream.run
  @@ Dream.logger
  (* @@ Dream.origin_referrer_check *)
  @@ cors_middleware (* TODO: remove *)
  @@ Dream.router Routes.routes