thesis_forecasting_website / handlers /inference_handler.go
tebakaja's picture
feat: optimize prediction
a9cf43e
package handlers
import (
"github.com/gofiber/fiber/v2"
inferences "thesis_forecasting_website/inferences"
)
type StockRequest struct {
Issuer string `json:"issuer"`
Days int `json:"days"`
}
type StockResponse struct {
Actuals []inferences.StockPrice `json:"actuals"`
Prediction []inferences.StockPrice `json:"predictions"`
}
func InferenceHandler(context *fiber.Ctx) error {
request := new(StockRequest)
if err := context.BodyParser(request); err != nil {
return context.Status(fiber.StatusBadRequest).JSON(fiber.Map{
"error": "Invalid request body",
})
}
if request.Days <= 0 { request.Days = 7 }
if request.Days > 60 { request.Days = 60 }
// actuals, predicted, err := inferences.StockPredictionDebug(
// request.Issuer, request.Days,
// )
actuals, predicted, err := inferences.StockPrediction(
request.Issuer, request.Days,
)
if err != nil {
return context.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
"error": "Internal server error",
})
}
return context.Status(fiber.StatusOK).JSON(StockResponse{
Actuals: actuals,
Prediction: predicted,
})
}