diff --git a/SampleFiles/Tags/Generated/Analytics+GenAllScript.swift b/SampleFiles/Tags/Generated/Analytics+GenAllScript.swift index 7e89282..7366263 100644 --- a/SampleFiles/Tags/Generated/Analytics+GenAllScript.swift +++ b/SampleFiles/Tags/Generated/Analytics+GenAllScript.swift @@ -84,10 +84,14 @@ class FirebaseAnalyticsManager: AnalyticsManagerProtocol { path: String, params: [String: Any]? ) { - let parameters = [ + 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 @@ -113,11 +117,17 @@ class FirebaseAnalyticsManager: AnalyticsManagerProtocol { params: [String: Any]? ) { var parameters: [String:NSObject] = [ - AnalyticsParameterItemName: name.replacingOccurrences(of: " ", with: "_") as NSObject, - AnalyticsParameterItemCategory: category as NSObject, - "action": action 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 @@ -191,11 +201,11 @@ class AnalyticsManager { // MARK: - section_one - static func logScreenS1DefOne(title: String, test2: String = "test") { + static func logScreenS1DefOne() { AnalyticsManager.shared.logScreen( name: "s1 def one \(title)", - path: "", - params: ["test2": test2] + path: "s1_def_one/\(title)", + params: nil ) } @@ -222,7 +232,7 @@ class AnalyticsManager { static func logScreenS2DefOne() { AnalyticsManager.shared.logScreen( name: "s2 def one", - path: "", + path: "s2_def_one/", params: nil ) } diff --git a/SampleFiles/Tags/sampleTags.yml b/SampleFiles/Tags/sampleTags.yml index ce71f05..05852d4 100644 --- a/SampleFiles/Tags/sampleTags.yml +++ b/SampleFiles/Tags/sampleTags.yml @@ -9,14 +9,8 @@ categories: parameters: - name: title type: String + value: try test replaceIn: name,path - - name: test - type: String - value: test - replaceIn: name,path - - name: test2 - type: String - defaultValue: test events: - id: s1_def_two diff --git a/Sources/ResgenSwift/Analytics/Model/AnalyticsDefinition.swift b/Sources/ResgenSwift/Analytics/Model/AnalyticsDefinition.swift index 27796a3..c84bf1c 100644 --- a/Sources/ResgenSwift/Analytics/Model/AnalyticsDefinition.swift +++ b/Sources/ResgenSwift/Analytics/Model/AnalyticsDefinition.swift @@ -51,10 +51,9 @@ class AnalyticsDefinition { } private func getParameters() -> String { - var params = parameters var result: String - let paramsString = params.compactMap { parameter -> String? in + let paramsString = parameters.compactMap { parameter -> String? in guard parameter.value.isEmpty else { return nil } let defaultValue: String diff --git a/Sources/ResgenSwift/Analytics/Parser/AnalyticsFileParser.swift b/Sources/ResgenSwift/Analytics/Parser/AnalyticsFileParser.swift index e0f1c07..8b8186f 100644 --- a/Sources/ResgenSwift/Analytics/Parser/AnalyticsFileParser.swift +++ b/Sources/ResgenSwift/Analytics/Parser/AnalyticsFileParser.swift @@ -105,6 +105,12 @@ class AnalyticsFileParser { Analytics.exit(withError: error) } + if dtoParameter.value != nil, dtoParameter.replaceIn != nil { + let error = AnalyticsError.invalidParameter("you can't set 'value' and 'replaceIn' for \(dtoParameter.name)") + print(error.description) + Analytics.exit(withError: error) + } + verify(value: dtoParameter.value, for: typeEnum) verify(value: dtoParameter.defaultValue, for: typeEnum)