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 committed by Simon Cruanes
parent b3b99af7ae
commit 1b7939c17a
2 changed files with 25 additions and 14 deletions

View file

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

View file

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