Todo app
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

52 lines
1.1 KiB

import Elementary
import Fluent
import Vapor
import VaporElementary
func routes(_ app: Application) throws {
app.routes.caseInsensitive = true
app.get { req async throws in
HTMLResponse {
MainLayout(title: "Homepage") {
IndexPage()
}
}
}
app.get("hello") { req async -> String in
"Hello, world!"
}
app.get("toast", use: toast)
try app.register(collection: TodoController())
try app.register(collection: TestController())
try app.group("api") { api in
try api.register(collection: TodoAPIController())
}
}
@Sendable
func toast(req: Request) throws -> HTMLResponse {
let state = try getState(request: req)
let toast = state.toast
state.toast = ToastState() // Clear toast
return HTMLResponse {
ToastComponent(state: toast)
}
}
/*
Closure Expression Syntax
https://docs.swift.org/swift-book/documentation/the-swift-programming-language/closures#Closure-Expression-Syntax
{ (<#parameters#>) -> <#return type#> in
<#statements#>
}
*/