28 lines
532 B
Gleam
28 lines
532 B
Gleam
import wisp
|
|
import sqlight.{type Connection}
|
|
|
|
pub type Context {
|
|
Context(env: Env, db: Connection)
|
|
}
|
|
|
|
pub type Env {
|
|
Env(
|
|
annual_link: String,
|
|
forgejo_url: String,
|
|
stripe_token: String,
|
|
monthly_link: String,
|
|
admin_token: String,
|
|
)
|
|
}
|
|
|
|
pub fn middleware(
|
|
req: wisp.Request,
|
|
handle_request: fn(wisp.Request) -> wisp.Response,
|
|
) -> wisp.Response {
|
|
let req = wisp.method_override(req)
|
|
use <- wisp.log_request(req)
|
|
use <- wisp.rescue_crashes
|
|
use req <- wisp.handle_head(req)
|
|
|
|
handle_request(req)
|
|
}
|