diff --git a/src/main/java/ru/soune/nocopy/controller/MigrationController.java b/src/main/java/ru/soune/nocopy/controller/MigrationController.java index b898e95..6fb027d 100644 --- a/src/main/java/ru/soune/nocopy/controller/MigrationController.java +++ b/src/main/java/ru/soune/nocopy/controller/MigrationController.java @@ -7,8 +7,17 @@ import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import ru.soune.nocopy.dto.docviewer.DockViewResponse; +import ru.soune.nocopy.entity.docviewer.DockView; +import ru.soune.nocopy.entity.file.FileEntity; +import ru.soune.nocopy.entity.user.User; import ru.soune.nocopy.migration.S3MigrationTool; +import ru.soune.nocopy.repository.DockViewRepository; +import ru.soune.nocopy.repository.FileEntityRepository; +import ru.soune.nocopy.repository.UserRepository; +import ru.soune.nocopy.service.geo.GeoCountryService; +import java.util.List; import java.util.concurrent.CompletableFuture; @RestController @@ -19,6 +28,14 @@ public class MigrationController { private final S3MigrationTool migrationTool; + private final DockViewRepository dockViewRepository; + + private final GeoCountryService geoCountryService; + + private final UserRepository userRepository; + + private final FileEntityRepository fileEntityRepository; + @PostMapping("/start") public ResponseEntity startMigration() { log.info("Migration triggered via API"); @@ -38,4 +55,27 @@ public class MigrationController { public ResponseEntity getStatus() { return ResponseEntity.ok("Check application logs and migration_failed.txt for details"); } + + @PostMapping("/fill-dock-view") + public ResponseEntity fillDockView() { + List dockViews = dockViewRepository.findAll(); + + for (DockView dockView: dockViews) { + String viewerIp = dockView.getViewerIp(); + Long viewerId = dockView.getViewerId(); + String geoEnName = geoCountryService.getCityByIp(viewerIp, "en") + "/" + + geoCountryService.getCountryByIp(viewerIp, "en"); + String geoRuName = geoCountryService.getCityByIp(viewerIp, "ru") + "/" + + geoCountryService.getCountryByIp(viewerIp, "ru"); + User user = userRepository.findById(viewerId).orElse(null); + FileEntity file = fileEntityRepository.findByFileId(dockView.getFileId()); + + dockView.setGeoNameRu(geoRuName); + dockView.setGeoNameEn(geoEnName); + dockView.setViewerName(user == null ? "guest" : user.getFullName()); + dockView.setDocName(file.getOriginalFileName()); + } + + return ResponseEntity.ok("fill old dock view"); + } }