From 2dea52a2166129fcfab43728ce7942eeb108a9e6 Mon Sep 17 00:00:00 2001 From: Roman Makeev Date: Tue, 17 Sep 2024 12:27:23 +0300 Subject: [PATCH 1/4] try up version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 40718d3..aec271e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,7 +8,7 @@ org.gradle.parallel=true makeevrserg.project.name=IRDBBackend makeevrserg.project.url=https://github.com/flipperdevices/IRDB-Backend makeevrserg.project.group=com.flipperdevices.ifrmvp.backend -makeevrserg.project.version.string=0.4.0 +makeevrserg.project.version.string=0.5.0 makeevrserg.project.description=Api for IfrSample makeevrserg.project.developers=makeevrserg|Makeev Roman|makeevrserg@gmail.com # Java From 596636c968f88f29556a9300626fd35084c372d3 Mon Sep 17 00:00:00 2001 From: Roman Makeev Date: Tue, 17 Sep 2024 16:37:22 +0300 Subject: [PATCH 2/4] add file id exclusion --- .../presentation/SignalRouteRegistry.kt | 33 ++++++++++++++++--- 1 file changed, 28 insertions(+), 5 deletions(-) diff --git a/web-api/src/main/kotlin/com/flipperdevices/ifrmvp/backend/route/signal/presentation/SignalRouteRegistry.kt b/web-api/src/main/kotlin/com/flipperdevices/ifrmvp/backend/route/signal/presentation/SignalRouteRegistry.kt index c2fea51..a8b7454 100644 --- a/web-api/src/main/kotlin/com/flipperdevices/ifrmvp/backend/route/signal/presentation/SignalRouteRegistry.kt +++ b/web-api/src/main/kotlin/com/flipperdevices/ifrmvp/backend/route/signal/presentation/SignalRouteRegistry.kt @@ -54,13 +54,21 @@ internal class SignalRouteRegistry( * order by INFRARED_FILE."signal_count" desc */ private fun getIncludedFileIds(signalRequestModel: SignalRequestModel, brandId: Long): Query { + val excludedFileIds = transaction(database) { + InfraredFileToSignalTable.select(InfraredFileToSignalTable.infraredFileId) + .where { + InfraredFileToSignalTable.signalId inList + signalRequestModel.failedResults + .map(SignalRequestModel.SignalResultData::signalId) + }.map { it[InfraredFileToSignalTable.infraredFileId].value } + } return transaction(database) { InfraredFileTable .join( otherTable = InfraredFileToSignalTable, onColumn = InfraredFileTable.id, otherColumn = InfraredFileToSignalTable.infraredFileId, - joinType = JoinType.INNER + joinType = JoinType.LEFT ) .select(InfraredFileTable.id, InfraredFileTable.signalCount) .groupBy(InfraredFileTable.id) @@ -70,15 +78,29 @@ internal class SignalRouteRegistry( val successSignalIds = signalRequestModel .successResults .map(SignalRequestModel.SignalResultData::signalId) - if (successSignalIds.isNotEmpty()) { - andWhere { + var nextQuery = this + nextQuery = if (successSignalIds.isNotEmpty()) { + nextQuery.andWhere { InfraredFileToSignalTable .signalId .inList(successSignalIds) } } else { - this + nextQuery } + val failedSignalIds = signalRequestModel + .failedResults + .map(SignalRequestModel.SignalResultData::signalId) + nextQuery = if (failedSignalIds.isNotEmpty()) { + nextQuery.andWhere { + InfraredFileToSignalTable + .infraredFileId + .notInList(excludedFileIds) + } + } else { + nextQuery + } + nextQuery } } } @@ -119,6 +141,7 @@ internal class SignalRouteRegistry( .or { SignalKeyTable.hash.eq(identifier.hash) } } } + is IfrKeyIdentifier.Name -> { andWhere { SignalKeyTable.remoteKeyName.eq(identifier.name) @@ -270,7 +293,7 @@ internal class SignalRouteRegistry( val includedFileIds = getIncludedFileIds(signalRequestModel, brand.id) val includedInfraredFilesCount = transaction(database) { includedFileIds.count() } - println("#root includedInfraredFilesCount=$includedInfraredFilesCount") + println("#root includedInfraredFilesCount=$includedInfraredFilesCount -> ${transaction(database) { includedFileIds.map { it[InfraredFileTable.id] } }}") when (includedInfraredFilesCount) { 0L -> { context.respond(HttpStatusCode.NoContent) From 9b96da71ae58f51e415734b1bbfd1864b21cd4a8 Mon Sep 17 00:00:00 2001 From: Roman Makeev Date: Tue, 17 Sep 2024 16:37:41 +0300 Subject: [PATCH 3/4] up version 0.5.1 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index aec271e..f5d77bb 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,7 +8,7 @@ org.gradle.parallel=true makeevrserg.project.name=IRDBBackend makeevrserg.project.url=https://github.com/flipperdevices/IRDB-Backend makeevrserg.project.group=com.flipperdevices.ifrmvp.backend -makeevrserg.project.version.string=0.5.0 +makeevrserg.project.version.string=0.5.1 makeevrserg.project.description=Api for IfrSample makeevrserg.project.developers=makeevrserg|Makeev Roman|makeevrserg@gmail.com # Java From 12798cecd62b894eef0d354da57a09b8246bc94d Mon Sep 17 00:00:00 2001 From: Roman Makeev Date: Tue, 17 Sep 2024 16:38:34 +0300 Subject: [PATCH 4/4] add file id exclusion --- .../backend/route/signal/presentation/SignalRouteRegistry.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web-api/src/main/kotlin/com/flipperdevices/ifrmvp/backend/route/signal/presentation/SignalRouteRegistry.kt b/web-api/src/main/kotlin/com/flipperdevices/ifrmvp/backend/route/signal/presentation/SignalRouteRegistry.kt index a8b7454..8aed98b 100644 --- a/web-api/src/main/kotlin/com/flipperdevices/ifrmvp/backend/route/signal/presentation/SignalRouteRegistry.kt +++ b/web-api/src/main/kotlin/com/flipperdevices/ifrmvp/backend/route/signal/presentation/SignalRouteRegistry.kt @@ -293,7 +293,7 @@ internal class SignalRouteRegistry( val includedFileIds = getIncludedFileIds(signalRequestModel, brand.id) val includedInfraredFilesCount = transaction(database) { includedFileIds.count() } - println("#root includedInfraredFilesCount=$includedInfraredFilesCount -> ${transaction(database) { includedFileIds.map { it[InfraredFileTable.id] } }}") + println("#root includedInfraredFilesCount=$includedInfraredFilesCount") when (includedInfraredFilesCount) { 0L -> { context.respond(HttpStatusCode.NoContent)