refactor invalid form handling
This commit is contained in:
parent
855564bed6
commit
4cfe4e671a
3 changed files with 17 additions and 40 deletions
|
|
@ -130,7 +130,4 @@ let post request =
|
||||||
| Ok () -> pp_discussion (request, user_id, comrade_id)
|
| Ok () -> pp_discussion (request, user_id, comrade_id)
|
||||||
| Error e -> Utils.render e request
|
| Error e -> Utils.render e request
|
||||||
end
|
end
|
||||||
| `Ok _ -> Dream.respond ~status:`Bad_Request "invalid form"
|
| form -> Utils.handle_invalid_form form )
|
||||||
| `Expired _ | `Many_tokens _ | `Missing_token _ | `Invalid_token _
|
|
||||||
| `Wrong_session _ | `Wrong_content_type ->
|
|
||||||
Dream.empty `Bad_Request )
|
|
||||||
|
|
|
||||||
|
|
@ -30,10 +30,7 @@ let register_post request =
|
||||||
(User.login ~login:nick ~password request)
|
(User.login ~login:nick ~password request)
|
||||||
in
|
in
|
||||||
render res request )
|
render res request )
|
||||||
| `Ok _ -> Dream.respond ~status:`Bad_Request "invalid form"
|
| form -> Utils.handle_invalid_form form
|
||||||
| `Many_tokens _ | `Missing_token _ | `Invalid_token _ | `Wrong_session _
|
|
||||||
| `Expired _ | `Wrong_content_type ->
|
|
||||||
Dream.empty `Bad_Request
|
|
||||||
|
|
||||||
let login_get request = render (Login.f request) request
|
let login_get request = render (Login.f request) request
|
||||||
|
|
||||||
|
|
@ -51,10 +48,7 @@ let login_post request =
|
||||||
Dream.respond ~status:`See_Other
|
Dream.respond ~status:`See_Other
|
||||||
~headers:[ ("Location", url) ]
|
~headers:[ ("Location", url) ]
|
||||||
"Logged in: Happy geo-posting!" )
|
"Logged in: Happy geo-posting!" )
|
||||||
| `Ok _ -> Dream.respond ~status:`Bad_Request "invalid form"
|
| form -> Utils.handle_invalid_form form
|
||||||
| `Many_tokens _ | `Missing_token _ | `Invalid_token _ | `Wrong_session _
|
|
||||||
| `Expired _ | `Wrong_content_type ->
|
|
||||||
Dream.empty `Bad_Request
|
|
||||||
|
|
||||||
let admin_get request =
|
let admin_get request =
|
||||||
match Dream.session "user_id" request with
|
match Dream.session "user_id" request with
|
||||||
|
|
@ -101,10 +95,7 @@ let admin_post request =
|
||||||
Dream.respond ~status:`See_Other
|
Dream.respond ~status:`See_Other
|
||||||
~headers:[ ("Location", "/admin") ]
|
~headers:[ ("Location", "/admin") ]
|
||||||
"" )
|
"" )
|
||||||
| `Ok _ -> Dream.respond ~status:`Bad_Request "invalid form"
|
| form -> Utils.handle_invalid_form form )
|
||||||
| `Expired _ | `Many_tokens _ | `Missing_token _ | `Invalid_token _
|
|
||||||
| `Wrong_session _ | `Wrong_content_type ->
|
|
||||||
Dream.empty `Bad_Request )
|
|
||||||
|
|
||||||
let catalog request =
|
let catalog request =
|
||||||
let catalog_content =
|
let catalog_content =
|
||||||
|
|
@ -132,10 +123,7 @@ let delete_post request =
|
||||||
Dream.respond ~status:`See_Other
|
Dream.respond ~status:`See_Other
|
||||||
~headers:[ ("Location", "/") ]
|
~headers:[ ("Location", "/") ]
|
||||||
"Your post was deleted!" )
|
"Your post was deleted!" )
|
||||||
| `Ok _ -> Dream.respond ~status:`Bad_Request "invalid form"
|
| form -> Utils.handle_invalid_form form )
|
||||||
| `Expired _ | `Many_tokens _ | `Missing_token _ | `Invalid_token _
|
|
||||||
| `Wrong_session _ | `Wrong_content_type ->
|
|
||||||
Dream.empty `Bad_Request )
|
|
||||||
|
|
||||||
let report_get request =
|
let report_get request =
|
||||||
let post_id = Dream.param request "post_id" in
|
let post_id = Dream.param request "post_id" in
|
||||||
|
|
@ -153,10 +141,7 @@ let report_post request =
|
||||||
let post_id = Dream.param request "post_id" in
|
let post_id = Dream.param request "post_id" in
|
||||||
let* () = Babillard.report ~user_id ~reason post_id in
|
let* () = Babillard.report ~user_id ~reason post_id in
|
||||||
Ok "The post was reported!"
|
Ok "The post was reported!"
|
||||||
| `Ok _ -> Dream.respond ~status:`Bad_Request "invalid form"
|
| form -> Utils.handle_invalid_form form )
|
||||||
| `Expired _ | `Many_tokens _ | `Missing_token _ | `Invalid_token _
|
|
||||||
| `Wrong_session _ | `Wrong_content_type ->
|
|
||||||
Dream.empty `Bad_Request )
|
|
||||||
|
|
||||||
let user request =
|
let user request =
|
||||||
render (Result.fold ~ok:Fun.id ~error:Fun.id (User.list ())) request
|
render (Result.fold ~ok:Fun.id ~error:Fun.id (User.list ())) request
|
||||||
|
|
@ -205,10 +190,7 @@ let account_post request =
|
||||||
let* () = User.update_password password user_id in
|
let* () = User.update_password password user_id in
|
||||||
Ok "Your password was updated!"
|
Ok "Your password was updated!"
|
||||||
else Error "Password confirmation does not match"
|
else Error "Password confirmation does not match"
|
||||||
| `Ok _ -> Dream.respond ~status:`Bad_Request "invalid form"
|
| form -> Utils.handle_invalid_form form )
|
||||||
| `Many_tokens _ | `Missing_token _ | `Invalid_token _ | `Wrong_session _
|
|
||||||
| `Expired _ | `Wrong_content_type ->
|
|
||||||
Dream.empty `Bad_Request )
|
|
||||||
|
|
||||||
let profile_get request =
|
let profile_get request =
|
||||||
Utils.logged_in_or_redirect request (fun user_id ->
|
Utils.logged_in_or_redirect request (fun user_id ->
|
||||||
|
|
@ -246,6 +228,7 @@ let profile_post request =
|
||||||
| `Ok _ -> Dream.respond ~status:`Bad_Request "invalid form"
|
| `Ok _ -> Dream.respond ~status:`Bad_Request "invalid form"
|
||||||
| `Many_tokens _ | `Missing_token _ | `Invalid_token _ | `Wrong_session _
|
| `Many_tokens _ | `Missing_token _ | `Invalid_token _ | `Wrong_session _
|
||||||
| `Expired _ | `Wrong_content_type -> (
|
| `Expired _ | `Wrong_content_type -> (
|
||||||
|
(* TODO: why is this here ?! *)
|
||||||
match%lwt Dream.multipart request with
|
match%lwt Dream.multipart request with
|
||||||
| `Ok [ ("file", file) ] -> (
|
| `Ok [ ("file", file) ] -> (
|
||||||
match User.upload_avatar file user_id with
|
match User.upload_avatar file user_id with
|
||||||
|
|
@ -254,10 +237,7 @@ let profile_post request =
|
||||||
~headers:[ ("Location", "/profile") ]
|
~headers:[ ("Location", "/profile") ]
|
||||||
"Your avatar was updated!"
|
"Your avatar was updated!"
|
||||||
| Error e -> render e request )
|
| Error e -> render e request )
|
||||||
| `Ok _ -> Dream.respond ~status:`Bad_Request "invalid form"
|
| form -> Utils.handle_invalid_form form ) )
|
||||||
| `Expired _ | `Many_tokens _ | `Missing_token _ | `Invalid_token _
|
|
||||||
| `Wrong_session _ | `Wrong_content_type ->
|
|
||||||
Dream.empty `Bad_Request ) )
|
|
||||||
|
|
||||||
let get_post_image ~thumbnail request =
|
let get_post_image ~thumbnail request =
|
||||||
let id = Dream.param request "id" in
|
let id = Dream.param request "id" in
|
||||||
|
|
@ -347,10 +327,7 @@ let babillard_post request =
|
||||||
~headers:[ ("Location", adress) ]
|
~headers:[ ("Location", adress) ]
|
||||||
"Your thread was posted!"
|
"Your thread was posted!"
|
||||||
| Error e -> render e request ) )
|
| Error e -> render e request ) )
|
||||||
| `Ok _ -> Dream.respond ~status:`Bad_Request "invalid form"
|
| form -> Utils.handle_invalid_form form )
|
||||||
| `Expired _ | `Many_tokens _ | `Missing_token _ | `Invalid_token _
|
|
||||||
| `Wrong_session _ | `Wrong_content_type ->
|
|
||||||
Dream.empty `Bad_Request )
|
|
||||||
|
|
||||||
let thread_feed_get request =
|
let thread_feed_get request =
|
||||||
let thread_id = Dream.param request "thread_id" in
|
let thread_id = Dream.param request "thread_id" in
|
||||||
|
|
@ -401,10 +378,7 @@ let reply_post request =
|
||||||
~headers:[ ("Location", adress) ]
|
~headers:[ ("Location", adress) ]
|
||||||
"Your reply was posted!"
|
"Your reply was posted!"
|
||||||
| Error e -> render e request )
|
| Error e -> render e request )
|
||||||
| `Ok _ -> Dream.respond ~status:`Bad_Request "invalid form"
|
| form -> Utils.handle_invalid_form form )
|
||||||
| `Expired _ | `Many_tokens _ | `Missing_token _ | `Invalid_token _
|
|
||||||
| `Wrong_session _ | `Wrong_content_type ->
|
|
||||||
Dream.empty `Bad_Request )
|
|
||||||
|
|
||||||
let error_template _error _debug_info response =
|
let error_template _error _debug_info response =
|
||||||
let status = Dream.status response in
|
let status = Dream.status response in
|
||||||
|
|
|
||||||
|
|
@ -22,3 +22,9 @@ let logged_in_or_redirect request logged_in =
|
||||||
let redirect_url = Format.sprintf "/login=?redirect=%s" target in
|
let redirect_url = Format.sprintf "/login=?redirect=%s" target in
|
||||||
Dream.respond ~status:`See_Other ~headers:[ ("Location", redirect_url) ] ""
|
Dream.respond ~status:`See_Other ~headers:[ ("Location", redirect_url) ] ""
|
||||||
| Some user_id -> logged_in user_id
|
| Some user_id -> logged_in user_id
|
||||||
|
|
||||||
|
let handle_invalid_form = function
|
||||||
|
| `Ok _ -> Dream.respond ~status:`Bad_Request "invalid form"
|
||||||
|
| `Many_tokens _ | `Missing_token _ | `Invalid_token _ | `Wrong_session _
|
||||||
|
| `Expired _ | `Wrong_content_type ->
|
||||||
|
Dream.empty `Bad_Request
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue