41 lines
1.0 KiB
Swift
41 lines
1.0 KiB
Swift
import Fluent
|
|
import Vapor
|
|
|
|
func routes(_ app: Application) throws {
|
|
let redirectMiddleware = User.redirectMiddleware { req in
|
|
"login?next=\(req.url.path)"
|
|
}
|
|
|
|
let protected = app.grouped(User.sessionAuthenticator(), redirectMiddleware, User.guardMiddleware())
|
|
let credentialsProtected = protected.grouped(User.credentialsAuthenticator())
|
|
|
|
app.get { req async throws in
|
|
try await req.view.render("index", ["title": "HHE - Purchase Orders"])
|
|
}
|
|
|
|
app.get("login") { req async throws in
|
|
req.logger.info("login")
|
|
return try await req.view.render("login")
|
|
}
|
|
|
|
credentialsProtected.post("login") { req async throws -> View in
|
|
req.logger.info("login POST")
|
|
return try await req.view.render("logged-in")
|
|
}
|
|
|
|
credentialsProtected.get("body") { req async throws in
|
|
req.logger.info("body")
|
|
return try await req.view.render("logged-in")
|
|
}
|
|
|
|
// app.get("index") { req async throws -> View in
|
|
//
|
|
// }
|
|
|
|
app.get("hello") { _ async -> String in
|
|
"Hello, world!"
|
|
}
|
|
|
|
try app.register(collection: ApiController())
|
|
}
|