3a9e3d176f
This PR contains the work done to implement the support for `DocC` archives (or `.doccarchive` containers) into the middleware. Reviewed-on: rock-n-code/hummingbird-docc-middleware#2 Co-authored-by: Javier Cicchelli <javier@rock-n-code.com> Co-committed-by: Javier Cicchelli <javier@rock-n-code.com>
51 lines
1.9 KiB
Swift
51 lines
1.9 KiB
Swift
// ===----------------------------------------------------------------------===
|
|
//
|
|
// This source file is part of the Hummingbird DocC Middleware open source project
|
|
//
|
|
// Copyright (c) 2025 Röck+Cöde VoF. and the Hummingbird DocC Middleware project authors
|
|
// Licensed under the EUPL 1.2 or later.
|
|
//
|
|
// See LICENSE for license information
|
|
// See CONTRIBUTORS for the list of Hummingbird DocC Middleware project authors
|
|
//
|
|
// ===----------------------------------------------------------------------===
|
|
|
|
import protocol Hummingbird.RequestContext
|
|
|
|
import struct Hummingbird.HTTPResponse
|
|
import struct Hummingbird.Request
|
|
import struct Logging.Logger
|
|
|
|
extension Logger.Metadata {
|
|
|
|
// MARK: Functions
|
|
|
|
/// Generates a dictionary to use as metadata for events to log into the logging system.
|
|
/// - Parameters:
|
|
/// - context: A type that contains all the parameters associated with a given request, and that conforms to the `RequestContext` protocol.
|
|
/// - request: A type that contains all the parameters to process as a request.
|
|
/// - statusCode: A representation of a response status to provide as a response.
|
|
/// - redirect: A URI path to use in a redirection event, if any.
|
|
/// - Returns: A generated metadata dictionary for an event to log into the logging system.
|
|
static func metadata(
|
|
context: any RequestContext,
|
|
request: Request,
|
|
statusCode: HTTPResponse.Status,
|
|
redirect: String? = nil
|
|
) -> Self {
|
|
var metadata: Logger.Metadata = [
|
|
"hb.request.id": "\(context.id)",
|
|
"hb.request.method": "\(request.method.rawValue)",
|
|
"hb.request.path": "\(request.uri.path)",
|
|
"hb.request.status": "\(statusCode.code)"
|
|
]
|
|
|
|
if let redirect {
|
|
metadata["hb.request.redirect"] = "\(redirect)"
|
|
}
|
|
|
|
return metadata
|
|
}
|
|
|
|
}
|