Loris Perret e4ada4b543
Some checks failed
gitea-openium/resgen.swift/pipeline/head There was a failure building this commit
fix: Use category and action if not matomo
2024-03-07 16:08:21 +01:00

89 lines
2.3 KiB
Swift

//
// FirebaseGenerator.swift
//
//
// Created by Loris Perret on 05/12/2023.
//
import Foundation
enum FirebaseGenerator {
static var service: String {
[
FirebaseGenerator.header,
FirebaseGenerator.logScreen,
FirebaseGenerator.logEvent,
FirebaseGenerator.footer
]
.joined(separator: "\n")
}
// MARK: - Private vars
private static var header: String {
"""
// MARK: - Firebase
class FirebaseAnalyticsManager: AnalyticsManagerProtocol {
"""
}
private static var logScreen: String {
"""
func logScreen(name: String, path: String) {
let parameters = [
AnalyticsParameterScreenName: name as NSObject
]
Analytics.logEvent(
AnalyticsEventScreenView,
parameters: parameters
)
}
"""
}
private static var logEvent: String {
"""
func logEvent(
name: String,
action: String,
category: String,
params: [String: Any]?
) {
var parameters: [String:NSObject] = [
AnalyticsParameterItemName: name.replacingOccurrences(of: " ", with: "_") as NSObject,
AnalyticsParameterItemCategory: category as NSObject,
"action": action 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(
AnalyticsEventSelectContent,
parameters: parameters
)
}
"""
}
private static var footer: String {
"""
}
"""
}
}