this repo has no description
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 50 lines 1.2 kB view raw
1import app/database 2import gleam/bool 3import gleam/json 4import wisp 5 6pub type Context { 7 Context(db: database.Connection) 8} 9 10pub fn middleware( 11 req: wisp.Request, 12 handle_request: fn(wisp.Request) -> wisp.Response, 13) { 14 let req = wisp.method_override(req) 15 use <- wisp.log_request(req) 16 use <- wisp.rescue_crashes 17 use req <- wisp.handle_head(req) 18 19 use <- default_responses 20 21 handle_request(req) 22} 23 24fn default_responses(handle_request: fn() -> wisp.Response) -> wisp.Response { 25 let response = handle_request() 26 27 use <- bool.guard(when: response.body != wisp.Empty, return: response) 28 29 case response.status { 30 404 | 405 -> 31 json.object([#("msg", json.string("Not Found"))]) 32 |> json.to_string_builder 33 |> wisp.json_response(response.status) 34 35 400 | 422 -> 36 json.object([#("msg", json.string("Bad request"))]) 37 |> json.to_string_builder 38 |> wisp.json_response(response.status) 39 40 500 -> 41 json.object([#("msg", json.string("Internal server error"))]) 42 |> json.to_string_builder 43 |> wisp.json_response(response.status) 44 45 _ -> 46 json.object([#("msg", json.string("Something"))]) 47 |> json.to_string_builder 48 |> wisp.json_response(response.status) 49 } 50}