Pass code to response makers

Error codes still override it.
This commit is contained in:
Stéphane Lavergne 2023-08-07 16:09:04 -04:00
parent b3b99af7ae
commit 72609bfcaa
2 changed files with 25 additions and 14 deletions

View file

@ -405,27 +405,27 @@ module Response = struct
else
make_raw ~headers ~code "" (* invalid to not have a body *)
let make_string ?headers r =
let make_string ?headers ?(code=200) r =
match r with
| Ok body -> make_raw ?headers ~code:200 body
| Ok body -> make_raw ?headers ~code body
| Error (code, msg) -> make_raw ?headers ~code msg
let make_stream ?headers r =
let make_stream ?headers ?(code=200) r =
match r with
| Ok body -> make_raw_stream ?headers ~code:200 body
| Ok body -> make_raw_stream ?headers ~code body
| Error (code, msg) -> make_raw ?headers ~code msg
let make_writer ?headers r : t =
let make_writer ?headers ?(code=200) r : t =
match r with
| Ok body -> make_raw_writer ?headers ~code:200 body
| Ok body -> make_raw_writer ?headers ~code body
| Error (code, msg) -> make_raw ?headers ~code msg
let make ?headers r : t =
let make ?headers ?(code=200) r : t =
match r with
| Ok (`String body) -> make_raw ?headers ~code:200 body
| Ok (`Stream body) -> make_raw_stream ?headers ~code:200 body
| Ok `Void -> make_void ?headers ~code:200 ()
| Ok (`Writer f) -> make_raw_writer ?headers ~code:200 f
| Ok (`String body) -> make_raw ?headers ~code body
| Ok (`Stream body) -> make_raw_stream ?headers ~code body
| Ok `Void -> make_void ?headers ~code ()
| Ok (`Writer f) -> make_raw_writer ?headers ~code f
| Error (code, msg) -> make_raw ?headers ~code msg
let fail ?headers ~code fmt =

View file

@ -251,7 +251,11 @@ module Response : sig
(** Return a response without a body at all.
@since 0.13 *)
val make : ?headers:Headers.t -> (body, Response_code.t * string) result -> t
val make :
?headers:Headers.t ->
?code:int ->
(body, Response_code.t * string) result ->
t
(** [make r] turns a result into a response.
- [make (Ok body)] replies with [200] and the body.
@ -260,17 +264,24 @@ module Response : sig
*)
val make_string :
?headers:Headers.t -> (string, Response_code.t * string) result -> t
?headers:Headers.t ->
?code:int ->
(string, Response_code.t * string) result ->
t
(** Same as {!make} but with a string body. *)
val make_writer :
?headers:Headers.t ->
?code:int ->
(Tiny_httpd_io.Writer.t, Response_code.t * string) result ->
t
(** Same as {!make} but with a writer body. *)
val make_stream :
?headers:Headers.t -> (byte_stream, Response_code.t * string) result -> t
?headers:Headers.t ->
?code:int ->
(byte_stream, Response_code.t * string) result ->
t
(** Same as {!make} but with a stream body. *)
val fail :