wip post json
This commit is contained in:
parent
cf4da6b382
commit
52fabd085a
2 changed files with 32 additions and 12 deletions
|
|
@ -110,9 +110,29 @@ let keys_get req server _env =
|
|||
let* () = add ~field:"content-type" "application/json" in
|
||||
respond `OK
|
||||
|
||||
type foo = { v: string }
|
||||
|
||||
let foo_jsont =
|
||||
let open Jsont in
|
||||
let enc foo = foo.v in
|
||||
let make v = { v } in
|
||||
Object.map ~kind:"foo" make |> Object.mem "v" string ~enc |> Object.finish
|
||||
|
||||
let keys_post req _server _env =
|
||||
let open Vif.Response in
|
||||
let open Syntax in
|
||||
let* () = with_string req {||} in
|
||||
let* () = add ~field:"content-type" "application/json" in
|
||||
respond `OK
|
||||
match Vif.Request.of_json req with
|
||||
| Ok (foo : foo) ->
|
||||
let str = Fmt.str "key: %s@." foo.v in
|
||||
let* () =
|
||||
Vif.Response.add ~field:"content-type" "text/plain; charset=utf-8"
|
||||
in
|
||||
let* () = Vif.Response.with_string req str in
|
||||
Vif.Response.respond `OK
|
||||
| Error (`Msg msg) ->
|
||||
Logs.err (fun m -> m "Invalid JSON: %s" msg);
|
||||
let* () =
|
||||
Vif.Response.add ~field:"content-type" "text/plain; charset=utf-8"
|
||||
in
|
||||
let* () = Vif.Response.with_string req msg in
|
||||
Vif.Response.respond (`Code 422)
|
||||
|
|
|
|||
18
src/mte.ml
18
src/mte.ml
|
|
@ -24,16 +24,16 @@ let routes =
|
|||
let open Vif.Uri in
|
||||
let open Vif.Route in
|
||||
let open Vif.Type in
|
||||
(* just for alignement *)
|
||||
let get_ = get in
|
||||
let post = Fun.flip post in
|
||||
[
|
||||
get_ (rel /?? nil) --> hello;
|
||||
get_ (rel / "terms" /?? nil) --> Static.terms;
|
||||
get_ (rel / "privacy" /?? nil) --> Static.privacy;
|
||||
get_ (rel / "test" /?? nil) --> Database.test_activate;
|
||||
get_ (rel / "management" / "keys" /?? nil) --> Management.keys_get;
|
||||
post (rel / "management" / "keys" /?? nil) any --> Management.keys_post;
|
||||
get (rel /?? nil) --> hello;
|
||||
get (rel / "terms" /?? nil) --> Static.terms;
|
||||
get (rel / "privacy" /?? nil) --> Static.privacy;
|
||||
get (rel / "test" /?? nil) --> Database.test_activate;
|
||||
get (rel / "management" / "keys" /?? nil) --> Management.keys_get;
|
||||
post
|
||||
(json_encoding Management.foo_jsont)
|
||||
(rel / "management" / "keys" /?? nil)
|
||||
--> Management.keys_post;
|
||||
]
|
||||
|
||||
let () =
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue