2021-05-28 12:22:14 +04:00
|
|
|
/*
|
|
|
|
*
|
|
|
|
* * Copyright (C) 2021 Anton Romanov - All Rights Reserved
|
|
|
|
* * You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
|
|
|
*
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
2018-02-22 22:47:45 +04:00
|
|
|
package ru.ulstu.controllers;
|
|
|
|
|
2020-09-12 13:11:09 +04:00
|
|
|
import io.swagger.annotations.ApiOperation;
|
2018-02-22 22:47:45 +04:00
|
|
|
import org.springframework.http.HttpStatus;
|
|
|
|
import org.springframework.http.ResponseEntity;
|
2020-09-12 13:11:09 +04:00
|
|
|
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.RestController;
|
2020-11-07 14:13:56 +04:00
|
|
|
import ru.ulstu.configuration.ApiConfiguration;
|
2020-09-12 14:54:46 +04:00
|
|
|
import ru.ulstu.models.ForecastParams;
|
2021-05-28 12:22:14 +04:00
|
|
|
import ru.ulstu.models.ModelingResult;
|
2018-02-22 22:47:45 +04:00
|
|
|
import ru.ulstu.models.TimeSeries;
|
2020-10-01 08:41:23 +04:00
|
|
|
import ru.ulstu.models.exceptions.ModelingException;
|
2021-05-28 12:22:14 +04:00
|
|
|
import ru.ulstu.services.MethodParamBruteForce;
|
2018-02-22 22:47:45 +04:00
|
|
|
import ru.ulstu.services.TimeSeriesService;
|
|
|
|
|
|
|
|
@RestController
|
|
|
|
@RequestMapping(ApiConfiguration.API_1_0)
|
|
|
|
public class TimeSeriesController {
|
|
|
|
|
|
|
|
private final TimeSeriesService timeSeriesService;
|
2021-05-28 12:22:14 +04:00
|
|
|
private final MethodParamBruteForce methodParamBruteForce;
|
2018-02-22 22:47:45 +04:00
|
|
|
|
2021-05-28 12:22:14 +04:00
|
|
|
public TimeSeriesController(TimeSeriesService timeSeriesService,
|
|
|
|
MethodParamBruteForce methodParamBruteForce) {
|
2018-02-22 22:47:45 +04:00
|
|
|
this.timeSeriesService = timeSeriesService;
|
2021-05-28 12:22:14 +04:00
|
|
|
this.methodParamBruteForce = methodParamBruteForce;
|
2018-02-22 22:47:45 +04:00
|
|
|
}
|
|
|
|
|
2020-09-12 13:11:09 +04:00
|
|
|
@PostMapping("getForecast")
|
|
|
|
@ApiOperation("Получить прогноз временного ряда")
|
2020-11-03 11:38:53 +04:00
|
|
|
public ResponseEntity<TimeSeries> getForecastTimeSeries(@RequestBody ForecastParams forecastParams) throws ModelingException {
|
2020-09-12 14:54:46 +04:00
|
|
|
return new ResponseEntity<>(timeSeriesService.getForecast(forecastParams.getOriginalTimeSeries(),
|
|
|
|
forecastParams.getCountForecast()), HttpStatus.OK);
|
2018-02-24 23:00:30 +04:00
|
|
|
}
|
2021-05-28 12:22:14 +04:00
|
|
|
|
|
|
|
@PostMapping("getSmoothed")
|
|
|
|
@ApiOperation("Получить сглаженный временной ряд")
|
|
|
|
public ResponseEntity<ModelingResult> getSmoothedTimeSeries(@RequestBody TimeSeries timeSeries) throws ModelingException {
|
|
|
|
return new ResponseEntity<>(methodParamBruteForce.getSmoothedTimeSeries(timeSeries), HttpStatus.OK);
|
|
|
|
}
|
2018-02-22 22:47:45 +04:00
|
|
|
}
|