File size: 1,129 Bytes
37f31d4 a9cf43e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
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,
})
} |