2 Commits

Author SHA1 Message Date
4b944ed8c7 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
2025-10-29 11:07:37 +01:00
1f9af76b40 RES-74 Ajout du multiligne sur les logs des analytics
Some checks failed
openium/resgen.swift/pipeline/head There was a failure building this commit
2025-10-29 09:23:10 +01:00
3 changed files with 99 additions and 58 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

@@ -196,63 +196,85 @@ enum AnalyticsGenerator {
} }
private static func getPrivateLogFunction() -> String { private static func getPrivateLogFunction() -> String {
""" """
// MARK: - Private Log Methods // MARK: - Private Log Methods
private func logScreen( private func formattedParams(_ params: [String: Any]?) -> String {
name: String, guard let params = params, !params.isEmpty else { return "-" }
path: String,
params: [String: Any]? let formattedParams = params.map { key, value in
) { " \\(key): \\(value)"
guard isEnabled else { }
if isDebugMode { .joined(separator: "\\n")
logger.log("Analytics disabled")
} return "\\n" + formattedParams
return }
}
private func logScreen(
managers.values.forEach { manager in name: String,
path: String,
if isDebugMode { params: [String: Any]?
logger.debug("🖥 Screen: \\(name, privacy: .public) | Path: \\(path, privacy: .public) | Params: \\(String(describing: params ?? [:]), privacy: .public)") ) {
} guard isEnabled else {
if isDebugMode {
manager.logScreen( logger.log("Analytics disabled")
name: name,
path: path,
params: params
)
} }
return
} }
private func logEvent( managers.values.forEach { manager in
name: String,
action: String, if isDebugMode {
category: String, logger.debug(\"""
params: [String: Any]? 🖥️ Screen:
) { Name: \\(name, privacy: .public)
guard isEnabled else { Path: \\(path, privacy: .public)
if isDebugMode { Params: \\(self.formattedParams(params), privacy: .public)
logger.log("Analytics disabled") \""")
}
return
} }
managers.values.forEach { manager in manager.logScreen(
name: name,
if isDebugMode { path: path,
logger.debug("📊 Event: \\(name, privacy: .public) | Action: \\(action.isEmpty ? "-" : action, privacy: .public) | Category: \\(category.isEmpty ? "-" : category, privacy: .public) | Params: \\(String(describing: params ?? [:]), privacy: .public)") params: params
} )
manager.logEvent(
name: name,
action: action,
category: category,
params: params
)
}
} }
""" }
private func logEvent(
name: String,
action: String,
category: String,
params: [String: Any]?
) {
guard isEnabled else {
if isDebugMode {
logger.log("Analytics disabled")
}
return
}
managers.values.forEach { manager in
if isDebugMode {
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(
name: name,
action: action,
category: category,
params: params
)
}
}
"""
} }
private static func getAnalyticsProperties( private static func getAnalyticsProperties(