From 316e0ee552f2fed16537f533c6dca543020edff5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9=20=D0=A1=D0=BE?= =?UTF-8?q?=D0=BB=D0=BE=D0=B2=D1=8C=D0=B5=D0=B2?= Date: Sat, 6 Jun 2026 18:33:47 +0300 Subject: [PATCH] =?UTF-8?q?pcp-tgu:=20=D1=8D=D0=BD=D0=B4=D0=BF=D0=BE=D0=B8?= =?UTF-8?q?=D0=BD=D1=82=20/test/tgu/platforms/load-manual=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B8=D0=BD=D0=B8=D0=BC=D0=B0=D0=B5=D1=82=20JSON?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Тестовый эндпоинт загрузки платформ принимает root-array НСИ в теле запроса (@RequestBody List) вместо пути к файлу; маршрут load-from-file переименован в load-manual. --- .../controller/TestTguController.kt | 16 ++++++---------- .../pcp_tgu_service/service/PlatformService.kt | 5 ++++- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/services/pcp-tgu-service/src/main/kotlin/space/nstart/pcp_tgu_service/controller/TestTguController.kt b/services/pcp-tgu-service/src/main/kotlin/space/nstart/pcp_tgu_service/controller/TestTguController.kt index 3d63e56..1999530 100644 --- a/services/pcp-tgu-service/src/main/kotlin/space/nstart/pcp_tgu_service/controller/TestTguController.kt +++ b/services/pcp-tgu-service/src/main/kotlin/space/nstart/pcp_tgu_service/controller/TestTguController.kt @@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RequestParam import org.springframework.web.bind.annotation.RestController import space.nstart.pcp_tgu_service.domain.PlanDecision +import space.nstart.pcp_tgu_service.dto.NsiPlatformDto import space.nstart.pcp_tgu_service.dto.PlanDecisionMessage import space.nstart.pcp_tgu_service.dto.PlanExecutionFeedbackMessage import space.nstart.pcp_tgu_service.dto.PlanResponse @@ -20,8 +21,6 @@ import space.nstart.pcp_tgu_service.service.PlanQueryService import space.nstart.pcp_tgu_service.service.PlatformService import space.nstart.pcp_tgu_service.service.TestPlanDecisionService import space.nstart.pcp_tgu_service.service.VisibilityRefreshJobService -import java.nio.file.Files -import java.nio.file.Path import java.time.LocalDateTime import java.util.UUID @@ -77,14 +76,12 @@ class TestTguController( ): PlanExecutionFeedbackMessage = testPlanDecisionService.generateLayinConfirmed(planId, reason) - /** Загружает cache аппаратов из файла с root-array payload НСИ вместо запроса в НСИ. */ - @PostMapping("/platforms/load-from-file") - fun loadPlatformsFromFile(@RequestParam("path") filePath: String): TestPlatformsLoadResponse { - val path = Path.of(filePath).toAbsolutePath().normalize() - val platforms = platformService.loadPlatformsFromNsiPayload(Files.readString(path)) + /** Загружает cache аппаратов из переданного в теле root-array payload НСИ вместо запроса в НСИ. */ + @PostMapping("/platforms/load-manual") + fun loadPlatformsFromPayload(@RequestBody platforms: List): TestPlatformsLoadResponse { + val loaded = platformService.loadPlatformsFromNsiPayload(platforms) return TestPlatformsLoadResponse( - filePath = path.toString(), - loadedCount = platforms.size, + loadedCount = loaded.size, allowedCount = platformService.loadAllowedPlatforms().size ) } @@ -109,7 +106,6 @@ class TestTguController( } data class TestPlatformsLoadResponse( - val filePath: String, val loadedCount: Int, val allowedCount: Int ) diff --git a/services/pcp-tgu-service/src/main/kotlin/space/nstart/pcp_tgu_service/service/PlatformService.kt b/services/pcp-tgu-service/src/main/kotlin/space/nstart/pcp_tgu_service/service/PlatformService.kt index 96fc185..f2a91dc 100644 --- a/services/pcp-tgu-service/src/main/kotlin/space/nstart/pcp_tgu_service/service/PlatformService.kt +++ b/services/pcp-tgu-service/src/main/kotlin/space/nstart/pcp_tgu_service/service/PlatformService.kt @@ -46,8 +46,11 @@ class PlatformService( /** Replaces the in-memory platform cache from a raw NSI response payload for test-only manual runs. */ fun loadPlatformsFromNsiPayload(payloadJson: String): List = + loadPlatformsFromNsiPayload(objectMapper.readValue(payloadJson, Array::class.java).toList()) + + /** Replaces the in-memory platform cache from an already-parsed NSI payload for test-only manual runs. */ + fun loadPlatformsFromNsiPayload(platforms: List): List = synchronized(cacheLock) { - val platforms = objectMapper.readValue(payloadJson, Array::class.java).toList() cachePlatforms(platforms, Instant.now(clock)) }