feat: Mostly working user view with elementary html.

This commit is contained in:
2025-01-14 22:55:34 -05:00
parent 8842957cf3
commit cf28e52fa2
13 changed files with 297 additions and 12 deletions

View File

@@ -1,3 +1,42 @@
import DatabaseClient
import Dependencies
import Elementary
import SharedModels
import Vapor
import VaporElementary
struct UserViewController: RouteCollection {
@Dependency(\.database.users) var users
func boot(routes: any RoutesBuilder) throws {
// let users = routes.protected.grouped("users")
let users = routes.grouped("users")
users.get(use: index)
users.group(":id") {
$0.get(use: get)
}
}
@Sendable
func index(req: Request) async throws -> HTMLResponse {
HTMLResponse {
MainPage(route: .users) {
div(.class("container")) {
UserDetail(user: nil)
UserTable()
}
}
}
}
@Sendable
func get(req: Request) async throws -> HTMLResponse {
let user = try await users.get(req.ensureIDPathComponent())
return HTMLResponse { UserDetail(user: user) }
}
}
// import Dependencies
// import Fluent
// import Vapor