RES-75 Ajouter un pretty print pour le dictionnaire des params
Some checks failed
openium/resgen.swift/pipeline/pr-master There was a failure building this commit
openium/resgen.swift/pipeline/head There was a failure building this commit

This commit is contained in:
2025-10-29 09:44:19 +01:00
parent 1f9af76b40
commit 4b944ed8c7
3 changed files with 42 additions and 12 deletions

View File

@@ -160,6 +160,17 @@ internal class AnalyticsManager {
// MARK: - Private Log Methods // MARK: - Private Log Methods
private func formattedParams(_ params: [String: Any]?) -> String {
guard let params = params, !params.isEmpty else { return "-" }
let formattedParams = params.map { key, value in
" \(key): \(value)"
}
.joined(separator: "\n")
return "\n" + formattedParams
}
private func logScreen( private func logScreen(
name: String, name: String,
path: String, path: String,
@@ -175,7 +186,12 @@ internal class AnalyticsManager {
managers.values.forEach { manager in managers.values.forEach { manager in
if isDebugMode { if isDebugMode {
logger.debug("🖥️ Screen: \(name, privacy: .public) | Path: \(path, privacy: .public) | Params: \(String(describing: params ?? [:]), privacy: .public)") logger.debug("""
🖥️ Screen:
Name: \(name, privacy: .public)
Path: \(path, privacy: .public)
Params: \(self.formattedParams(params), privacy: .public)
""")
} }
manager.logScreen( manager.logScreen(
@@ -202,7 +218,13 @@ internal class AnalyticsManager {
managers.values.forEach { manager in managers.values.forEach { manager in
if isDebugMode { if isDebugMode {
logger.debug("📊 Event: \(name, privacy: .public) | Action: \(action.isEmpty ? "-" : action, privacy: .public) | Category: \(category.isEmpty ? "-" : category, privacy: .public) | Params: \(String(describing: params ?? [:]), privacy: .public)") logger.debug("""
📊 Event:
Name: \(name, privacy: .public)
Action: \(action.isEmpty ? "-" : action, privacy: .public)
Category: \(category.isEmpty ? "-" : category, privacy: .public)
Params: \(self.formattedParams(params), privacy: .public)
""")
} }
manager.logEvent( manager.logEvent(

View File

@@ -38,9 +38,6 @@ struct Analytics: ParsableCommand {
print("[\(Self.toolName)] Will generate analytics") print("[\(Self.toolName)] Will generate analytics")
// Check requirements
guard checkRequirements() else { return }
// Parse input file // Parse input file
let sections = AnalyticsFileParser().parse(options.inputFile, target: options.target) let sections = AnalyticsFileParser().parse(options.inputFile, target: options.target)

View File

@@ -199,6 +199,17 @@ enum AnalyticsGenerator {
""" """
// MARK: - Private Log Methods // MARK: - Private Log Methods
private func formattedParams(_ params: [String: Any]?) -> String {
guard let params = params, !params.isEmpty else { return "-" }
let formattedParams = params.map { key, value in
" \\(key): \\(value)"
}
.joined(separator: "\\n")
return "\\n" + formattedParams
}
private func logScreen( private func logScreen(
name: String, name: String,
path: String, path: String,
@@ -216,9 +227,9 @@ enum AnalyticsGenerator {
if isDebugMode { if isDebugMode {
logger.debug(\""" logger.debug(\"""
🖥️ Screen: 🖥️ Screen:
Name: \\(name, privacy: .public) Name: \\(name, privacy: .public)
Path: \\(path, privacy: .public) Path: \\(path, privacy: .public)
Params: \\(String(describing: params ?? [:]), privacy: .public) Params: \\(self.formattedParams(params), privacy: .public)
\""") \""")
} }
@@ -248,10 +259,10 @@ enum AnalyticsGenerator {
if isDebugMode { if isDebugMode {
logger.debug(\""" logger.debug(\"""
📊 Event: 📊 Event:
Name: \\(name, privacy: .public) Name: \\(name, privacy: .public)
Action: \\(action.isEmpty ? "-" : action, privacy: .public) Action: \\(action.isEmpty ? "-" : action, privacy: .public)
Category: \\(category.isEmpty ? "-" : category, privacy: .public) Category: \\(category.isEmpty ? "-" : category, privacy: .public)
Params: \\(String(describing: params ?? [:]), privacy: .public) Params: \\(self.formattedParams(params), privacy: .public)
\""") \""")
} }