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 { func GetEquipmentDocumentations(stockItemId string, query structs.PageQuery, c *fiber.Ctx) error {
var documentations []structs.EquipmentDocumentation var documentations []structs.EquipmentDocumentation
offset := (query.Page - 1) * utils.EquipmentDocumentationsPaginationLimit utils.DbPageQuery(query, utils.EquipmentDocumentationsPaginationLimit, &documentations, "stock_item_id = ?", stockItemId)
database.DB.Limit(utils.EquipmentDocumentationsPaginationLimit).
Offset(offset).
Where("stock_item_id = ?", stockItemId).
Find(&documentations)
var err error var err error
totalPages := 0 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 var groupTasks []structs.GroupTasks
database.DB.Find(&groupTasks) utils.DbPageQuery(query, utils.GroupTasksPaginationLimit, &groupTasks, "category = ?", category)
return groupTasks return groupTasks
} }

View File

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

View File

@ -62,7 +62,7 @@ type UserInfoResponse struct {
Username string Username string
Avatar string Avatar string
Permissions []string Permissions []string
AvailableGroupTasks []string AvailableCategoryGroups []string
Users []AllUsers Users []AllUsers
} }

View File

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

View File

@ -5,12 +5,14 @@ import (
"encoding/json" "encoding/json"
"errors" "errors"
"jannex/admin-dashboard-backend/modules/database" "jannex/admin-dashboard-backend/modules/database"
"jannex/admin-dashboard-backend/modules/structs"
"math" "math"
"math/big" "math/big"
"time" "time"
"github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2"
"github.com/rs/zerolog/log" "github.com/rs/zerolog/log"
"gorm.io/gorm"
) )
func GetXAuhorizationHeader(c *fiber.Ctx) string { 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))) 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 ( import (
"encoding/json" "encoding/json"
@ -13,36 +13,30 @@ import (
) )
func GetGroupTasks(c *fiber.Ctx) error { func GetGroupTasks(c *fiber.Ctx) error {
// swagger:operation GET /grouptasks grouptask grouptaskGetGroupTasks var params structs.GroupTasksRequest
// ---
// summary: Get all group tasks if err := c.ParamsParser(&params); err != nil {
// consumes: return c.SendStatus(fiber.StatusBadRequest)
// - application/json }
// produces:
// - application/json var query structs.PageQuery
// parameters:
// - name: X-Api-Key if err := c.QueryParser(&query); err != nil {
// in: header return c.SendStatus(fiber.StatusBadRequest)
// description: You can create a new api key in your user profile }
// responses:
// '200': log.Info().Msgf("params: %v", params)
// description: All group tasks log.Info().Msgf("query: %v", query)
// schema:
// "$ref": "#/definitions/GroupTasksResponse"
// '401':
// description: No permissions
// '500':
// description: Failed to get group tasks
return c.JSON(structs.GroupTasksResponse{ return c.JSON(structs.GroupTasksResponse{
CategoryGroups: cache.GetCategoryGroupsSorted(), CategoryGroups: cache.GetCategoryGroupsSorted(),
GroupTasks: grouptasks.GetAllGroupTasks(), GroupTasks: grouptasks.GetAllGroupTasks(params.Category, query),
GroupTasksSteps: grouptasks.GetAllGroupTasksSteps(), GroupTasksSteps: grouptasks.GetAllGroupTasksSteps(),
}) })
} }
func StartGroupTask(c *fiber.Ctx) error { 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 // summary: Start a new group task
// consumes: // consumes:

View File

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

View File

@ -1,8 +1,10 @@
package user package user
import ( import (
"jannex/admin-dashboard-backend/modules/cache"
"jannex/admin-dashboard-backend/modules/database" "jannex/admin-dashboard-backend/modules/database"
"jannex/admin-dashboard-backend/modules/structs" "jannex/admin-dashboard-backend/modules/structs"
"jannex/admin-dashboard-backend/modules/utils"
"jannex/admin-dashboard-backend/socketclients" "jannex/admin-dashboard-backend/socketclients"
"github.com/gofiber/fiber/v2" "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)) 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{ return c.JSON(structs.UserInfoResponse{
UserId: user.Id, UserId: user.Id,
Username: user.Username, Username: user.Username,
Avatar: user.Avatar, Avatar: user.Avatar,
Permissions: socketclients.GetPermissionsByRoleId(user.RoleId), Permissions: socketclients.GetPermissionsByRoleId(user.RoleId),
AvailableGroupTasks: []string{}, AvailableCategoryGroups: categories,
Users: socketclients.GetAllUsers(), Users: socketclients.GetAllUsers(),
}) })
} }

View File

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