diff --git a/src/main/kotlin/com/android/trisolarisserver/controller/RoomImages.kt b/src/main/kotlin/com/android/trisolarisserver/controller/RoomImages.kt index 7586edd..1f98f20 100644 --- a/src/main/kotlin/com/android/trisolarisserver/controller/RoomImages.kt +++ b/src/main/kotlin/com/android/trisolarisserver/controller/RoomImages.kt @@ -55,8 +55,26 @@ class RoomImages( @AuthenticationPrincipal principal: MyPrincipal? ): List { ensureRoom(propertyId, roomId) - return roomImageRepo.findByRoomIdOrdered(roomId) - .map { it.toResponse(publicBaseUrl) } + val images = roomImageRepo.findByRoomIdOrdered(roomId).toMutableList() + if (images.isEmpty()) return emptyList() + val missing = mutableListOf() + val present = mutableListOf() + for (img in images) { + val originalExists = Files.exists(Paths.get(img.originalPath)) + if (!originalExists) { + missing.add(img) + try { + Files.deleteIfExists(Paths.get(img.thumbnailPath)) + } catch (_: Exception) { + } + } else { + present.add(img) + } + } + if (missing.isNotEmpty()) { + roomImageRepo.deleteAll(missing) + } + return present.map { it.toResponse(publicBaseUrl) } } @PostMapping