Retours sur la structure du code
This commit is contained in:
@ -11,10 +11,14 @@ class AnalyticsCategory {
|
||||
let id: String // OnBoarding
|
||||
var definitions = [AnalyticsDefinition]()
|
||||
|
||||
// MARK: - Init
|
||||
|
||||
init(id: String) {
|
||||
self.id = id
|
||||
}
|
||||
|
||||
// MARK: - Methods
|
||||
|
||||
func hasOneOrMoreMatchingTags(tags: [String]) -> Bool {
|
||||
let allTags = definitions.flatMap { $0.tags }
|
||||
let allTagsSet = Set(allTags)
|
||||
|
@ -6,6 +6,7 @@
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import ToolCore
|
||||
|
||||
class AnalyticsDefinition {
|
||||
let id: String
|
||||
@ -18,12 +19,16 @@ class AnalyticsDefinition {
|
||||
var parameters: [AnalyticsParameter] = []
|
||||
var type: TagType
|
||||
|
||||
// MARK: - Init
|
||||
|
||||
init(id: String, name: String, type: TagType) {
|
||||
self.id = id
|
||||
self.name = name
|
||||
self.type = type
|
||||
}
|
||||
|
||||
// MARK: - Methods
|
||||
|
||||
func hasOneOrMoreMatchingTags(inputTags: [String]) -> Bool {
|
||||
if Set(inputTags).isDisjoint(with: tags) {
|
||||
return false
|
||||
@ -31,8 +36,8 @@ class AnalyticsDefinition {
|
||||
return true
|
||||
}
|
||||
|
||||
// MARK: - Methods
|
||||
|
||||
// MARK: - Private Methods
|
||||
|
||||
private func getFuncName() -> String {
|
||||
var pascalCaseTitle: String = ""
|
||||
id.components(separatedBy: "_").forEach { word in
|
||||
@ -96,7 +101,7 @@ class AnalyticsDefinition {
|
||||
supplementaryParams.forEach { param in
|
||||
params.append("\"\(param.name)\": \(param.name)")
|
||||
}
|
||||
|
||||
|
||||
if params.count > 1 {
|
||||
result = """
|
||||
[
|
||||
@ -150,27 +155,3 @@ class AnalyticsDefinition {
|
||||
"""
|
||||
}
|
||||
}
|
||||
|
||||
extension AnalyticsDefinition {
|
||||
enum TagType {
|
||||
case screen
|
||||
case event
|
||||
}
|
||||
}
|
||||
|
||||
extension String {
|
||||
func replacingFirstOccurrence(of: String, with: String) -> Self {
|
||||
if let range = self.range(of: of) {
|
||||
let tmp = self.replacingOccurrences(
|
||||
of: of,
|
||||
with: with,
|
||||
options: .literal,
|
||||
range: range
|
||||
)
|
||||
|
||||
return tmp
|
||||
}
|
||||
|
||||
return self
|
||||
}
|
||||
}
|
||||
|
@ -17,9 +17,7 @@ struct AnalyticsCategoryDTO: Codable {
|
||||
var events: [AnalyticsDefinitionEventDTO]?
|
||||
}
|
||||
|
||||
protocol AnalyticsDefinitionDTO: Codable {}
|
||||
|
||||
struct AnalyticsDefinitionScreenDTO: AnalyticsDefinitionDTO {
|
||||
struct AnalyticsDefinitionScreenDTO: Codable {
|
||||
var id: String
|
||||
var name: String
|
||||
var tags: String
|
||||
@ -29,7 +27,7 @@ struct AnalyticsDefinitionScreenDTO: AnalyticsDefinitionDTO {
|
||||
var path: String?
|
||||
}
|
||||
|
||||
struct AnalyticsDefinitionEventDTO: AnalyticsDefinitionDTO {
|
||||
struct AnalyticsDefinitionEventDTO: Codable {
|
||||
var id: String
|
||||
var name: String
|
||||
var tags: String
|
||||
|
@ -12,6 +12,8 @@ class AnalyticsParameter {
|
||||
var type: String
|
||||
var replaceIn: [String] = []
|
||||
|
||||
// MARK: - Init
|
||||
|
||||
init(name: String, type: String) {
|
||||
self.name = name
|
||||
self.type = type
|
||||
|
16
Sources/ResgenSwift/Analytics/Model/TagType.swift
Normal file
16
Sources/ResgenSwift/Analytics/Model/TagType.swift
Normal file
@ -0,0 +1,16 @@
|
||||
//
|
||||
// TagType.swift
|
||||
//
|
||||
//
|
||||
// Created by Thibaut Schmitt on 08/12/2023.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
extension AnalyticsDefinition {
|
||||
|
||||
enum TagType {
|
||||
case screen
|
||||
case event
|
||||
}
|
||||
}
|
22
Sources/ResgenSwift/Analytics/Model/TargetType.swift
Normal file
22
Sources/ResgenSwift/Analytics/Model/TargetType.swift
Normal file
@ -0,0 +1,22 @@
|
||||
//
|
||||
// TargetType.swift
|
||||
//
|
||||
//
|
||||
// Created by Thibaut Schmitt on 08/12/2023.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
enum TrackerType: CaseIterable {
|
||||
case matomo
|
||||
case firebase
|
||||
|
||||
var value: String {
|
||||
switch self {
|
||||
case .matomo:
|
||||
"matomo"
|
||||
case .firebase:
|
||||
"firebase"
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user