mise-a-jour-tags #6

Merged
l.perret merged 21 commits from mise-a-jour-tags into master 2023-12-13 10:46:10 +01:00
4 changed files with 73 additions and 41 deletions
Showing only changes of commit 6aef8bc2de - Show all commits

View File

@ -66,11 +66,15 @@ class MatomoAnalyticsManager: AnalyticsManagerProtocol {
class FirebaseAnalyticsManager: AnalyticsManagerProtocol {
func logScreen(name: String, path: String) {
Analytics.logEvent(AnalyticsEventScreenView, parameters: [AnalyticsParameterScreenName: name])
}
func logEvent(name: String) {
var parameters = [
AnalyticsParameterValue: name
]
Analytics.logEvent(AnalyticsEventSelectContent, parameters: parameters)
}
}
@ -83,20 +87,27 @@ class AnalyticsManager {
var managers: [AnalyticsManagerProtocol] = []
private var isEnabled: Bool = true
// MARK: - Methods
func setAnalyticsEnabled(_ enable: Bool) { isEnabled = enable }
func configure(sideId: String, url: String) {
managers.append(MatomoAnalyticsManager(siteId: sideId, url: url))
managers.append(FirebaseAnalyticsManager())
FirebaseApp.configure()
}
private func logScreen(name: String, path: String) {
guard isEnabled else { return }
managers.forEach { manager in
manager.logScreen(name: name, path: path)
}
}
private func logEvent(name: String) {
guard isEnabled else { return }
managers.forEach { manager in
manager.logEvent(name: name)
}
@ -104,11 +115,11 @@ class AnalyticsManager {
// MARK: - ScreenTag
func logScreenEcranUn(name: String, path: String) {
logScreen(name: name, path: path)
func logScreenEcranUn() {
logScreen(name: "Ecran un", path: "ecran_un/")
}
func logEventEcranDeux(name: String) {
logEvent(name: name)
func logEventEcranDeux() {
logEvent(name: "Ecran deux")
}
}

View File

@ -8,7 +8,19 @@
import Foundation
enum FirebaseGenerator {
var header: String {
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
@ -16,21 +28,31 @@ enum FirebaseGenerator {
"""
}
var footer: String {
private var logScreen: String {
"""
func logScreen(name: String, path: String) {
Analytics.logEvent(AnalyticsEventScreenView, parameters: [AnalyticsParameterScreenName: name])
}
"""
}
private var logEvent: String {
"""
func logEvent(name: String) {
var parameters = [
AnalyticsParameterValue: name
]
Analytics.logEvent(AnalyticsEventSelectContent, parameters: parameters)
}
"""
}
private var footer: String {
"""
}
"""
}
var logScreen: String {
"""
"""
}
var logEvent: String {
"""
"""
}
}

View File

@ -62,7 +62,6 @@ class TagsGenerator {
\(Self.getImport())
\(Self.getAnalytics())
// MARK: - Manager
class AnalyticsManager {
@ -72,12 +71,24 @@ class TagsGenerator {
var managers: [AnalyticsManagerProtocol] = []
\(Self.getEnabledContent())
\(Self.getAnalyticsProperties())
\(Self.getPrivateLogFunction())
"""
}
private static func getEnabledContent() -> String {
"""
private var isEnabled: Bool = true
// MARK: - Methods
func setAnalyticsEnabled(_ enable: Bool) { isEnabled = enable }
"""
}
private static func getImport() -> String {
var result: [String] = []
@ -94,12 +105,14 @@ class TagsGenerator {
private static func getPrivateLogFunction() -> String {
"""
private func logScreen(name: String, path: String) {
guard isEnabled else { return }
managers.forEach { manager in
manager.logScreen(name: name, path: path)
}
}
private func logEvent(name: String) {
guard isEnabled else { return }
managers.forEach { manager in
manager.logEvent(name: name)
}
@ -108,7 +121,7 @@ class TagsGenerator {
}
private static func getAnalyticsProperties() -> String {
var header = " // MARK: - Methods\n"
var header = ""
var content: [String] = []
let footer = " }"
@ -144,20 +157,6 @@ class TagsGenerator {
"""
let firebase = """
// MARK: - Firebase
class FirebaseAnalyticsManager: AnalyticsManagerProtocol {
func logScreen(name: String, path: String) {
}
func logEvent(name: String) {
}
}
"""
var result: [String] = [proto]
if targets.contains(Tags.TargetType.matomo) {
@ -165,7 +164,7 @@ class TagsGenerator {
}
if targets.contains(Tags.TargetType.firebase) {
result.append(firebase)
result.append(FirebaseGenerator.service.content)
}
return result.joined(separator: "\n")

View File

@ -96,9 +96,9 @@ class TagDefinition {
private func getlogFunction() -> String {
if type == TagType.screen.value {
"logScreen(name: name, path: path)"
"logScreen(name: \"\(name)\", path: \"\(path)\")"
} else {
"logEvent(name: name)"
"logEvent(name: \"\(name)\")"
}
}
@ -106,7 +106,7 @@ class TagDefinition {
func getProperty() -> String {
"""
func \(getFuncName())(name: String\(type == TagType.screen.value ? ", path: String" : "")) {
func \(getFuncName())() {
\(getlogFunction())
}
"""
@ -114,7 +114,7 @@ class TagDefinition {
func getStaticProperty() -> String {
"""
static func \(getFuncName())(name: name\(type == TagType.screen.value ? ", path: String" : "")) {
static func \(getFuncName())() {
\(getlogFunction())
}
"""