package ru.ulstu.controllers; import io.swagger.annotations.ApiOperation; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import ru.ulstu.configurations.ApiConfiguration; import ru.ulstu.models.Forecast; import ru.ulstu.models.ForecastRequestParams; import ru.ulstu.models.TimeSeries; import ru.ulstu.services.TimeSeriesService; @RestController @RequestMapping(ApiConfiguration.API_1_0) public class TimeSeriesController { private final TimeSeriesService timeSeriesService; public TimeSeriesController(TimeSeriesService timeSeriesService) { this.timeSeriesService = timeSeriesService; } @GetMapping("isAlive") @ApiOperation("Проверка сервиса") public ResponseEntity isAlive() { return new ResponseEntity<>(true, HttpStatus.OK); } @GetMapping("getRandom") @ApiOperation("Получить временной ряд рандомной длины") public ResponseEntity getRandomTimeSeries(@RequestParam("length") int length) { return new ResponseEntity<>(timeSeriesService.getRandomTimeSeries(length), HttpStatus.OK); } @PostMapping("getForecast") @ApiOperation("Получить прогноз временного ряда") public ResponseEntity getForecastTimeSeries(@RequestBody ForecastRequestParams forecastRequestParams) { return new ResponseEntity<>(timeSeriesService.getForecast(forecastRequestParams.getOriginalTimeSeries(), forecastRequestParams.getCountForecast()), HttpStatus.OK); } }