Skip to content

Commit a5bf1ea

Browse files
author
Jonas Kellerer
committed
feat: allow features to be empty
1 parent 88acb65 commit a5bf1ea

File tree

4 files changed

+18
-9
lines changed

4 files changed

+18
-9
lines changed

lapis2/src/main/kotlin/org/genspectrum/lapis/config/DatabaseConfig.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ data class DatabaseSchema(
66
val instanceName: String,
77
val metadata: List<DatabaseMetadata>,
88
val primaryKey: String,
9-
val features: List<DatabaseFeature>,
9+
val features: List<DatabaseFeature>?,
1010
)
1111

1212
data class DatabaseMetadata(val name: String, val type: String)

lapis2/src/main/kotlin/org/genspectrum/lapis/config/SequenceFilterFields.kt

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,24 @@ data class SequenceFilterFields(val fields: Map<FieldName, SequenceFilterFieldTy
66
companion object {
77
private val nucleotideMutationsField = Pair("nucleotideMutations", SequenceFilterFieldType.MutationsList)
88

9-
fun fromDatabaseConfig(databaseConfig: DatabaseConfig) = SequenceFilterFields(
10-
fields = databaseConfig.schema.metadata
9+
fun fromDatabaseConfig(databaseConfig: DatabaseConfig): SequenceFilterFields {
10+
val metadataFields = databaseConfig.schema.metadata
1111
.map(::mapToSequenceFilterFields)
1212
.flatten()
13-
.toMap() +
13+
.toMap()
14+
val staticFields = listOf(nucleotideMutationsField)
15+
16+
val featuresFields = if (databaseConfig.schema.features.isNullOrEmpty()) {
17+
emptyMap<FieldName, SequenceFilterFieldType>()
18+
} else {
1419
databaseConfig.schema.features
1520
.map(::mapToSequenceFilterFieldsFromFeatures)
1621
.flatten()
17-
.toMap() +
18-
nucleotideMutationsField,
19-
)
22+
.toMap()
23+
}
24+
25+
return SequenceFilterFields(fields = metadataFields + staticFields + featuresFields)
26+
}
2027
}
2128
}
2229

@@ -35,7 +42,7 @@ private fun mapToSequenceFilterFields(databaseMetadata: DatabaseMetadata) = when
3542
}
3643

3744
private fun mapToSequenceFilterFieldsFromFeatures(databaseFeature: DatabaseFeature) = when (databaseFeature.name) {
38-
"sarsCoV2VariantQuery" -> listOf(databaseFeature.name to SequenceFilterFieldType.VariantQuery)
45+
"sarsCoV2VariantQuery" -> listOf("variantQuery" to SequenceFilterFieldType.VariantQuery)
3946
else -> throw IllegalArgumentException(
4047
"Unknown feature '${databaseFeature.name}'",
4148
)

lapis2/src/test/resources/config/testDatabaseConfig.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,5 @@ schema:
1212
- name: pangoLineage
1313
type: pango_lineage
1414
features:
15-
- feature: sarsCoV2VariantQuery
15+
- name: sarsCoV2VariantQuery
1616
primaryKey: gisaid_epi_isl

siloLapisTests/testDatabaseConfig.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,6 @@ schema:
1111
type: string
1212
- name: pangoLineage
1313
type: pango_lineage
14+
features:
15+
- name: sarsCoV2VariantQuery
1416
primaryKey: gisaid_epi_isl

0 commit comments

Comments
 (0)