From 4922fed4e6e7e11389a5d3168c1fdd090dafe8d9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 6 Feb 2026 07:39:07 +0000 Subject: [PATCH 1/3] chore(backend): bump the minorandpatch group across 1 directory with 5 updates Bumps the minorandpatch group with 5 updates in the /backend directory: | Package | From | To | | --- | --- | --- | | [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) | `42.7.7` | `42.7.9` | | [org.jetbrains.kotlinx:kotlinx-datetime](https://github.com/Kotlin/kotlinx-datetime) | `0.6.1` | `0.7.1-0.6.x-compat` | | [jvm](https://github.com/JetBrains/kotlin) | `2.0.21` | `2.3.0` | | [plugin.spring](https://github.com/JetBrains/kotlin) | `2.0.21` | `2.3.0` | | [io.spring.dependency-management](https://github.com/spring-gradle-plugins/dependency-management-plugin) | `1.1.6` | `1.1.7` | Updates `org.postgresql:postgresql` from 42.7.7 to 42.7.9 - [Release notes](https://github.com/pgjdbc/pgjdbc/releases) - [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md) - [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.7...REL42.7.9) Updates `org.jetbrains.kotlinx:kotlinx-datetime` from 0.6.1 to 0.7.1-0.6.x-compat - [Release notes](https://github.com/Kotlin/kotlinx-datetime/releases) - [Changelog](https://github.com/Kotlin/kotlinx-datetime/blob/master/CHANGELOG.md) - [Commits](https://github.com/Kotlin/kotlinx-datetime/compare/v0.6.1...v0.7.1-0.6.x-compat) Updates `jvm` from 2.0.21 to 2.3.0 - [Release notes](https://github.com/JetBrains/kotlin/releases) - [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md) - [Commits](https://github.com/JetBrains/kotlin/compare/v2.0.21...v2.3.0) Updates `plugin.spring` from 2.0.21 to 2.3.0 - [Release notes](https://github.com/JetBrains/kotlin/releases) - [Changelog](https://github.com/JetBrains/kotlin/blob/master/ChangeLog.md) - [Commits](https://github.com/JetBrains/kotlin/compare/v2.0.21...v2.3.0) Updates `io.spring.dependency-management` from 1.1.6 to 1.1.7 - [Release notes](https://github.com/spring-gradle-plugins/dependency-management-plugin/releases) - [Commits](https://github.com/spring-gradle-plugins/dependency-management-plugin/compare/v1.1.6...v1.1.7) --- updated-dependencies: - dependency-name: org.postgresql:postgresql dependency-version: 42.7.9 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: minorandpatch - dependency-name: org.jetbrains.kotlinx:kotlinx-datetime dependency-version: 0.7.1-0.6.x-compat dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minorandpatch - dependency-name: jvm dependency-version: 2.3.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minorandpatch - dependency-name: plugin.spring dependency-version: 2.3.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minorandpatch - dependency-name: io.spring.dependency-management dependency-version: 1.1.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: minorandpatch ... Signed-off-by: dependabot[bot] --- backend/build.gradle.kts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/backend/build.gradle.kts b/backend/build.gradle.kts index 6beb719a..670f498a 100644 --- a/backend/build.gradle.kts +++ b/backend/build.gradle.kts @@ -1,10 +1,10 @@ import org.gradle.api.tasks.testing.logging.TestExceptionFormat plugins { - kotlin("jvm") version "2.0.21" - kotlin("plugin.spring") version "2.0.21" + kotlin("jvm") version "2.3.10" + kotlin("plugin.spring") version "2.3.10" id("org.springframework.boot") version "3.4.0" - id("io.spring.dependency-management") version "1.1.6" + id("io.spring.dependency-management") version "1.1.7" id("org.jlleitschuh.gradle.ktlint") version "12.1.2" id("org.springdoc.openapi-gradle-plugin") version "1.9.0" } @@ -29,10 +29,10 @@ dependencies { implementation("org.jetbrains.kotlin:kotlin-stdlib") implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.7.0") implementation("org.flywaydb:flyway-database-postgresql:11.0.0") - implementation("org.postgresql:postgresql:42.7.7") + implementation("org.postgresql:postgresql:42.7.9") implementation("org.jetbrains.exposed:exposed-spring-boot-starter:0.56.0") implementation("org.jetbrains.exposed:exposed-json:0.56.0") - implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.6.1") + implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.7.1-0.6.x-compat") implementation("com.fasterxml.jackson.module:jackson-module-kotlin") testImplementation("org.springframework.boot:spring-boot-starter-test") { From c4a3798e9d107a7977353913c7bbd41fc670c2c4 Mon Sep 17 00:00:00 2001 From: Fabian Engelniederhammer Date: Fri, 6 Feb 2026 09:54:59 +0100 Subject: [PATCH 2/3] chore(backend): also bump gradle to 9.3.1 and fix some deprecation warnings Apparently we need `testRuntimeOnly("org.junit.platform:junit-platform-launcher")` now: https://github.com/gradle/gradle/issues/34512#issuecomment-3145182665 --- backend/build.gradle.kts | 2 ++ backend/gradle/wrapper/gradle-wrapper.properties | 2 +- .../org/genspectrum/dashboardsbackend/util/DateProvider.kt | 2 +- .../kotlin/org/genspectrum/dashboardsbackend/SwaggerUiTest.kt | 2 +- .../dashboardsbackend/controller/InfoControllerTest.kt | 2 +- .../dashboardsbackend/controller/SubscriptionsControllerTest.kt | 2 +- .../controller/SubscriptionsControllerTriggerEvaluationTest.kt | 2 +- .../model/triggerevaluation/CountTriggerEvaluatorTest.kt | 2 +- .../model/triggerevaluation/ProportionTriggerEvaluatorTest.kt | 2 +- 9 files changed, 10 insertions(+), 8 deletions(-) diff --git a/backend/build.gradle.kts b/backend/build.gradle.kts index 670f498a..79823b32 100644 --- a/backend/build.gradle.kts +++ b/backend/build.gradle.kts @@ -43,6 +43,8 @@ dependencies { testImplementation("org.testcontainers:testcontainers-postgresql:2.0.3") testImplementation("org.mock-server:mockserver-netty:5.15.0") testImplementation("org.mock-server:mockserver-spring-test-listener:5.15.0") + + testRuntimeOnly("org.junit.platform:junit-platform-launcher") } kotlin { diff --git a/backend/gradle/wrapper/gradle-wrapper.properties b/backend/gradle/wrapper/gradle-wrapper.properties index d4081da4..37f78a6a 100644 --- a/backend/gradle/wrapper/gradle-wrapper.properties +++ b/backend/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/util/DateProvider.kt b/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/util/DateProvider.kt index f012ef85..b3a36f8a 100644 --- a/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/util/DateProvider.kt +++ b/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/util/DateProvider.kt @@ -1,9 +1,9 @@ package org.genspectrum.dashboardsbackend.util -import kotlinx.datetime.Clock import kotlinx.datetime.TimeZone import kotlinx.datetime.toLocalDateTime import org.springframework.stereotype.Component +import kotlin.time.Clock @Component class DateProvider { diff --git a/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/SwaggerUiTest.kt b/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/SwaggerUiTest.kt index b9c2016b..13e5c697 100644 --- a/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/SwaggerUiTest.kt +++ b/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/SwaggerUiTest.kt @@ -17,7 +17,7 @@ import org.springframework.test.web.servlet.result.MockMvcResultMatchers.status @SpringBootTest @AutoConfigureMockMvc -class SwaggerUiTest(@Autowired val mockMvc: MockMvc) { +class SwaggerUiTest(@param:Autowired val mockMvc: MockMvc) { @Test fun `Swagger UI endpoint is reachable`() { diff --git a/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/controller/InfoControllerTest.kt b/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/controller/InfoControllerTest.kt index 19d7c16f..f120a90a 100644 --- a/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/controller/InfoControllerTest.kt +++ b/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/controller/InfoControllerTest.kt @@ -13,7 +13,7 @@ import org.springframework.test.web.servlet.result.MockMvcResultMatchers.status @SpringBootTest @AutoConfigureMockMvc -class InfoControllerTest(@Autowired val mockMvc: MockMvc) { +class InfoControllerTest(@param:Autowired val mockMvc: MockMvc) { @Test fun `WHEN calling root THEN responds with a hello page`() { mockMvc.perform(get("/")) diff --git a/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/controller/SubscriptionsControllerTest.kt b/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/controller/SubscriptionsControllerTest.kt index df7f63f3..817aa4ce 100644 --- a/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/controller/SubscriptionsControllerTest.kt +++ b/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/controller/SubscriptionsControllerTest.kt @@ -31,7 +31,7 @@ fun getNewUserId(): String { @AutoConfigureMockMvc @Import(SubscriptionsClient::class) class SubscriptionsControllerTest( - @Autowired private val subscriptionsClient: SubscriptionsClient, + @param:Autowired private val subscriptionsClient: SubscriptionsClient, ) { @Test fun `GIVEN I created a subscription WHEN getting subscriptions THEN contains created subscription`() { diff --git a/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/controller/SubscriptionsControllerTriggerEvaluationTest.kt b/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/controller/SubscriptionsControllerTriggerEvaluationTest.kt index f5e127a4..5325d5f4 100644 --- a/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/controller/SubscriptionsControllerTriggerEvaluationTest.kt +++ b/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/controller/SubscriptionsControllerTriggerEvaluationTest.kt @@ -30,7 +30,7 @@ import org.springframework.test.web.servlet.result.MockMvcResultMatchers.status @AutoConfigureMockMvc @Import(SubscriptionsClient::class) class SubscriptionsControllerTriggerEvaluationTest( - @Autowired private val subscriptionsClient: SubscriptionsClient, + @param:Autowired private val subscriptionsClient: SubscriptionsClient, ) { @MockkBean private lateinit var lapisClientProviderMock: LapisClientProvider diff --git a/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/model/triggerevaluation/CountTriggerEvaluatorTest.kt b/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/model/triggerevaluation/CountTriggerEvaluatorTest.kt index a75d70bc..c665a7c2 100644 --- a/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/model/triggerevaluation/CountTriggerEvaluatorTest.kt +++ b/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/model/triggerevaluation/CountTriggerEvaluatorTest.kt @@ -42,7 +42,7 @@ import org.springframework.boot.test.context.SpringBootTest ) @MockServerTest class CountTriggerEvaluatorTest( - @Autowired private val underTest: TriggerEvaluator, + @param:Autowired private val underTest: TriggerEvaluator, ) { private lateinit var mockServerClient: MockServerClient diff --git a/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/model/triggerevaluation/ProportionTriggerEvaluatorTest.kt b/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/model/triggerevaluation/ProportionTriggerEvaluatorTest.kt index 1542c947..085c300b 100644 --- a/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/model/triggerevaluation/ProportionTriggerEvaluatorTest.kt +++ b/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/model/triggerevaluation/ProportionTriggerEvaluatorTest.kt @@ -40,7 +40,7 @@ import org.springframework.boot.test.context.SpringBootTest ) @MockServerTest class ProportionTriggerEvaluatorTest( - @Autowired private val underTest: TriggerEvaluator, + @param:Autowired private val underTest: TriggerEvaluator, ) { private lateinit var mockServerClient: MockServerClient From 388264d0c00cb2a476171266ba94036ff823fc18 Mon Sep 17 00:00:00 2001 From: Fabian Engelniederhammer Date: Fri, 6 Feb 2026 10:42:57 +0100 Subject: [PATCH 3/3] chore(backend): update ktlint version and format --- backend/build.gradle.kts | 5 +++ .../dashboardsbackend/api/Subscription.kt | 5 +-- .../api/TriggerEvaluation.kt | 23 +++--------- .../config/DashboardsConfig.kt | 22 ++--------- .../controller/SubscriptionsController.kt | 37 ++++++++----------- .../model/subscription/SubscriptionModel.kt | 20 ++++------ .../model/triggerevaluation/LapisClient.kt | 32 +++++----------- .../triggerevaluation/TriggerEvaluator.kt | 5 +-- .../controller/SubscriptionsClient.kt | 5 +-- .../controller/SubscriptionsControllerTest.kt | 8 +--- .../CountTriggerEvaluatorTest.kt | 9 ++--- .../ProportionTriggerEvaluatorTest.kt | 9 ++--- 12 files changed, 58 insertions(+), 122 deletions(-) diff --git a/backend/build.gradle.kts b/backend/build.gradle.kts index 79823b32..32552269 100644 --- a/backend/build.gradle.kts +++ b/backend/build.gradle.kts @@ -47,6 +47,11 @@ dependencies { testRuntimeOnly("org.junit.platform:junit-platform-launcher") } +// taken from https://github.com/JLLeitschuh/ktlint-gradle/issues/809#issuecomment-2515514826 +ktlint { + version.set("1.4.1") +} + kotlin { compilerOptions { freeCompilerArgs.addAll("-Xjsr305=strict") diff --git a/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/api/Subscription.kt b/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/api/Subscription.kt index 3b6cf88b..cba4e4aa 100644 --- a/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/api/Subscription.kt +++ b/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/api/Subscription.kt @@ -48,10 +48,7 @@ sealed interface Trigger { } @Schema(description = "A trigger that is triggered when a certain count is reached") - data class CountTrigger @JsonCreator constructor( - val count: Int, - val filter: LapisFilter, - ) : Trigger { + data class CountTrigger @JsonCreator constructor(val count: Int, val filter: LapisFilter) : Trigger { val type: CountTriggerType = CountTriggerType.COUNT } diff --git a/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/api/TriggerEvaluation.kt b/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/api/TriggerEvaluation.kt index 5595af6a..44c4f192 100644 --- a/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/api/TriggerEvaluation.kt +++ b/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/api/TriggerEvaluation.kt @@ -1,14 +1,9 @@ package org.genspectrum.dashboardsbackend.api -data class TriggerEvaluationResponse( - val result: TriggerEvaluationResult, -) +data class TriggerEvaluationResponse(val result: TriggerEvaluationResult) sealed interface TriggerEvaluationResult { - data class EvaluationError( - val message: String, - val statusCode: Int, - ) : TriggerEvaluationResult { + data class EvaluationError(val message: String, val statusCode: Int) : TriggerEvaluationResult { val type = EvaluationErrorType.EvaluationError enum class EvaluationErrorType { @@ -16,11 +11,8 @@ sealed interface TriggerEvaluationResult { } } - data class ConditionMet( - val evaluatedValue: Number, - val threshold: Number, - val lapisDataVersion: String?, - ) : TriggerEvaluationResult { + data class ConditionMet(val evaluatedValue: Number, val threshold: Number, val lapisDataVersion: String?) : + TriggerEvaluationResult { val type = ConditionMetType.ConditionMet enum class ConditionMetType { @@ -28,11 +20,8 @@ sealed interface TriggerEvaluationResult { } } - data class ConditionNotMet( - val evaluatedValue: Number?, - val threshold: Number, - val lapisDataVersion: String?, - ) : TriggerEvaluationResult { + data class ConditionNotMet(val evaluatedValue: Number?, val threshold: Number, val lapisDataVersion: String?) : + TriggerEvaluationResult { val type = ConditionNotMetType.ConditionNotMet enum class ConditionNotMetType { diff --git a/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/config/DashboardsConfig.kt b/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/config/DashboardsConfig.kt index 160ede85..6db05404 100644 --- a/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/config/DashboardsConfig.kt +++ b/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/config/DashboardsConfig.kt @@ -3,27 +3,13 @@ package org.genspectrum.dashboardsbackend.config import org.springframework.boot.context.properties.ConfigurationProperties @ConfigurationProperties(prefix = "dashboards") -data class DashboardsConfig( - val organisms: Map, -) { +data class DashboardsConfig(val organisms: Map) { fun getOrganismConfig(organism: String) = organisms[organism] ?: throw IllegalArgumentException("No configuration found for organism $organism") } -data class OrganismConfig( - val lapis: LapisConfig, - val externalNavigationLinks: List?, -) +data class OrganismConfig(val lapis: LapisConfig, val externalNavigationLinks: List?) -data class LapisConfig( - val url: String, - val mainDateField: String, - val additionalFilters: Map?, -) +data class LapisConfig(val url: String, val mainDateField: String, val additionalFilters: Map?) -data class ExternalNavigationLink( - val url: String, - val label: String, - val menuIcon: String, - val description: String, -) +data class ExternalNavigationLink(val url: String, val label: String, val menuIcon: String, val description: String) diff --git a/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/controller/SubscriptionsController.kt b/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/controller/SubscriptionsController.kt index 4a0c172c..3920287b 100644 --- a/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/controller/SubscriptionsController.kt +++ b/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/controller/SubscriptionsController.kt @@ -34,21 +34,18 @@ class SubscriptionsController( fun getSubscription( @IdParameter @PathVariable id: String, @UserIdParameter @RequestParam userId: String, - ): Subscription { - return subscriptionModel.getSubscription( - subscriptionId = id, - userId = userId, - ) - } + ): Subscription = subscriptionModel.getSubscription( + subscriptionId = id, + userId = userId, + ) @GetMapping("/subscriptions", produces = [MediaType.APPLICATION_JSON_VALUE]) @Operation( summary = "Get all subscriptions of a user", description = "Returns a list of all subscriptions of a user.", ) - fun getSubscriptions(@UserIdParameter @RequestParam userId: String): List { - return subscriptionModel.getSubscriptions(userId) - } + fun getSubscriptions(@UserIdParameter @RequestParam userId: String): List = + subscriptionModel.getSubscriptions(userId) @PostMapping("/subscriptions") @ResponseStatus(HttpStatus.CREATED) @@ -59,12 +56,10 @@ class SubscriptionsController( fun postSubscriptions( @RequestBody subscription: SubscriptionRequest, @UserIdParameter @RequestParam userId: String, - ): Subscription { - return subscriptionModel.postSubscriptions( - request = subscription, - userId = userId, - ) - } + ): Subscription = subscriptionModel.postSubscriptions( + request = subscription, + userId = userId, + ) @DeleteMapping("/subscriptions/{id}") @ResponseStatus(HttpStatus.NO_CONTENT) @@ -88,13 +83,11 @@ class SubscriptionsController( @RequestBody subscription: SubscriptionUpdate, @IdParameter @PathVariable id: String, @UserIdParameter @RequestParam userId: String, - ): Subscription { - return subscriptionModel.putSubscription( - subscriptionId = id, - subscriptionUpdate = subscription, - userId = userId, - ) - } + ): Subscription = subscriptionModel.putSubscription( + subscriptionId = id, + subscriptionUpdate = subscription, + userId = userId, + ) @GetMapping("/subscriptions/evaluateTrigger") @Operation( diff --git a/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/model/subscription/SubscriptionModel.kt b/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/model/subscription/SubscriptionModel.kt index 5b86b717..55c6fa4d 100644 --- a/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/model/subscription/SubscriptionModel.kt +++ b/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/model/subscription/SubscriptionModel.kt @@ -14,26 +14,20 @@ import javax.sql.DataSource @Service @Transactional -class SubscriptionModel( - pool: DataSource, - private val dashboardsConfig: DashboardsConfig, -) { +class SubscriptionModel(pool: DataSource, private val dashboardsConfig: DashboardsConfig) { init { Database.connect(pool) } - fun getSubscription(subscriptionId: String, userId: String): Subscription { - return SubscriptionEntity.findForUser(convertToUuid(subscriptionId), userId) + fun getSubscription(subscriptionId: String, userId: String): Subscription = + SubscriptionEntity.findForUser(convertToUuid(subscriptionId), userId) ?.toSubscription() ?: throw NotFoundException("Subscription $subscriptionId not found") - } - fun getSubscriptions(userId: String): List { - return SubscriptionEntity.find { - SubscriptionTable.userId eq userId - }.map { - it.toSubscription() - } + fun getSubscriptions(userId: String): List = SubscriptionEntity.find { + SubscriptionTable.userId eq userId + }.map { + it.toSubscription() } fun postSubscriptions(request: SubscriptionRequest, userId: String): Subscription { diff --git a/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/model/triggerevaluation/LapisClient.kt b/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/model/triggerevaluation/LapisClient.kt index 516b0b13..b596234a 100644 --- a/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/model/triggerevaluation/LapisClient.kt +++ b/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/model/triggerevaluation/LapisClient.kt @@ -99,35 +99,21 @@ class LapisClient( } } - private fun String.truncateAfter(maxLength: Int): String { - return if (length > maxLength) { - substring(0, maxLength) + "..." - } else { - this - } + private fun String.truncateAfter(maxLength: Int): String = if (length > maxLength) { + substring(0, maxLength) + "..." + } else { + this } } sealed interface LapisResponse -data class LapisAggregatedResponse( - val data: List, - val info: LapisInfo, -) : LapisResponse +data class LapisAggregatedResponse(val data: List, val info: LapisInfo) : LapisResponse -data class AggregatedData( - val count: Int, -) +data class AggregatedData(val count: Int) -data class LapisError( - val error: ProblemDetail, - val info: LapisInfo, -) : LapisResponse +data class LapisError(val error: ProblemDetail, val info: LapisInfo) : LapisResponse -data class LapisInfo( - val dataVersion: String? = null, -) +data class LapisInfo(val dataVersion: String? = null) -data class LapisNotReachableError( - val message: String, -) : LapisResponse +data class LapisNotReachableError(val message: String) : LapisResponse diff --git a/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/model/triggerevaluation/TriggerEvaluator.kt b/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/model/triggerevaluation/TriggerEvaluator.kt index cd2372e5..8c0f4847 100644 --- a/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/model/triggerevaluation/TriggerEvaluator.kt +++ b/backend/src/main/kotlin/org/genspectrum/dashboardsbackend/model/triggerevaluation/TriggerEvaluator.kt @@ -59,9 +59,8 @@ class TriggerEvaluator( ) } - private fun additionalFilters(organism: String): Map { - return dashboardsConfig.getOrganismConfig(organism).lapis.additionalFilters ?: emptyMap() - } + private fun additionalFilters(organism: String): Map = + dashboardsConfig.getOrganismConfig(organism).lapis.additionalFilters ?: emptyMap() } private interface TriggerComputation { diff --git a/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/controller/SubscriptionsClient.kt b/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/controller/SubscriptionsClient.kt index 341c439d..4d672007 100644 --- a/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/controller/SubscriptionsClient.kt +++ b/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/controller/SubscriptionsClient.kt @@ -15,10 +15,7 @@ import org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put import org.springframework.test.web.servlet.result.MockMvcResultMatchers.content import org.springframework.test.web.servlet.result.MockMvcResultMatchers.status -class SubscriptionsClient( - private val mockMvc: MockMvc, - private val objectMapper: ObjectMapper, -) { +class SubscriptionsClient(private val mockMvc: MockMvc, private val objectMapper: ObjectMapper) { fun getSubscriptionRaw(id: String, userId: String) = mockMvc.perform(get("/subscriptions/$id?userId=$userId")) fun getSubscription(id: String, userId: String): Subscription = deserializeJsonResponse( diff --git a/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/controller/SubscriptionsControllerTest.kt b/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/controller/SubscriptionsControllerTest.kt index 817aa4ce..bf1a7eb6 100644 --- a/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/controller/SubscriptionsControllerTest.kt +++ b/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/controller/SubscriptionsControllerTest.kt @@ -23,16 +23,12 @@ import org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPat import org.springframework.test.web.servlet.result.MockMvcResultMatchers.status import java.util.* -fun getNewUserId(): String { - return UUID.randomUUID().toString() -} +fun getNewUserId(): String = UUID.randomUUID().toString() @SpringBootTest @AutoConfigureMockMvc @Import(SubscriptionsClient::class) -class SubscriptionsControllerTest( - @param:Autowired private val subscriptionsClient: SubscriptionsClient, -) { +class SubscriptionsControllerTest(@param:Autowired private val subscriptionsClient: SubscriptionsClient) { @Test fun `GIVEN I created a subscription WHEN getting subscriptions THEN contains created subscription`() { val userId = getNewUserId() diff --git a/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/model/triggerevaluation/CountTriggerEvaluatorTest.kt b/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/model/triggerevaluation/CountTriggerEvaluatorTest.kt index c665a7c2..af52a630 100644 --- a/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/model/triggerevaluation/CountTriggerEvaluatorTest.kt +++ b/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/model/triggerevaluation/CountTriggerEvaluatorTest.kt @@ -41,9 +41,7 @@ import org.springframework.boot.test.context.SpringBootTest ], ) @MockServerTest -class CountTriggerEvaluatorTest( - @param:Autowired private val underTest: TriggerEvaluator, -) { +class CountTriggerEvaluatorTest(@param:Autowired private val underTest: TriggerEvaluator) { private lateinit var mockServerClient: MockServerClient @MockkBean @@ -261,13 +259,12 @@ class CountTriggerEvaluatorTest( assertThat(exception.message, containsString("Failed to deserialize error response from LAPIS")) } - private fun isEvaluationErrorWith(message: Matcher, statusCode: Int): Matcher { - return allOf( + private fun isEvaluationErrorWith(message: Matcher, statusCode: Int): Matcher = + allOf( instanceOf(TriggerEvaluationResult.EvaluationError::class.java), hasProperty("message", message), hasProperty("statusCode", `is`(statusCode)), ) - } private fun requestingAggregatedDataWith(organism: String, body: String): HttpRequest? = request() .withMethod("POST") diff --git a/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/model/triggerevaluation/ProportionTriggerEvaluatorTest.kt b/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/model/triggerevaluation/ProportionTriggerEvaluatorTest.kt index 085c300b..97da43a0 100644 --- a/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/model/triggerevaluation/ProportionTriggerEvaluatorTest.kt +++ b/backend/src/test/kotlin/org/genspectrum/dashboardsbackend/model/triggerevaluation/ProportionTriggerEvaluatorTest.kt @@ -39,9 +39,7 @@ import org.springframework.boot.test.context.SpringBootTest ], ) @MockServerTest -class ProportionTriggerEvaluatorTest( - @param:Autowired private val underTest: TriggerEvaluator, -) { +class ProportionTriggerEvaluatorTest(@param:Autowired private val underTest: TriggerEvaluator) { private lateinit var mockServerClient: MockServerClient @MockkBean @@ -333,13 +331,12 @@ class ProportionTriggerEvaluatorTest( """.replace("\\s".toRegex(), ""), ) - private fun isEvaluationErrorWith(message: Matcher, statusCode: Int): Matcher { - return allOf( + private fun isEvaluationErrorWith(message: Matcher, statusCode: Int): Matcher = + allOf( instanceOf(TriggerEvaluationResult.EvaluationError::class.java), hasProperty("message", message), hasProperty("statusCode", `is`(statusCode)), ) - } private fun requestingAggregatedDataWith(organism: String, body: String) = request() .withMethod("POST")