Share

Share this URL with your friends and let them edit or delete the document.

Permissions

gobin
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);
        }
    }
}