impemented pagination from roese utils
parent
6340cfc391
commit
9a8530dbfd
4
go.mod
4
go.mod
|
@ -3,7 +3,7 @@ module jannex/admin-dashboard-backend
|
|||
go 1.21.0
|
||||
|
||||
require (
|
||||
git.ex.umbach.dev/Alex/roese-utils v1.0.10
|
||||
git.ex.umbach.dev/Alex/roese-utils v1.0.11
|
||||
github.com/gofiber/fiber/v2 v2.49.2
|
||||
github.com/gofiber/websocket/v2 v2.1.6
|
||||
github.com/google/uuid v1.3.1
|
||||
|
@ -12,7 +12,7 @@ require (
|
|||
github.com/savsgio/gotils v0.0.0-20230208104028-c358bd845dee
|
||||
golang.org/x/crypto v0.7.0
|
||||
gorm.io/driver/mysql v1.5.0
|
||||
gorm.io/gorm v1.25.0
|
||||
gorm.io/gorm v1.25.5
|
||||
)
|
||||
|
||||
require (
|
||||
|
|
16
go.sum
16
go.sum
|
@ -1,13 +1,5 @@
|
|||
git.ex.umbach.dev/Alex/roese-utils v1.0.6 h1:dqel8hRA+7IEwxPN1ld88UQu+ZnccECwWuwRbXDdh3U=
|
||||
git.ex.umbach.dev/Alex/roese-utils v1.0.6/go.mod h1:tjq6m6lNFo0TzAvq8jHhlK48IGxi+SrlrQwf9WYg408=
|
||||
git.ex.umbach.dev/Alex/roese-utils v1.0.7 h1:eLw6u1ibPeG6zd702Q3Ge8VebABiz0KQJkzr3Rp++HM=
|
||||
git.ex.umbach.dev/Alex/roese-utils v1.0.7/go.mod h1:tjq6m6lNFo0TzAvq8jHhlK48IGxi+SrlrQwf9WYg408=
|
||||
git.ex.umbach.dev/Alex/roese-utils v1.0.8 h1:ph18N52R9UsJ0AsJW95W6afa9qKlMDMh60xE4wlfFi8=
|
||||
git.ex.umbach.dev/Alex/roese-utils v1.0.8/go.mod h1:tjq6m6lNFo0TzAvq8jHhlK48IGxi+SrlrQwf9WYg408=
|
||||
git.ex.umbach.dev/Alex/roese-utils v1.0.9 h1:MshCYgFc22t4h9KjfE4hvuHbUcrqkbzxC3J4nqGoyuk=
|
||||
git.ex.umbach.dev/Alex/roese-utils v1.0.9/go.mod h1:tjq6m6lNFo0TzAvq8jHhlK48IGxi+SrlrQwf9WYg408=
|
||||
git.ex.umbach.dev/Alex/roese-utils v1.0.10 h1:pAtvtWrDSuVKGyusKPG093+DsnNc2ek/6k/9Qgz7acE=
|
||||
git.ex.umbach.dev/Alex/roese-utils v1.0.10/go.mod h1:tjq6m6lNFo0TzAvq8jHhlK48IGxi+SrlrQwf9WYg408=
|
||||
git.ex.umbach.dev/Alex/roese-utils v1.0.11 h1:iPrVktpUG0WYLTexoI3iJqi/KojaB5Cs0hCF/GFs92c=
|
||||
git.ex.umbach.dev/Alex/roese-utils v1.0.11/go.mod h1:mov3ZaoSu+GBQU1uXN/AfSK6MF3/3WxUk38Tb6IKxbI=
|
||||
github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs=
|
||||
github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
|
||||
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
|
||||
|
@ -92,5 +84,5 @@ gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
|||
gorm.io/driver/mysql v1.5.0 h1:6hSAT5QcyIaty0jfnff0z0CLDjyRgZ8mlMHLqSt7uXM=
|
||||
gorm.io/driver/mysql v1.5.0/go.mod h1:FFla/fJuCvyTi7rJQd27qlNX2v3L6deTR1GgTjSOLPo=
|
||||
gorm.io/gorm v1.24.7-0.20230306060331-85eaf9eeda11/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k=
|
||||
gorm.io/gorm v1.25.0 h1:+KtYtb2roDz14EQe4bla8CbQlmb9dN3VejSai3lprfU=
|
||||
gorm.io/gorm v1.25.0/go.mod h1:L4uxeKpfBml98NYqVqwAdmV1a2nBtAec/cf3fpucW/k=
|
||||
gorm.io/gorm v1.25.5 h1:zR9lOiiYf09VNh5Q1gphfyia1JpiClIWG9hQaxB/mls=
|
||||
gorm.io/gorm v1.25.5/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8=
|
||||
|
|
|
@ -6,7 +6,9 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../..')
|
|||
|
||||
from libs.robots import rex
|
||||
|
||||
rexRobot = rex.Rex("B24", "Drucker leeren")
|
||||
rexRobot = rex.Rex("test", "Drucker leeren")
|
||||
|
||||
# rexRobot.moveToXYZ(1, 2, 3)
|
||||
rexRobot.move_to_x(5)
|
||||
|
||||
rexRobot.finish()
|
Binary file not shown.
|
@ -6,17 +6,18 @@ class Rex:
|
|||
"""
|
||||
This class represents a rex robot.
|
||||
"""
|
||||
def __init__(self, rexName, jobName):
|
||||
self.rexName = rexName
|
||||
def __init__(self, robotName, jobName, address='http://localhost:50055'):
|
||||
self.robotName = robotName
|
||||
self.jobId = uuid.uuid4().__str__()
|
||||
self.jobName = jobName
|
||||
self.address = address
|
||||
self.x = 0
|
||||
self.y = 0
|
||||
self.z = 0
|
||||
self.connectedModule = 0
|
||||
|
||||
def _request_data(self):
|
||||
return {'robotName': self.rexName, 'jobid': self.jobId, 'jobName': self.jobName}
|
||||
return {'robotName': self.robotName, 'jobId': self.jobId, 'jobName': self.jobName}
|
||||
|
||||
def _post_request(self, json):
|
||||
obj = {}
|
||||
|
@ -24,7 +25,9 @@ class Rex:
|
|||
obj = self._request_data()
|
||||
obj['task'] = json
|
||||
|
||||
res = requests.post('http://localhost:50055/v1/control/0', json=obj)
|
||||
res = requests.post(self.address + '/v1/control/1', json=obj)
|
||||
|
||||
print("status code", res.status_code)
|
||||
|
||||
def move_to_x(self, x):
|
||||
"""
|
||||
|
@ -54,9 +57,7 @@ class Rex:
|
|||
self.y = y
|
||||
self.z = z
|
||||
|
||||
print('Robot: ' + self.rexName + ' moved to (' + str(self.x) + ', ' + str(self.y) + ')')
|
||||
|
||||
# requests.post('http://localhost:50055/v1/control/move', json={'x': self.x, 'y': self.y, 'z': self.z})
|
||||
print('Robot: ' + self.robotName + ' moved to (' + str(self.x) + ', ' + str(self.y) + ')')
|
||||
|
||||
self._post_request({'x': self.x, 'y': self.y, 'z': self.z})
|
||||
|
||||
|
@ -64,9 +65,9 @@ class Rex:
|
|||
"""
|
||||
Change the connected module.
|
||||
"""
|
||||
print('Robot: ' + self.rexName + ' changed connected module to ' + str(module))
|
||||
print('Robot: ' + self.robotName + ' changed connected module to ' + str(module))
|
||||
|
||||
def finish():
|
||||
def finish(self):
|
||||
"""
|
||||
Finish the robot.
|
||||
This will update the robot status to free.
|
||||
|
@ -74,3 +75,7 @@ class Rex:
|
|||
print('Robot finished')
|
||||
|
||||
# TODO: request to the server to finish the robot and update the robot status to free
|
||||
|
||||
res = requests.post(self.address + '/v1/control/1/finish', json={'robotName': self.robotName, 'jobId': self.jobId})
|
||||
|
||||
print("status code", res.status_code)
|
2
main.go
2
main.go
|
@ -72,7 +72,7 @@ INVEX_API_TOKEN=api_token`)
|
|||
|
||||
config.LoadConfig()
|
||||
|
||||
rslogger.InitLogger(config.Cfg.Debug, config.Cfg.ColorizedOutput, config.Cfg.LogManagerServerUrl)
|
||||
rslogger.InitLogger(false, config.Cfg.ColorizedOutput, config.Cfg.LogManagerServerUrl)
|
||||
|
||||
if os.Getenv("DOCKER") != "" {
|
||||
fmt.Println("Waiting for mariadb docker")
|
||||
|
|
|
@ -13,6 +13,7 @@ import (
|
|||
"strconv"
|
||||
"strings"
|
||||
|
||||
"git.ex.umbach.dev/Alex/roese-utils/rspagination"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"github.com/google/uuid"
|
||||
"github.com/rs/zerolog/log"
|
||||
|
@ -111,10 +112,10 @@ func CreateEquipmentDocumentation(c *fiber.Ctx, body structs.CreateEquipmentDocu
|
|||
return c.JSON(fiber.Map{"message": "ok"})
|
||||
}
|
||||
|
||||
func GetEquipmentDocumentations(stockItemId string, query structs.PageQuery, c *fiber.Ctx) error {
|
||||
func GetEquipmentDocumentations(stockItemId string, query rspagination.PageQuery, c *fiber.Ctx) error {
|
||||
var documentations []structs.EquipmentDocumentation
|
||||
|
||||
utils.DbPageQuery(query,
|
||||
rspagination.DbPageQuery(database.DB, query,
|
||||
utils.EquipmentDocumentationsPaginationLimit,
|
||||
&documentations,
|
||||
"created_at DESC",
|
||||
|
@ -135,7 +136,7 @@ func GetEquipmentDocumentations(stockItemId string, query structs.PageQuery, c *
|
|||
return c.SendStatus(fiber.StatusInternalServerError)
|
||||
}
|
||||
} else {
|
||||
totalPages = utils.GetTotalPages(utils.EquipmentDocumentationsPaginationLimit,
|
||||
totalPages = rspagination.GetTotalPages(database.DB, utils.EquipmentDocumentationsPaginationLimit,
|
||||
&documentations,
|
||||
"stock_item_id = ?",
|
||||
stockItemId)
|
||||
|
|
|
@ -18,6 +18,7 @@ import (
|
|||
"strings"
|
||||
"time"
|
||||
|
||||
"git.ex.umbach.dev/Alex/roese-utils/rspagination"
|
||||
"git.ex.umbach.dev/Alex/roese-utils/rsutils"
|
||||
"github.com/google/uuid"
|
||||
"github.com/rs/zerolog/log"
|
||||
|
@ -736,10 +737,10 @@ func updateGroupTaskSteps(groupTaskStep structs.GroupTaskSteps, category string)
|
|||
})
|
||||
}
|
||||
|
||||
func GetAllGroupTasks(category string, query structs.PageQuery) []structs.GroupTasks {
|
||||
func GetAllGroupTasks(category string, query rspagination.PageQuery) []structs.GroupTasks {
|
||||
var groupTasks []structs.GroupTasks
|
||||
|
||||
utils.DbPageQuery(query,
|
||||
rspagination.DbPageQuery(database.DB, query,
|
||||
utils.GroupTasksPaginationLimit,
|
||||
&groupTasks,
|
||||
"started_at DESC",
|
||||
|
@ -861,7 +862,7 @@ func StartGroupTask(userId string, groupTask structs.GroupTasks) {
|
|||
TotalPages int
|
||||
}{
|
||||
GroupTask: groupTask,
|
||||
TotalPages: utils.GetTotalPages(utils.GroupTasksPaginationLimit,
|
||||
TotalPages: rspagination.GetTotalPages(database.DB, utils.GroupTasksPaginationLimit,
|
||||
[]structs.GroupTasks{},
|
||||
"category = ?",
|
||||
groupTask.Category),
|
||||
|
|
|
@ -7,6 +7,7 @@ import (
|
|||
"jannex/admin-dashboard-backend/socketclients"
|
||||
"time"
|
||||
|
||||
"git.ex.umbach.dev/Alex/roese-utils/rspagination"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
@ -19,10 +20,10 @@ func GetTotalNotifications(userId string) int {
|
|||
return int(totalNotifications)
|
||||
}
|
||||
|
||||
func GetNotifications(query structs.PageQuery, userId string) []structs.Notification {
|
||||
func GetNotifications(query rspagination.PageQuery, userId string) []structs.Notification {
|
||||
var notifications []structs.Notification
|
||||
|
||||
utils.DbPageQuery(query,
|
||||
rspagination.DbPageQuery(database.DB, query,
|
||||
utils.NotificationsPaginationLimit,
|
||||
¬ifications,
|
||||
"created_at DESC",
|
||||
|
@ -93,7 +94,7 @@ func AddNotification(c *fiber.Ctx, body structs.AddNotificationRequest) error {
|
|||
TotalPages int
|
||||
}{
|
||||
Notification: notify,
|
||||
TotalPages: utils.GetTotalPages(utils.NotificationsPaginationLimit,
|
||||
TotalPages: rspagination.GetTotalPages(database.DB, utils.NotificationsPaginationLimit,
|
||||
[]structs.Notification{},
|
||||
"user_id = ?",
|
||||
userId),
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
package structs
|
||||
|
||||
type PageQuery struct {
|
||||
Page int
|
||||
}
|
|
@ -202,6 +202,8 @@ const (
|
|||
PermissionUserProfileApiKeys = "user_profile.api_keys"
|
||||
_consoles = "consoles."
|
||||
PermissionConsolesView = _consoles + "view"
|
||||
|
||||
PermissionRoboticsView = "robotics.view"
|
||||
)
|
||||
|
||||
var SystemPermissions = []string{
|
||||
|
@ -226,6 +228,7 @@ var SystemPermissions = []string{
|
|||
PermissionAdminAreaManageRemoveLogManagerServerConnection,
|
||||
PermissionUserProfileApiKeys,
|
||||
PermissionConsolesView,
|
||||
PermissionRoboticsView,
|
||||
}
|
||||
|
||||
var DynamicGroupTasksPermissions = []string{
|
||||
|
|
|
@ -1,14 +1,10 @@
|
|||
package utils
|
||||
|
||||
import (
|
||||
"jannex/admin-dashboard-backend/modules/database"
|
||||
"jannex/admin-dashboard-backend/modules/structs"
|
||||
"math"
|
||||
"time"
|
||||
|
||||
"github.com/gofiber/fiber/v2"
|
||||
"github.com/rs/zerolog/log"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func GetXAuhorizationHeader(c *fiber.Ctx) string {
|
||||
|
@ -33,27 +29,3 @@ func IsPasswordLengthValid(password string) bool {
|
|||
|
||||
return true
|
||||
}
|
||||
|
||||
// GetTotalPages returns total pages for pagination
|
||||
// Example whereQuery = "stock_item_id = ?" and args = stockItemId is Where("stock_item_id = ?", stockItemId)
|
||||
func GetTotalPages(paginationLimit int, any interface{}, whereQuery interface{}, args ...interface{}) int {
|
||||
var totalPages int64
|
||||
|
||||
database.DB.Model(any).
|
||||
Where(whereQuery, args).
|
||||
Count(&totalPages)
|
||||
|
||||
return int(math.Ceil(float64(totalPages) / float64(paginationLimit)))
|
||||
}
|
||||
|
||||
func GetPageOffset(page int, paginationLimit int) int {
|
||||
return (page - 1) * paginationLimit
|
||||
}
|
||||
|
||||
func DbPageQuery(query structs.PageQuery, paginationLimit int, result any, orderBy, whereQuery interface{}, args ...interface{}) *gorm.DB {
|
||||
return database.DB.Limit(paginationLimit).
|
||||
Offset(GetPageOffset(query.Page, paginationLimit)).
|
||||
Where(whereQuery, args).
|
||||
Order(orderBy).
|
||||
Find(result)
|
||||
}
|
||||
|
|
|
@ -6,6 +6,7 @@ import (
|
|||
"jannex/admin-dashboard-backend/modules/utils"
|
||||
"jannex/admin-dashboard-backend/socketclients"
|
||||
|
||||
"git.ex.umbach.dev/Alex/roese-utils/rspagination"
|
||||
"git.ex.umbach.dev/Alex/roese-utils/rsutils"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
)
|
||||
|
@ -91,7 +92,7 @@ func GetEquipmentDocumentations(c *fiber.Ctx) error {
|
|||
return c.SendStatus(fiber.StatusBadRequest)
|
||||
}
|
||||
|
||||
var query structs.PageQuery
|
||||
var query rspagination.PageQuery
|
||||
|
||||
if err := rsutils.QueryParserHelper(c, &query); err != nil {
|
||||
return c.SendStatus(fiber.StatusBadRequest)
|
||||
|
|
|
@ -3,11 +3,13 @@ package grouptasks
|
|||
import (
|
||||
"encoding/json"
|
||||
"jannex/admin-dashboard-backend/modules/cache"
|
||||
"jannex/admin-dashboard-backend/modules/database"
|
||||
"jannex/admin-dashboard-backend/modules/grouptasks"
|
||||
"jannex/admin-dashboard-backend/modules/structs"
|
||||
"jannex/admin-dashboard-backend/modules/utils"
|
||||
"jannex/admin-dashboard-backend/socketclients"
|
||||
|
||||
"git.ex.umbach.dev/Alex/roese-utils/rspagination"
|
||||
"git.ex.umbach.dev/Alex/roese-utils/rsutils"
|
||||
"git.ex.umbach.dev/Alex/roese-utils/rsvalidator"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
|
@ -55,7 +57,7 @@ func GetGroupTasks(c *fiber.Ctx) error {
|
|||
return c.SendStatus(fiber.StatusUnauthorized)
|
||||
}
|
||||
|
||||
var query structs.PageQuery
|
||||
var query rspagination.PageQuery
|
||||
|
||||
if err := c.QueryParser(&query); err != nil {
|
||||
return c.SendStatus(fiber.StatusBadRequest)
|
||||
|
@ -72,7 +74,7 @@ func GetGroupTasks(c *fiber.Ctx) error {
|
|||
return c.JSON(structs.GroupTasksResponse{
|
||||
CategoryGroup: categoryGroup,
|
||||
GroupTasks: grouptasks.GetAllGroupTasks(params.Category, query),
|
||||
TotalPages: utils.GetTotalPages(utils.GroupTasksPaginationLimit,
|
||||
TotalPages: rspagination.GetTotalPages(database.DB, utils.GroupTasksPaginationLimit,
|
||||
[]structs.GroupTasks{},
|
||||
"category = ?",
|
||||
params.Category),
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
package notification
|
||||
|
||||
import (
|
||||
"jannex/admin-dashboard-backend/modules/database"
|
||||
"jannex/admin-dashboard-backend/modules/notification"
|
||||
"jannex/admin-dashboard-backend/modules/structs"
|
||||
"jannex/admin-dashboard-backend/modules/utils"
|
||||
|
||||
"git.ex.umbach.dev/Alex/roese-utils/rspagination"
|
||||
"git.ex.umbach.dev/Alex/roese-utils/rsutils"
|
||||
"github.com/gofiber/fiber/v2"
|
||||
)
|
||||
|
@ -71,7 +73,7 @@ func GetNotifications(c *fiber.Ctx) error {
|
|||
// '500':
|
||||
// description: Failed to get notifications
|
||||
|
||||
var query structs.PageQuery
|
||||
var query rspagination.PageQuery
|
||||
|
||||
if err := rsutils.QueryParserHelper(c, &query); err != nil {
|
||||
return c.SendStatus(fiber.StatusBadRequest)
|
||||
|
@ -81,7 +83,7 @@ func GetNotifications(c *fiber.Ctx) error {
|
|||
|
||||
return c.JSON(structs.NotificationsResponse{
|
||||
Notifications: notification.GetNotifications(query, userId),
|
||||
TotalPages: utils.GetTotalPages(utils.NotificationsPaginationLimit,
|
||||
TotalPages: rspagination.GetTotalPages(database.DB, utils.NotificationsPaginationLimit,
|
||||
[]structs.Notification{},
|
||||
"user_id = ?",
|
||||
userId),
|
||||
|
|
Loading…
Reference in New Issue