// // 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) { var parameters = [ AnalyticsParameterScreenName: name ] Analytics.logEvent( AnalyticsEventScreenView, parameters: parameters ) } """ } private static 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 static var footer: String { """ } """ } }