fix: Fixes purchase order view generation to use the intermediate request and the logged in user as the created by id.

This commit is contained in:
2025-01-27 13:12:18 -05:00
parent f6c36cb489
commit 5da433b815
5 changed files with 32 additions and 16 deletions

View File

@@ -16,6 +16,7 @@ public typealias AnySendableHTML = (any HTML & Sendable)
@DependencyClient
public struct ViewController: Sendable {
public typealias AuthenticateHandler = @Sendable (User) -> Void
public typealias CurrentUserHandler = @Sendable () throws -> User
public var view: @Sendable (Request) async throws -> AnySendableHTML
@@ -24,9 +25,16 @@ public struct ViewController: Sendable {
for route: SiteRoute.View,
isHtmxRequest: Bool,
logger: Logger,
authenticate: @escaping AuthenticateHandler
authenticate: @escaping AuthenticateHandler,
currentUser: @escaping CurrentUserHandler
) async throws -> AnySendableHTML {
try await view(.init(route, isHtmxRequest: isHtmxRequest, authenticate: authenticate, logger: logger))
try await view(.init(
route,
isHtmxRequest: isHtmxRequest,
authenticate: authenticate,
logger: logger,
currentUser: currentUser
))
}
public struct Request: Sendable {
@@ -34,17 +42,20 @@ public struct ViewController: Sendable {
public let isHtmxRequest: Bool
public let authenticate: AuthenticateHandler
public let logger: Logger
public let currentUser: CurrentUserHandler
public init(
_ route: SiteRoute.View,
isHtmxRequest: Bool,
authenticate: @escaping AuthenticateHandler,
logger: Logger
logger: Logger,
currentUser: @escaping CurrentUserHandler
) {
self.route = route
self.isHtmxRequest = isHtmxRequest
self.authenticate = authenticate
self.logger = logger
self.currentUser = currentUser
}
}