fork
Configure Feed
Select the types of activity you want to include in your feed.
this repo has no description
fork
Configure Feed
Select the types of activity you want to include in your feed.
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}