pcp-tgu: эндпоинт /test/tgu/platforms/load-manual принимает JSON

Тестовый эндпоинт загрузки платформ принимает root-array НСИ в теле запроса (@RequestBody List<NsiPlatformDto>) вместо пути к файлу; маршрут load-from-file переименован в load-manual.
This commit is contained in:
Дмитрий Соловьев
2026-06-06 18:33:47 +03:00
parent a06dfcac4e
commit 316e0ee552
2 changed files with 10 additions and 11 deletions
@@ -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<NsiPlatformDto>): 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
)
@@ -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<PlatformCatalogItem> =
loadPlatformsFromNsiPayload(objectMapper.readValue(payloadJson, Array<NsiPlatformDto>::class.java).toList())
/** Replaces the in-memory platform cache from an already-parsed NSI payload for test-only manual runs. */
fun loadPlatformsFromNsiPayload(platforms: List<NsiPlatformDto>): List<PlatformCatalogItem> =
synchronized(cacheLock) {
val platforms = objectMapper.readValue(payloadJson, Array<NsiPlatformDto>::class.java).toList()
cachePlatforms(platforms, Instant.now(clock))
}