Analytics improvement (#9)
Some checks failed
gitea-openium/resgen.swift/pipeline/head There was a failure building this commit

Co-authored-by: Quentin Bandera <q.bandera@openium.fr>
Reviewed-on: #9
Co-authored-by: Loris Perret <l.perret@openium.fr>
Co-committed-by: Loris Perret <l.perret@openium.fr>
This commit is contained in:
2025-07-17 09:15:43 +02:00
committed by Thibaut Schmitt
parent 166026a766
commit c3b8ebfb37
12 changed files with 472 additions and 121 deletions

View File

@ -13,10 +13,11 @@ enum FirebaseGenerator {
static var service: String {
[
Self.header,
Self.logScreen,
Self.logEvent,
Self.footer
FirebaseGenerator.header,
FirebaseGenerator.logScreen,
FirebaseGenerator.logEvent,
FirebaseGenerator.enable,
FirebaseGenerator.footer
]
.joined(separator: "\n")
}
@ -33,11 +34,31 @@ enum FirebaseGenerator {
private static var logScreen: String {
"""
func logScreen(name: String, path: String) {
func logScreen(
name: String,
path: String,
params: [String: Any]?
) {
var parameters = [
AnalyticsParameterScreenName: name as NSObject
]
if path.isEmpty == false {
parameters["path"] = path + "/iOS" as NSObject
}
if let supplementaryParameters = params {
for (newKey, newValue) in supplementaryParameters {
if parameters.contains(where: { (key: String, value: NSObject) in
key == newKey
}) {
continue
}
parameters[newKey] = newValue as? NSObject
}
}
Analytics.logEvent(
AnalyticsEventScreenView,
parameters: parameters
@ -56,10 +77,17 @@ enum FirebaseGenerator {
params: [String: Any]?
) {
var parameters: [String:NSObject] = [
"action": action as NSObject,
"category": category as NSObject,
AnalyticsParameterItemName: name.replacingOccurrences(of: " ", with: "_") as NSObject
]
if category.isEmpty == false {
parameters["AnalyticsParameterItemCategory"] = category as NSObject
}
if action.isEmpty == false {
parameters["action"] = action as NSObject
}
if let supplementaryParameters = params {
for (newKey, newValue) in supplementaryParameters {
if parameters.contains(where: { (key: String, value: NSObject) in
@ -73,13 +101,21 @@ enum FirebaseGenerator {
}
Analytics.logEvent(
name.replacingOccurrences(of: [" "], with: "_"),
AnalyticsEventSelectContent,
parameters: parameters
)
}
"""
}
private static var enable: String {
"""
func setEnable(_ enable: Bool) {
Analytics.setAnalyticsCollectionEnabled(enable)
}
"""
}
private static var footer: String {
"""
}