package ru.soune.nocopy.controller; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; 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.migration.S3MigrationTool; import java.util.concurrent.CompletableFuture; @RestController @RequestMapping("/api/admin/migration") @RequiredArgsConstructor @Slf4j public class MigrationController { private final S3MigrationTool migrationTool; @PostMapping("/start") public ResponseEntity startMigration() { log.info("Migration triggered via API"); CompletableFuture.runAsync(() -> { try { migrationTool.migrationFilesToS3(); } catch (Exception e) { log.error("Migration failed", e); } }); return ResponseEntity.ok("Migration started. Check logs for progress."); } @PostMapping("/status") public ResponseEntity getStatus() { return ResponseEntity.ok("Check application logs and migration_failed.txt for details"); } }