// // 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 { """ } """ } }