81 lines
1.8 KiB
Swift
81 lines
1.8 KiB
Swift
//
|
|
// FirebaseGenerator.swift
|
|
//
|
|
//
|
|
// Created by Loris Perret on 05/12/2023.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
enum FirebaseGenerator {
|
|
case service
|
|
|
|
var content: String {
|
|
[
|
|
FirebaseGenerator.service.header,
|
|
FirebaseGenerator.service.logScreen,
|
|
FirebaseGenerator.service.logEvent,
|
|
FirebaseGenerator.service.footer
|
|
]
|
|
.joined(separator: "\n")
|
|
}
|
|
|
|
private var header: String {
|
|
"""
|
|
// MARK: - Firebase
|
|
|
|
class FirebaseAnalyticsManager: AnalyticsManagerProtocol {
|
|
"""
|
|
}
|
|
|
|
private var logScreen: String {
|
|
"""
|
|
func logScreen(name: String, path: String) {
|
|
var parameters = [
|
|
AnalyticsParameterScreenName: name
|
|
]
|
|
|
|
Analytics.logEvent(
|
|
AnalyticsEventScreenView,
|
|
parameters: parameters
|
|
)
|
|
}
|
|
|
|
"""
|
|
}
|
|
|
|
private var logEvent: String {
|
|
"""
|
|
func logEvent(
|
|
name: String,
|
|
action: String,
|
|
category: String,
|
|
params: [String: Any]?
|
|
) {
|
|
var parameters: [String:Any] = [
|
|
"action": action,
|
|
"category": category,
|
|
]
|
|
|
|
if let supplementaryParameters = params {
|
|
parameters.merge(supplementaryParameters) { (origin, new) -> Any in
|
|
return origin
|
|
}
|
|
}
|
|
|
|
Analytics.logEvent(
|
|
name,
|
|
parameters: parameters
|
|
)
|
|
}
|
|
"""
|
|
}
|
|
|
|
private var footer: String {
|
|
"""
|
|
}
|
|
|
|
"""
|
|
}
|
|
}
|