Add parameter defaultValue and value and add replaceIn parameter in another parameter
Some checks failed
gitea-openium/resgen.swift/pipeline/pr-master There was a failure building this commit
Some checks failed
gitea-openium/resgen.swift/pipeline/pr-master There was a failure building this commit
This commit is contained in:
@ -51,14 +51,21 @@ class AnalyticsDefinition {
|
||||
var params = parameters
|
||||
var result: String
|
||||
|
||||
if type == .screen {
|
||||
params = params.filter { param in
|
||||
!param.replaceIn.isEmpty
|
||||
let paramsString = params.compactMap { parameter -> String? in
|
||||
guard parameter.value.isEmpty else { return nil }
|
||||
|
||||
let defaultValue: String
|
||||
switch parameter.type {
|
||||
case .bool:
|
||||
defaultValue = "\(parameter.defaultValue.lowercased())"
|
||||
case .int, .double:
|
||||
defaultValue = "\(parameter.defaultValue)"
|
||||
case .string:
|
||||
defaultValue = "\"\(parameter.defaultValue)\""
|
||||
}
|
||||
}
|
||||
|
||||
let paramsString = params.map { parameter in
|
||||
"\(parameter.name): \(parameter.type)"
|
||||
|
||||
let defaultValueString = parameter.defaultValue.isEmpty ? "" : " = \(defaultValue)"
|
||||
return "\(parameter.name): \(parameter.type.rawValue)\(defaultValueString)"
|
||||
}
|
||||
|
||||
if paramsString.count > 2 {
|
||||
@ -84,7 +91,10 @@ class AnalyticsDefinition {
|
||||
case "path": path = path.replacingFirstOccurrence(of: "_\(parameter.name.uppercased())_", with: "\\(\(parameter.name))")
|
||||
case "category": category = category.replacingFirstOccurrence(of: "_\(parameter.name.uppercased())_", with: "\\(\(parameter.name))")
|
||||
case "action": action = action.replacingFirstOccurrence(of: "_\(parameter.name.uppercased())_", with: "\\(\(parameter.name))")
|
||||
default: break
|
||||
default:
|
||||
if let param = parameters.first(where: { $0.name == rep }), param.value.isEmpty == false {
|
||||
param.value = param.value.replacingFirstOccurrence(of: "_\(parameter.name.uppercased())_", with: "\\(\(parameter.name))")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -99,7 +109,18 @@ class AnalyticsDefinition {
|
||||
}
|
||||
|
||||
supplementaryParams.forEach { param in
|
||||
params.append("\"\(param.name)\": \(param.name)")
|
||||
if param.value.isEmpty {
|
||||
params.append("\"\(param.name)\": \(param.name)")
|
||||
} else {
|
||||
switch param.type {
|
||||
case .bool:
|
||||
params.append("\"\(param.name)\": \(param.value.lowercased())")
|
||||
case .int, .double:
|
||||
params.append("\"\(param.name)\": \(param.value)")
|
||||
case .string:
|
||||
params.append("\"\(param.name)\": \"\(param.value)\"")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if params.count > 1 {
|
||||
@ -113,14 +134,15 @@ class AnalyticsDefinition {
|
||||
[\(params.joined(separator: ", "))]
|
||||
"""
|
||||
} else {
|
||||
result = "[:]"
|
||||
result = "nil"
|
||||
}
|
||||
|
||||
if type == .screen {
|
||||
return """
|
||||
logScreen(
|
||||
name: "\(name)",
|
||||
path: "\(path)"
|
||||
path: "\(path)",
|
||||
params: \(result)
|
||||
)
|
||||
"""
|
||||
} else {
|
||||
|
@ -41,5 +41,7 @@ struct AnalyticsDefinitionEventDTO: Codable {
|
||||
struct AnalyticsParameterDTO: Codable {
|
||||
var name: String
|
||||
var type: String
|
||||
var value: String?
|
||||
var defaultValue: String?
|
||||
var replaceIn: String?
|
||||
}
|
||||
|
@ -9,13 +9,17 @@ import Foundation
|
||||
|
||||
class AnalyticsParameter {
|
||||
var name: String
|
||||
var type: String
|
||||
var type: ParameterType
|
||||
var value: String
|
||||
var defaultValue: String
|
||||
var replaceIn: [String] = []
|
||||
|
||||
// MARK: - Init
|
||||
|
||||
init(name: String, type: String) {
|
||||
init(name: String, type: ParameterType, value: String, defaultValue: String) {
|
||||
self.name = name
|
||||
self.type = type
|
||||
self.value = value
|
||||
self.defaultValue = defaultValue
|
||||
}
|
||||
}
|
||||
|
15
Sources/ResgenSwift/Analytics/Model/ParameterType.swift
Normal file
15
Sources/ResgenSwift/Analytics/Model/ParameterType.swift
Normal file
@ -0,0 +1,15 @@
|
||||
//
|
||||
// File.swift
|
||||
//
|
||||
//
|
||||
// Created by Loris Perret on 17/07/2024.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
enum ParameterType: String {
|
||||
case string = "String"
|
||||
case int = "Int"
|
||||
case double = "Double"
|
||||
case bool = "Bool"
|
||||
}
|
Reference in New Issue
Block a user