alter primary keys to uuids and adjust the membership system
This commit is contained in:
@@ -3,14 +3,17 @@ package controller
|
||||
import (
|
||||
"acc-server-manager/local/service"
|
||||
"acc-server-manager/local/utl/common"
|
||||
"acc-server-manager/local/utl/error_handler"
|
||||
"acc-server-manager/local/utl/logging"
|
||||
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
type ConfigController struct {
|
||||
service *service.ConfigService
|
||||
apiService *service.ApiService
|
||||
service *service.ConfigService
|
||||
apiService *service.ApiService
|
||||
errorHandler *error_handler.ControllerErrorHandler
|
||||
}
|
||||
|
||||
// NewConfigController
|
||||
@@ -23,8 +26,9 @@ type ConfigController struct {
|
||||
// *ConfigController: Controller for "Config" interactions
|
||||
func NewConfigController(as *service.ConfigService, routeGroups *common.RouteGroups, as2 *service.ApiService) *ConfigController {
|
||||
ac := &ConfigController{
|
||||
service: as,
|
||||
apiService: as2,
|
||||
service: as,
|
||||
apiService: as2,
|
||||
errorHandler: error_handler.NewControllerErrorHandler(),
|
||||
}
|
||||
|
||||
routeGroups.Config.Put("/:file", ac.UpdateConfig)
|
||||
@@ -46,24 +50,29 @@ func NewConfigController(as *service.ConfigService, routeGroups *common.RouteGro
|
||||
// @Router /v1/server/{id}/config/{file} [put]
|
||||
func (ac *ConfigController) UpdateConfig(c *fiber.Ctx) error {
|
||||
restart := c.QueryBool("restart")
|
||||
serverID, _ := c.ParamsInt("id")
|
||||
serverID := c.Params("id")
|
||||
|
||||
// Validate UUID format
|
||||
if _, err := uuid.Parse(serverID); err != nil {
|
||||
return ac.errorHandler.HandleUUIDError(c, "server ID")
|
||||
}
|
||||
|
||||
c.Locals("serverId", serverID)
|
||||
|
||||
var config map[string]interface{}
|
||||
if err := c.BodyParser(&config); err != nil {
|
||||
logging.Error("Invalid config format")
|
||||
return c.Status(400).JSON(fiber.Map{"error": "Invalid config format"})
|
||||
return ac.errorHandler.HandleParsingError(c, err)
|
||||
}
|
||||
|
||||
ConfigModel, err := ac.service.UpdateConfig(c, &config)
|
||||
if err != nil {
|
||||
return c.Status(400).SendString(err.Error())
|
||||
return ac.errorHandler.HandleServiceError(c, err)
|
||||
}
|
||||
logging.Info("restart: %v", restart)
|
||||
if restart {
|
||||
_, err := ac.apiService.ApiRestartServer(c)
|
||||
if err != nil {
|
||||
logging.Error(err.Error())
|
||||
logging.ErrorWithContext("CONFIG_RESTART", "Failed to restart server after config update: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -82,8 +91,7 @@ func (ac *ConfigController) UpdateConfig(c *fiber.Ctx) error {
|
||||
func (ac *ConfigController) GetConfig(c *fiber.Ctx) error {
|
||||
Model, err := ac.service.GetConfig(c)
|
||||
if err != nil {
|
||||
logging.Error(err.Error())
|
||||
return c.Status(400).SendString(err.Error())
|
||||
return ac.errorHandler.HandleServiceError(c, err)
|
||||
}
|
||||
return c.JSON(Model)
|
||||
}
|
||||
@@ -99,8 +107,7 @@ func (ac *ConfigController) GetConfig(c *fiber.Ctx) error {
|
||||
func (ac *ConfigController) GetConfigs(c *fiber.Ctx) error {
|
||||
Model, err := ac.service.GetConfigs(c)
|
||||
if err != nil {
|
||||
logging.Error(err.Error())
|
||||
return c.Status(400).SendString(err.Error())
|
||||
return ac.errorHandler.HandleServiceError(c, err)
|
||||
}
|
||||
return c.JSON(Model)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user