Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions Sources/FluentKit/Query/Database/DatabaseQuery+Range.swift
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,15 @@ extension DatabaseQuery.Limit: CustomStringConvertible {
}
}

extension DatabaseQuery.Limit {
var describedByLoggingMetadata: Logger.MetadataValue {
switch self {
case .count(let count): .stringConvertible(count)
default: "custom"
}
}
}

extension DatabaseQuery.Offset: CustomStringConvertible {
public var description: String {
switch self {
Expand All @@ -41,3 +50,12 @@ extension DatabaseQuery.Offset: CustomStringConvertible {
}
}
}

extension DatabaseQuery.Offset {
var describedByLoggingMetadata: Logger.MetadataValue {
switch self {
case .count(let count): .stringConvertible(count)
default: "custom"
}
}
}
13 changes: 13 additions & 0 deletions Sources/FluentKit/Query/Database/DatabaseQuery+Value.swift
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,23 @@ extension DatabaseQuery.Value: CustomStringConvertible {

var describedByLoggingMetadata: Logger.MetadataValue {
switch self {
case .bind(let encodable):
// N.B.: `is` is used instead of `as?` here because the latter irreversibly loses the `Sendable`-ness of the value.
if encodable is any CustomStringConvertible {
.stringConvertible(encodable as! any CustomStringConvertible & Sendable)
} else {
.string(String(describing: encodable))
}
case .dictionary(let d):
.dictionary(.init(uniqueKeysWithValues: d.map { ($0.description, $1.describedByLoggingMetadata) }))
case .array(let a):
.array(a.map(\.describedByLoggingMetadata))
case .enumCase(let string):
.string(string)
case .null:
"nil"
case .default:
"<default>"
default:
.stringConvertible(self)
}
Expand Down
6 changes: 3 additions & 3 deletions Sources/FluentKit/Query/Database/DatabaseQuery.swift
Original file line number Diff line number Diff line change
Expand Up @@ -72,15 +72,15 @@ extension DatabaseQuery: CustomStringConvertible {
}
switch self.action {
case .read, .aggregate, .custom:
result["unique"] = "\(self.isUnique)"
result["unique"] = .stringConvertible(self.isUnique)
result["fields"] = .array(self.fields.map(\.describedByLoggingMetadata))
result["joins"] = .array(self.joins.map(\.describedByLoggingMetadata))
fallthrough
case .update, .delete:
result["filters"] = .array(self.filters.map(\.describedByLoggingMetadata))
result["sorts"] = .array(self.sorts.map(\.describedByLoggingMetadata))
result["limits"] = .array(self.limits.map { .stringConvertible($0) })
result["offsets"] = .array(self.offsets.map { .stringConvertible($0) })
result["limits"] = .array(self.limits.map(\.describedByLoggingMetadata))
result["offsets"] = .array(self.offsets.map(\.describedByLoggingMetadata))
default: break
}
return result
Expand Down
2 changes: 1 addition & 1 deletion Tests/FluentKitTests/TestUtilities.swift
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ func assertLastQuery(
}

func env(_ name: String) -> String? {
return ProcessInfo.processInfo.environment[name]
ProcessInfo.processInfo.environment[name]
}

let isLoggingConfigured: Bool = {
Expand Down