Retours sur la structure du code
Some checks failed
gitea-openium/resgen.swift/pipeline/head There was a failure building this commit
Some checks failed
gitea-openium/resgen.swift/pipeline/head There was a failure building this commit
This commit is contained in:
@ -25,11 +25,9 @@ class AnalyticsFileParser {
|
||||
Analytics.exit(withError: error)
|
||||
}
|
||||
}
|
||||
|
||||
private static func getParameters(fromData data: [AnalyticsParameterDTO]) -> [AnalyticsParameter] {
|
||||
var parameters: [AnalyticsParameter] = []
|
||||
|
||||
data.forEach { value in
|
||||
|
||||
private static func getParameters(from parameters: [AnalyticsParameterDTO]) -> [AnalyticsParameter] {
|
||||
parameters.map { dtoParameter in
|
||||
// Type
|
||||
|
||||
let type = value.type.uppercasedFirst()
|
||||
@ -43,17 +41,18 @@ class AnalyticsFileParser {
|
||||
let error = AnalyticsError.invalidParameter("type of \(value.name)")
|
||||
Analytics.exit(withError: error)
|
||||
}
|
||||
|
||||
let parameter: AnalyticsParameter = AnalyticsParameter(name: value.name, type: type)
|
||||
|
||||
if let replaceIn = value.replaceIn {
|
||||
|
||||
let parameter = AnalyticsParameter(
|
||||
name: dtoParameter.name,
|
||||
type: type
|
||||
)
|
||||
|
||||
if let replaceIn = dtoParameter.replaceIn {
|
||||
parameter.replaceIn = replaceIn.components(separatedBy: ",")
|
||||
}
|
||||
|
||||
parameters.append(parameter)
|
||||
|
||||
return parameter
|
||||
}
|
||||
|
||||
return parameters
|
||||
}
|
||||
|
||||
private static func getTagDefinition(
|
||||
@ -64,24 +63,24 @@ class AnalyticsFileParser {
|
||||
comments: String?,
|
||||
parameters: [AnalyticsParameterDTO]?
|
||||
) -> AnalyticsDefinition {
|
||||
let definition: AnalyticsDefinition = AnalyticsDefinition(id: id, name: name, type: type)
|
||||
definition.tags = tags.components(separatedBy: ",")
|
||||
|
||||
let definition = AnalyticsDefinition(id: id, name: name, type: type)
|
||||
definition.tags = tags
|
||||
.components(separatedBy: ",")
|
||||
.map { $0.removeLeadingTrailingWhitespace() }
|
||||
|
||||
if let comments = comments {
|
||||
definition.comments = comments
|
||||
}
|
||||
|
||||
if let parameters = parameters {
|
||||
definition.parameters = Self.getParameters(fromData: parameters)
|
||||
definition.parameters = Self.getParameters(from: parameters)
|
||||
}
|
||||
|
||||
return definition
|
||||
}
|
||||
|
||||
private static func getTagDefinitionScreen(fromData screens: [AnalyticsDefinitionScreenDTO]) -> [AnalyticsDefinition] {
|
||||
var definitions: [AnalyticsDefinition] = []
|
||||
|
||||
for screen in screens {
|
||||
private static func getTagDefinitionScreen(from screens: [AnalyticsDefinitionScreenDTO]) -> [AnalyticsDefinition] {
|
||||
screens.map { screen in
|
||||
let definition: AnalyticsDefinition = Self.getTagDefinition(
|
||||
id: screen.id,
|
||||
name: screen.name,
|
||||
@ -90,10 +89,10 @@ class AnalyticsFileParser {
|
||||
comments: screen.comments,
|
||||
parameters: screen.parameters
|
||||
)
|
||||
|
||||
|
||||
if target.contains(Analytics.TargetType.matomo.value) {
|
||||
// Path
|
||||
|
||||
|
||||
guard let path = screen.path else {
|
||||
let error = AnalyticsError.missingElement("screen path")
|
||||
Analytics.exit(withError: error)
|
||||
@ -101,17 +100,13 @@ class AnalyticsFileParser {
|
||||
|
||||
definition.path = path
|
||||
}
|
||||
|
||||
definitions.append(definition)
|
||||
|
||||
return definition
|
||||
}
|
||||
|
||||
return definitions
|
||||
}
|
||||
|
||||
private static func getTagDefinitionEvent(fromData events: [AnalyticsDefinitionEventDTO]) -> [AnalyticsDefinition] {
|
||||
var definitions: [AnalyticsDefinition] = []
|
||||
|
||||
for event in events {
|
||||
private static func getTagDefinitionEvent(from events: [AnalyticsDefinitionEventDTO]) -> [AnalyticsDefinition] {
|
||||
events.map { event in
|
||||
let definition: AnalyticsDefinition = Self.getTagDefinition(
|
||||
id: event.id,
|
||||
name: event.name,
|
||||
@ -120,54 +115,57 @@ class AnalyticsFileParser {
|
||||
comments: event.comments,
|
||||
parameters: event.parameters
|
||||
)
|
||||
|
||||
|
||||
if target.contains(Analytics.TargetType.matomo.value) {
|
||||
// Category
|
||||
|
||||
guard let category = event.category else {
|
||||
let error = AnalyticsError.missingElement("event category")
|
||||
Analytics.exit(withError: error)
|
||||
}
|
||||
|
||||
|
||||
definition.category = category
|
||||
|
||||
|
||||
// Action
|
||||
|
||||
guard let action = event.action else {
|
||||
let error = AnalyticsError.missingElement("event action")
|
||||
Analytics.exit(withError: error)
|
||||
}
|
||||
|
||||
|
||||
definition.action = action
|
||||
}
|
||||
|
||||
definitions.append(definition)
|
||||
|
||||
return definition
|
||||
}
|
||||
|
||||
return definitions
|
||||
}
|
||||
|
||||
static func parse(_ inputFile: String, target: String) -> [AnalyticsCategory] {
|
||||
self.inputFile = inputFile
|
||||
self.target = target
|
||||
|
||||
let tagFile: AnalyticsFile = Self.parseYaml()
|
||||
var sections: [AnalyticsCategory] = []
|
||||
let tagFile = Self.parseYaml()
|
||||
|
||||
tagFile.categories.forEach { categorie in
|
||||
let section: AnalyticsCategory = AnalyticsCategory(id: categorie.id)
|
||||
|
||||
if let screens = categorie.screens {
|
||||
section.definitions.append(contentsOf: Self.getTagDefinitionScreen(fromData: screens))
|
||||
return tagFile
|
||||
.categories
|
||||
.map { categorie in
|
||||
let section: AnalyticsCategory = AnalyticsCategory(id: categorie.id)
|
||||
|
||||
if let screens = categorie.screens {
|
||||
section
|
||||
.definitions
|
||||
.append(
|
||||
contentsOf: Self.getTagDefinitionScreen(from: screens)
|
||||
)
|
||||
}
|
||||
|
||||
if let events = categorie.events {
|
||||
section
|
||||
.definitions
|
||||
.append(
|
||||
contentsOf: Self.getTagDefinitionEvent(from: events)
|
||||
)
|
||||
}
|
||||
|
||||
return section
|
||||
}
|
||||
|
||||
if let events = categorie.events {
|
||||
section.definitions.append(contentsOf: Self.getTagDefinitionEvent(fromData: events))
|
||||
}
|
||||
|
||||
sections.append(section)
|
||||
}
|
||||
|
||||
return sections
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user