Skip to content

Commit 44e980a

Browse files
committed
feat: Add RuleLevel enum to the config file
1 parent 3957686 commit 44e980a

2 files changed

Lines changed: 23 additions & 6 deletions

File tree

src/main/kotlin/br/com/felipezorzo/zpa/cli/Main.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ class Main(private val args: Arguments) {
110110
ActiveRuleConfiguration(
111111
repositoryKey,
112112
ruleKey,
113-
it.value.options.level,
113+
it.value.options.level.toString(),
114114
it.value.options.parameters
115115
)
116116
})

src/main/kotlin/br/com/felipezorzo/zpa/cli/config/ConfigFile.kt

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
package br.com.felipezorzo.zpa.cli.config
22

3+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties
4+
import com.fasterxml.jackson.annotation.JsonProperty
35
import com.fasterxml.jackson.core.JsonGenerator
46
import com.fasterxml.jackson.core.JsonParser
57
import com.fasterxml.jackson.databind.*
68
import com.fasterxml.jackson.databind.annotation.JsonDeserialize
79
import com.fasterxml.jackson.databind.annotation.JsonSerialize
810
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
911

12+
@JsonIgnoreProperties(value = ["\$schema"])
1013
data class ConfigFile(
1114
val rules: Map<String, RuleConfiguration>
1215
)
@@ -17,11 +20,25 @@ class RuleConfiguration {
1720
var options: RuleOptions = RuleOptions()
1821
}
1922

23+
enum class RuleLevel {
24+
@JsonProperty("on")
25+
ON,
26+
@JsonProperty("off")
27+
OFF,
28+
@JsonProperty("blocker")
29+
BLOCKER,
30+
@JsonProperty("critical")
31+
CRITICAL,
32+
@JsonProperty("major")
33+
MAJOR,
34+
@JsonProperty("minor")
35+
MINOR,
36+
@JsonProperty("info")
37+
INFO
38+
}
39+
2040
class RuleOptions {
21-
var level: String? = null
22-
set(value) {
23-
field = value?.lowercase()
24-
}
41+
lateinit var level: RuleLevel
2542
var parameters: Map<String, String> = emptyMap()
2643
}
2744

@@ -32,7 +49,7 @@ class RuleCategoryDeserializer : JsonDeserializer<RuleConfiguration>() {
3249
val mapper = jacksonObjectMapper()
3350

3451
if (node.isTextual) {
35-
ruleConfiguration.options.level = node.asText().uppercase()
52+
ruleConfiguration.options.level = RuleLevel.valueOf(node.asText().uppercase())
3653
} else if (node.isObject) {
3754
ruleConfiguration.options = mapper.treeToValue(node, RuleOptions::class.java)
3855
}

0 commit comments

Comments
 (0)