From 6ea31a8030c270d638c09f36179c4ddc8f531d5c Mon Sep 17 00:00:00 2001 From: Loris Perret Date: Thu, 18 Jul 2024 11:31:23 +0200 Subject: [PATCH] Fix some error when value and replaceIn --- .../Generated/Analytics+GenAllScript.swift | 26 +++++++++++++------ SampleFiles/Tags/sampleTags.yml | 8 +----- .../Analytics/Model/AnalyticsDefinition.swift | 3 +-- .../Parser/AnalyticsFileParser.swift | 6 +++++ 4 files changed, 26 insertions(+), 17 deletions(-) diff --git a/SampleFiles/Tags/Generated/Analytics+GenAllScript.swift b/SampleFiles/Tags/Generated/Analytics+GenAllScript.swift index 7c52c33..db0bd0d 100644 --- a/SampleFiles/Tags/Generated/Analytics+GenAllScript.swift +++ b/SampleFiles/Tags/Generated/Analytics+GenAllScript.swift @@ -26,10 +26,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 @@ -55,10 +59,16 @@ 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 { @@ -136,11 +146,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 ) } @@ -167,7 +177,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 002c4b4..f014543 100644 --- a/Sources/ResgenSwift/Analytics/Model/AnalyticsDefinition.swift +++ b/Sources/ResgenSwift/Analytics/Model/AnalyticsDefinition.swift @@ -48,10 +48,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 b6ef6a6..2d893a7 100644 --- a/Sources/ResgenSwift/Analytics/Parser/AnalyticsFileParser.swift +++ b/Sources/ResgenSwift/Analytics/Parser/AnalyticsFileParser.swift @@ -68,6 +68,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)