112 lines
3.1 KiB
Go
112 lines
3.1 KiB
Go
package controller
|
|
|
|
import (
|
|
"acc-server-manager/local/service"
|
|
"acc-server-manager/local/utl/common"
|
|
"acc-server-manager/local/utl/error_handler"
|
|
|
|
"github.com/gofiber/fiber/v2"
|
|
)
|
|
|
|
type LookupController struct {
|
|
service *service.LookupService
|
|
errorHandler *error_handler.ControllerErrorHandler
|
|
}
|
|
|
|
// NewLookupController
|
|
// Initializes LookupController.
|
|
//
|
|
// Args:
|
|
// *services.LookupService: Lookup service
|
|
// *Fiber.RouterGroup: Fiber Router Group
|
|
// Returns:
|
|
// *LookupController: Controller for "Lookup" interactions
|
|
func NewLookupController(as *service.LookupService, routeGroups *common.RouteGroups) *LookupController {
|
|
ac := &LookupController{
|
|
service: as,
|
|
errorHandler: error_handler.NewControllerErrorHandler(),
|
|
}
|
|
routeGroups.Lookup.Get("/tracks", ac.GetTracks)
|
|
routeGroups.Lookup.Get("/car-models", ac.GetCarModels)
|
|
routeGroups.Lookup.Get("/driver-categories", ac.GetDriverCategories)
|
|
routeGroups.Lookup.Get("/cup-categories", ac.GetCupCategories)
|
|
routeGroups.Lookup.Get("/session-types", ac.GetSessionTypes)
|
|
|
|
return ac
|
|
}
|
|
|
|
// getTracks returns Tracks
|
|
//
|
|
// @Summary Return Tracks Lookup
|
|
// @Description Return Tracks Lookup
|
|
// @Tags Lookup
|
|
// @Success 200 {array} string
|
|
// @Router /v1/lookup/tracks [get]
|
|
func (ac *LookupController) GetTracks(c *fiber.Ctx) error {
|
|
result, err := ac.service.GetTracks(c)
|
|
if err != nil {
|
|
return ac.errorHandler.HandleServiceError(c, err)
|
|
}
|
|
return c.JSON(result)
|
|
}
|
|
|
|
// getCarModels returns CarModels
|
|
//
|
|
// @Summary Return CarModels Lookup
|
|
// @Description Return CarModels Lookup
|
|
// @Tags Lookup
|
|
// @Success 200 {array} string
|
|
// @Router /v1/lookup/car-models [get]
|
|
func (ac *LookupController) GetCarModels(c *fiber.Ctx) error {
|
|
result, err := ac.service.GetCarModels(c)
|
|
if err != nil {
|
|
return ac.errorHandler.HandleServiceError(c, err)
|
|
}
|
|
return c.JSON(result)
|
|
}
|
|
|
|
// getDriverCategories returns DriverCategories
|
|
//
|
|
// @Summary Return DriverCategories Lookup
|
|
// @Description Return DriverCategories Lookup
|
|
// @Tags Lookup
|
|
// @Success 200 {array} string
|
|
// @Router /v1/lookup/driver-categories [get]
|
|
func (ac *LookupController) GetDriverCategories(c *fiber.Ctx) error {
|
|
result, err := ac.service.GetDriverCategories(c)
|
|
if err != nil {
|
|
return ac.errorHandler.HandleServiceError(c, err)
|
|
}
|
|
return c.JSON(result)
|
|
}
|
|
|
|
// getCupCategories returns CupCategories
|
|
//
|
|
// @Summary Return CupCategories Lookup
|
|
// @Description Return CupCategories Lookup
|
|
// @Tags Lookup
|
|
// @Success 200 {array} string
|
|
// @Router /v1/lookup/cup-categories [get]
|
|
func (ac *LookupController) GetCupCategories(c *fiber.Ctx) error {
|
|
result, err := ac.service.GetCupCategories(c)
|
|
if err != nil {
|
|
return ac.errorHandler.HandleServiceError(c, err)
|
|
}
|
|
return c.JSON(result)
|
|
}
|
|
|
|
// getSessionTypes returns SessionTypes
|
|
//
|
|
// @Summary Return SessionTypes Lookup
|
|
// @Description Return SessionTypes Lookup
|
|
// @Tags Lookup
|
|
// @Success 200 {array} string
|
|
// @Router /v1/lookup/session-types [get]
|
|
func (ac *LookupController) GetSessionTypes(c *fiber.Ctx) error {
|
|
result, err := ac.service.GetSessionTypes(c)
|
|
if err != nil {
|
|
return ac.errorHandler.HandleServiceError(c, err)
|
|
}
|
|
return c.JSON(result)
|
|
}
|