feat: Removes old tests, fixes authentication middleware not working, view routes updated to not have delete routes and uses api routes for delete methods.

This commit is contained in:
2025-01-24 10:55:59 -05:00
parent aa60f69758
commit 90c6058d56
37 changed files with 146 additions and 564 deletions

View File

@@ -1,6 +1,7 @@
import Dependencies
import DependenciesMacros
import Elementary
import Logging
import SharedModels
public extension DependencyValues {
@@ -10,19 +11,41 @@ public extension DependencyValues {
}
}
public typealias AnySendableHTML = (any HTML & Sendable)
@DependencyClient
public struct ViewController: Sendable {
public typealias AuthenticateHandler = @Sendable (User) -> Void
public var view: @Sendable (ViewRoute, Bool, @escaping AuthenticateHandler) async throws -> (any HTML)?
public var view: @Sendable (Request) async throws -> AnySendableHTML
@Sendable
public func view(
for route: ViewRoute,
isHtmxRequest: Bool,
logger: Logger,
authenticate: @escaping AuthenticateHandler
) async throws -> (any HTML)? {
try await view(route, isHtmxRequest, authenticate)
) async throws -> AnySendableHTML {
try await view(.init(route, isHtmxRequest: isHtmxRequest, authenticate: authenticate, logger: logger))
}
public struct Request: Sendable {
public let route: ViewRoute
public let isHtmxRequest: Bool
public let authenticate: AuthenticateHandler
public let logger: Logger
public init(
_ route: ViewRoute,
isHtmxRequest: Bool,
authenticate: @escaping AuthenticateHandler,
logger: Logger
) {
self.route = route
self.isHtmxRequest = isHtmxRequest
self.authenticate = authenticate
self.logger = logger
}
}
}