categories

main
alex 2023-08-29 07:31:30 +02:00
parent 497a952a7a
commit d094dec64e
10 changed files with 65 additions and 48 deletions

View File

@ -175,12 +175,7 @@ func CreateEquipmentDocumentation(c *fiber.Ctx, body structs.CreateEquipmentDocu
func GetEquipmentDocumentations(stockItemId string, query structs.PageQuery, c *fiber.Ctx) error {
var documentations []structs.EquipmentDocumentation
offset := (query.Page - 1) * utils.EquipmentDocumentationsPaginationLimit
database.DB.Limit(utils.EquipmentDocumentationsPaginationLimit).
Offset(offset).
Where("stock_item_id = ?", stockItemId).
Find(&documentations)
utils.DbPageQuery(query, utils.EquipmentDocumentationsPaginationLimit, &documentations, "stock_item_id = ?", stockItemId)
var err error
totalPages := 0

View File

@ -824,10 +824,10 @@ func updateGroupTaskSteps(groupTaskStep structs.GroupTaskSteps) {
})
}
func GetAllGroupTasks() []structs.GroupTasks {
func GetAllGroupTasks(category string, query structs.PageQuery) []structs.GroupTasks {
var groupTasks []structs.GroupTasks
database.DB.Find(&groupTasks)
utils.DbPageQuery(query, utils.GroupTasksPaginationLimit, &groupTasks, "category = ?", category)
return groupTasks
}

View File

@ -104,6 +104,10 @@ type ApiGroupTaskRequest struct {
GlobalInputs json.RawMessage
}
type GroupTasksRequest struct {
Category string
}
// swagger:model GroupTasksResponse
type GroupTasksResponse struct {
CategoryGroups []CategoryGroup

View File

@ -58,12 +58,12 @@ type UserApiKey struct {
// swagger:model UserInfoResponse
type UserInfoResponse struct {
UserId string
Username string
Avatar string
Permissions []string
AvailableGroupTasks []string
Users []AllUsers
UserId string
Username string
Avatar string
Permissions []string
AvailableCategoryGroups []string
Users []AllUsers
}
// swagger:model UserProfileResponse

View File

@ -37,6 +37,7 @@ const (
ConnectionStateOnline = 1
EquipmentDocumentationsPaginationLimit = 3
GroupTasksPaginationLimit = 10
)
var (

View File

@ -5,12 +5,14 @@ import (
"encoding/json"
"errors"
"jannex/admin-dashboard-backend/modules/database"
"jannex/admin-dashboard-backend/modules/structs"
"math"
"math/big"
"time"
"github.com/gofiber/fiber/v2"
"github.com/rs/zerolog/log"
"gorm.io/gorm"
)
func GetXAuhorizationHeader(c *fiber.Ctx) string {
@ -123,3 +125,14 @@ func GetTotalPages(any interface{}, stockItemId string, whereQuery interface{},
return int(math.Ceil(float64(totalPages) / float64(EquipmentDocumentationsPaginationLimit)))
}
func GetPageOffset(page int) int {
return (page - 1) * EquipmentDocumentationsPaginationLimit
}
func DbPageQuery(query structs.PageQuery, paginationLimit int, result any, whereQuery interface{}, args ...interface{}) *gorm.DB {
return database.DB.Limit(paginationLimit).
Offset(GetPageOffset(query.Page)).
Where(whereQuery, args).
Find(result)
}

View File

@ -1,4 +1,4 @@
package grouptask
package grouptasks
import (
"encoding/json"
@ -13,36 +13,30 @@ import (
)
func GetGroupTasks(c *fiber.Ctx) error {
// swagger:operation GET /grouptasks grouptask grouptaskGetGroupTasks
// ---
// summary: Get all group tasks
// consumes:
// - application/json
// produces:
// - application/json
// parameters:
// - name: X-Api-Key
// in: header
// description: You can create a new api key in your user profile
// responses:
// '200':
// description: All group tasks
// schema:
// "$ref": "#/definitions/GroupTasksResponse"
// '401':
// description: No permissions
// '500':
// description: Failed to get group tasks
var params structs.GroupTasksRequest
if err := c.ParamsParser(&params); err != nil {
return c.SendStatus(fiber.StatusBadRequest)
}
var query structs.PageQuery
if err := c.QueryParser(&query); err != nil {
return c.SendStatus(fiber.StatusBadRequest)
}
log.Info().Msgf("params: %v", params)
log.Info().Msgf("query: %v", query)
return c.JSON(structs.GroupTasksResponse{
CategoryGroups: cache.GetCategoryGroupsSorted(),
GroupTasks: grouptasks.GetAllGroupTasks(),
GroupTasks: grouptasks.GetAllGroupTasks(params.Category, query),
GroupTasksSteps: grouptasks.GetAllGroupTasksSteps(),
})
}
func StartGroupTask(c *fiber.Ctx) error {
// swagger:operation POST /grouptasks/start grouptask grouptaskStartGroupTask
// swagger:operation POST /grouptasks/start grouptasks grouptaskStartGroupTask
// ---
// summary: Start a new group task
// consumes:

View File

@ -50,7 +50,7 @@ func GetSystemLog(c *fiber.Ctx) error {
Users: socketclients.GetAllUsers(),
Roles: socketclients.GetAllRoles(),
CategoryGroups: cache.GetCategoryGroupsSorted(),
GroupTasks: grouptasks.GetAllGroupTasks(),
GroupTasks: grouptasks.GetAllGroupTasks("", structs.PageQuery{}),
GroupTasksSteps: grouptasks.GetAllGroupTasksSteps(),
})
}
@ -62,7 +62,7 @@ func GetSystemLog(c *fiber.Ctx) error {
Users: socketclients.GetAllUsers(),
Roles: socketclients.GetAllRoles(),
CategoryGroups: cache.GetCategoryGroupsSorted(),
GroupTasks: grouptasks.GetAllGroupTasks(),
GroupTasks: grouptasks.GetAllGroupTasks("", structs.PageQuery{}),
GroupTasksSteps: grouptasks.GetAllGroupTasksSteps(),
})
}

View File

@ -1,8 +1,10 @@
package user
import (
"jannex/admin-dashboard-backend/modules/cache"
"jannex/admin-dashboard-backend/modules/database"
"jannex/admin-dashboard-backend/modules/structs"
"jannex/admin-dashboard-backend/modules/utils"
"jannex/admin-dashboard-backend/socketclients"
"github.com/gofiber/fiber/v2"
@ -34,12 +36,20 @@ func UserInfo(c *fiber.Ctx) error {
database.DB.Select("id, username, avatar", "role_id").First(&user, "id = ?", c.Locals("userId").(string))
var categories []string
for _, categoryGroup := range cache.GetCategoryGroups() {
if socketclients.HasXYPermission(user.Id, utils.PermissionGroupTasksOverviewXYView, categoryGroup.Category) {
categories = append(categories, categoryGroup.Category)
}
}
return c.JSON(structs.UserInfoResponse{
UserId: user.Id,
Username: user.Username,
Avatar: user.Avatar,
Permissions: socketclients.GetPermissionsByRoleId(user.RoleId),
AvailableGroupTasks: []string{},
Users: socketclients.GetAllUsers(),
UserId: user.Id,
Username: user.Username,
Avatar: user.Avatar,
Permissions: socketclients.GetPermissionsByRoleId(user.RoleId),
AvailableCategoryGroups: categories,
Users: socketclients.GetAllUsers(),
})
}

View File

@ -8,7 +8,7 @@ import (
"jannex/admin-dashboard-backend/modules/utils"
adminarea "jannex/admin-dashboard-backend/routers/router/api/v1/adminArea"
"jannex/admin-dashboard-backend/routers/router/api/v1/equipment"
"jannex/admin-dashboard-backend/routers/router/api/v1/grouptask"
"jannex/admin-dashboard-backend/routers/router/api/v1/grouptasks"
log "jannex/admin-dashboard-backend/routers/router/api/v1/logger"
"jannex/admin-dashboard-backend/routers/router/api/v1/user"
"jannex/admin-dashboard-backend/routers/router/api/v1/users"
@ -42,8 +42,8 @@ func SetupRoutes(app *fiber.App) {
l.Get("/", requestAccessValidation, log.GetSystemLog)
g := v1.Group("/grouptasks")
g.Get("/", requestAccessValidation, grouptask.GetGroupTasks)
g.Post("/start", requestAccessValidation, grouptask.StartGroupTask)
g.Get("/:category", requestAccessValidation, grouptasks.GetGroupTasks)
g.Post("/start", requestAccessValidation, grouptasks.StartGroupTask)
e := v1.Group("/equipment")
e.Get("/documentations/:stockItemId", requestAccessValidation, equipment.GetEquipmentDocumentations)