add filtering and base repository
This commit is contained in:
@@ -43,8 +43,7 @@ func NewApiController(as *service.ApiService, routeGroups *common.RouteGroups) *
|
||||
// @Success 200 {array} string
|
||||
// @Router /v1/api [get]
|
||||
func (ac *ApiController) getFirst(c *fiber.Ctx) error {
|
||||
apiModel := ac.service.GetFirst(c)
|
||||
return c.SendString(apiModel.Api)
|
||||
return c.SendStatus(fiber.StatusOK)
|
||||
}
|
||||
|
||||
// getStatus returns service status
|
||||
|
||||
@@ -1,15 +1,9 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"acc-server-manager/local/model"
|
||||
"acc-server-manager/local/service"
|
||||
"acc-server-manager/local/utl/common"
|
||||
"fmt"
|
||||
"log"
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"go.uber.org/dig"
|
||||
)
|
||||
|
||||
@@ -46,34 +40,3 @@ func InitializeControllers(c *dig.Container) {
|
||||
log.Panic("unable to initialize stateHistory controller")
|
||||
}
|
||||
}
|
||||
|
||||
// FilteredResponse
|
||||
// Gets query parameters and populates FilteredResponse model.
|
||||
//
|
||||
// Args:
|
||||
// *gin.Context: Gin Application Context
|
||||
// Returns:
|
||||
// *model.FilteredResponse: Filtered response
|
||||
func FilteredResponse(c *fiber.Ctx) *model.FilteredResponse {
|
||||
filtered := new(model.FilteredResponse)
|
||||
page := c.Params("page")
|
||||
rpp := c.Params("rpp")
|
||||
sortBy := c.Params("sortBy")
|
||||
|
||||
dividers := [5]string{"|", " ", ".", "/", ","}
|
||||
|
||||
for _, div := range dividers {
|
||||
sortArr := strings.Split(sortBy, div)
|
||||
|
||||
if len(sortArr) >= 2 {
|
||||
sortBy = fmt.Sprintf("%s %s", common.ToSnakeCase(sortArr[0]), strings.ToUpper(sortArr[1]))
|
||||
}
|
||||
}
|
||||
|
||||
filtered.Embed = c.Params("embed")
|
||||
filtered.Page, _ = strconv.Atoi(page)
|
||||
filtered.Rpp, _ = strconv.Atoi(rpp)
|
||||
filtered.SortBy = sortBy
|
||||
|
||||
return filtered
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"acc-server-manager/local/model"
|
||||
"acc-server-manager/local/service"
|
||||
"acc-server-manager/local/utl/common"
|
||||
|
||||
@@ -38,7 +39,16 @@ func NewServerController(as *service.ServerService, routeGroups *common.RouteGro
|
||||
// @Success 200 {array} string
|
||||
// @Router /v1/server [get]
|
||||
func (ac *ServerController) getAll(c *fiber.Ctx) error {
|
||||
ServerModel := ac.service.GetAll(c)
|
||||
var filter model.ServerFilter
|
||||
if err := common.ParseQueryFilter(c, &filter); err != nil {
|
||||
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
|
||||
"error": err.Error(),
|
||||
})
|
||||
}
|
||||
ServerModel, err := ac.service.GetAll(c, &filter)
|
||||
if err != nil {
|
||||
return c.Status(400).SendString(err.Error())
|
||||
}
|
||||
return c.JSON(ServerModel)
|
||||
}
|
||||
|
||||
@@ -51,6 +61,9 @@ func (ac *ServerController) getAll(c *fiber.Ctx) error {
|
||||
// @Router /v1/server [get]
|
||||
func (ac *ServerController) getById(c *fiber.Ctx) error {
|
||||
serverID, _ := c.ParamsInt("id")
|
||||
ServerModel := ac.service.GetById(c, serverID)
|
||||
ServerModel, err := ac.service.GetById(c, serverID)
|
||||
if err != nil {
|
||||
return c.Status(400).SendString(err.Error())
|
||||
}
|
||||
return c.JSON(ServerModel)
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package controller
|
||||
|
||||
import (
|
||||
"acc-server-manager/local/model"
|
||||
"acc-server-manager/local/service"
|
||||
"acc-server-manager/local/utl/common"
|
||||
|
||||
@@ -37,7 +38,19 @@ func NewStateHistoryController(as *service.StateHistoryService, routeGroups *com
|
||||
// @Success 200 {array} string
|
||||
// @Router /v1/StateHistory [get]
|
||||
func (ac *StateHistoryController) getAll(c *fiber.Ctx) error {
|
||||
StateHistoryID, _ := c.ParamsInt("id")
|
||||
StateHistoryModel := ac.service.GetAll(c, StateHistoryID)
|
||||
return c.JSON(StateHistoryModel)
|
||||
var filter model.StateHistoryFilter
|
||||
if err := common.ParseQueryFilter(c, &filter); err != nil {
|
||||
return c.Status(fiber.StatusBadRequest).JSON(fiber.Map{
|
||||
"error": err.Error(),
|
||||
})
|
||||
}
|
||||
|
||||
result, err := ac.service.GetAll(c, &filter)
|
||||
if err != nil {
|
||||
return c.Status(fiber.StatusInternalServerError).JSON(fiber.Map{
|
||||
"error": "Error retrieving state history",
|
||||
})
|
||||
}
|
||||
|
||||
return c.JSON(result)
|
||||
}
|
||||
Reference in New Issue
Block a user