mte/.jjconflict-side-0/src/respond.ml

40 lines
1.1 KiB
OCaml
Raw Normal View History

2026-02-12 12:13:30 +01:00
(* TODO response
use ErrorDetail *)
let respond_json req content status =
let open Vif.Response in
let open Syntax in
let* () = add ~field:"content-type" "application/json" in
let* () = with_string req content in
respond status
let mk_error_content ?hint _status =
let open Api in
let code = -1 in
let err = ErrorDetail.make ?hint code in
encode_exn ErrorDetail.jsont err
let error ~hint req =
Logs.err (fun m -> m "internal server error: %s" hint);
let body = mk_error_content ~hint `Internal_server_error in
respond_json req body `Internal_server_error
let bad_request ?hint req =
Logs.err (fun m -> m "bad request");
let body = mk_error_content ?hint `Bad_request in
respond_json req body `Bad_request
let ok content req =
Logs.debug (fun m -> m "ok");
respond_json req content `OK
let not_modified () =
Logs.debug (fun m -> m "not modified");
let open Vif.Response in
let open Syntax in
let* () = empty in
respond `Not_modified
let result res req =
match res with Error hint -> error ~hint req | Ok content -> ok content req