Files
vapor-po/Sources/App/routes.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())
}