package com.mysticrocketleague.controllers;
import com.mysticrocketleague.models.ReplayModel;
import com.mysticrocketleague.services.ReplayParserService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
@RestController // TOTO: incomplete
@RequestMapping("/replay")
@Tag(name = "Replay Endpoints", description = "Endpoints for parsing replays")
public class ReplayController {
private final ReplayParserService replayParserService;
public ReplayController(ReplayParserService replayParserService) {
this.replayParserService = replayParserService;
}
@PostMapping(value = "/parse", consumes = "multipart/form-data")
@Operation(summary = "Parse a replay file")
public ResponseEntity<ReplayModel> parseReplay(@RequestParam("file") MultipartFile replayFile) {
try {
ReplayModel parsedReplay = replayParserService.parseReplay(replayFile);
return new ResponseEntity<>(parsedReplay, HttpStatus.CREATED); // 201 Created
} catch (IOException | InterruptedException e) {
throw new RuntimeException(e);
}
}
}