group task steps
parent
c70b1c396a
commit
f09391b21f
|
@ -855,6 +855,36 @@ func GetAllGroupTasksSteps() []structs.GroupTaskSteps {
|
||||||
return groupTaskStepsLogs
|
return groupTaskStepsLogs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetGroupTaskSteps(groupTaskId string) structs.GetGroupTaskStepsResponse {
|
||||||
|
var groupTask structs.GroupTasks
|
||||||
|
|
||||||
|
database.DB.Where("id = ?", groupTaskId).Find(&groupTask)
|
||||||
|
|
||||||
|
var groupTaskSteps []structs.GroupTaskSteps
|
||||||
|
|
||||||
|
database.DB.Where("group_tasks_id = ?", groupTaskId).Find(&groupTaskSteps)
|
||||||
|
|
||||||
|
lockedGroupTaskSteps := cache.GetLockedGroupTaskSteps()
|
||||||
|
groupTaskStepsInputs := cache.GetGroupTaskStepsInputs()
|
||||||
|
|
||||||
|
for i, groupTaskStep := range groupTaskSteps {
|
||||||
|
if groupTaskStep.Status == utils.GroupTasksStatusInputRequired {
|
||||||
|
groupTaskSteps[i].Inputs = cache.GetGroupTaskStepsInputsValue(groupTaskStepsInputs, groupTaskStep.GroupTasksId, groupTaskStep.Step)
|
||||||
|
|
||||||
|
for _, lockedGroupTaskStep := range lockedGroupTaskSteps {
|
||||||
|
if groupTaskStep.GroupTasksId == lockedGroupTaskStep.GroupTaskId {
|
||||||
|
groupTaskSteps[i].LockedByUserId = lockedGroupTaskStep.LockedByUserId
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return structs.GetGroupTaskStepsResponse{
|
||||||
|
GroupTask: groupTask,
|
||||||
|
GroupTaskSteps: groupTaskSteps,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func GetCategoryGroupTaskByCategoryAndGroupId(category string, groupId string) structs.Group {
|
func GetCategoryGroupTaskByCategoryAndGroupId(category string, groupId string) structs.Group {
|
||||||
for _, categoryGroup := range cache.GetCategoryGroups() {
|
for _, categoryGroup := range cache.GetCategoryGroups() {
|
||||||
if categoryGroup.Category == category {
|
if categoryGroup.Category == category {
|
||||||
|
|
|
@ -23,6 +23,7 @@ type GroupTasks struct {
|
||||||
RememberId string `gorm:"-"` // used by the web client who requested this to open the modal after the backend sent the NewGroupTaskStarted message
|
RememberId string `gorm:"-"` // used by the web client who requested this to open the modal after the backend sent the NewGroupTaskStarted message
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// swagger:model GroupTaskSteps
|
||||||
type GroupTaskSteps struct {
|
type GroupTaskSteps struct {
|
||||||
Id string
|
Id string
|
||||||
GroupTasksId string
|
GroupTasksId string
|
||||||
|
@ -114,3 +115,15 @@ type GroupTasksResponse struct {
|
||||||
GroupTasks []GroupTasks
|
GroupTasks []GroupTasks
|
||||||
TotalPages int
|
TotalPages int
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// swagger:model GroupTasksStepsRequest
|
||||||
|
type GroupTaskStepsRequest struct {
|
||||||
|
Category string
|
||||||
|
GroupTaskId string
|
||||||
|
}
|
||||||
|
|
||||||
|
// swagger:model GetGroupTaskStepsResponse
|
||||||
|
type GetGroupTaskStepsResponse struct {
|
||||||
|
GroupTask GroupTasks
|
||||||
|
GroupTaskSteps []GroupTaskSteps
|
||||||
|
}
|
||||||
|
|
|
@ -275,42 +275,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"/grouptasks": {
|
|
||||||
"get": {
|
|
||||||
"consumes": [
|
|
||||||
"application/json"
|
|
||||||
],
|
|
||||||
"produces": [
|
|
||||||
"application/json"
|
|
||||||
],
|
|
||||||
"tags": [
|
|
||||||
"grouptask"
|
|
||||||
],
|
|
||||||
"summary": "Get all group tasks",
|
|
||||||
"operationId": "grouptaskGetGroupTasks",
|
|
||||||
"parameters": [
|
|
||||||
{
|
|
||||||
"description": "You can create a new api key in your user profile",
|
|
||||||
"name": "X-Api-Key",
|
|
||||||
"in": "header"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"responses": {
|
|
||||||
"200": {
|
|
||||||
"description": "All group tasks",
|
|
||||||
"schema": {
|
|
||||||
"$ref": "#/definitions/GroupTasksResponse"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"401": {
|
|
||||||
"description": "No permissions"
|
|
||||||
},
|
|
||||||
"500": {
|
|
||||||
"description": "Failed to get group tasks"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"/grouptasks/start": {
|
"/grouptasks/start": {
|
||||||
"post": {
|
"post": {
|
||||||
"consumes": [
|
"consumes": [
|
||||||
|
@ -320,7 +284,7 @@
|
||||||
"application/json"
|
"application/json"
|
||||||
],
|
],
|
||||||
"tags": [
|
"tags": [
|
||||||
"grouptask"
|
"grouptasks"
|
||||||
],
|
],
|
||||||
"summary": "Start a new group task",
|
"summary": "Start a new group task",
|
||||||
"operationId": "grouptaskStartGroupTask",
|
"operationId": "grouptaskStartGroupTask",
|
||||||
|
@ -357,6 +321,96 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"/grouptasks/{category}": {
|
||||||
|
"get": {
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"grouptasks"
|
||||||
|
],
|
||||||
|
"summary": "Get group tasks",
|
||||||
|
"operationId": "grouptaskGetGroupTasks",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"description": "Category of the group tasks",
|
||||||
|
"name": "category",
|
||||||
|
"in": "query",
|
||||||
|
"required": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "Page number",
|
||||||
|
"name": "page",
|
||||||
|
"in": "query"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "Number of items per page",
|
||||||
|
"name": "perPage",
|
||||||
|
"in": "query"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "Group tasks",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/GroupTasksResponse"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"400": {
|
||||||
|
"description": "Invalid request query"
|
||||||
|
},
|
||||||
|
"401": {
|
||||||
|
"description": "No permissions"
|
||||||
|
},
|
||||||
|
"500": {
|
||||||
|
"description": "Failed to get group tasks"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"/grouptasks/{category}/steps/{groupTaskId}": {
|
||||||
|
"get": {
|
||||||
|
"produces": [
|
||||||
|
"application/json"
|
||||||
|
],
|
||||||
|
"tags": [
|
||||||
|
"grouptasks"
|
||||||
|
],
|
||||||
|
"summary": "Get group task steps",
|
||||||
|
"operationId": "grouptaskGetGroupTaskSteps",
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"description": "Category of the group tasks",
|
||||||
|
"name": "category",
|
||||||
|
"in": "query",
|
||||||
|
"required": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"description": "Id of the group task",
|
||||||
|
"name": "groupTaskId",
|
||||||
|
"in": "query",
|
||||||
|
"required": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"responses": {
|
||||||
|
"200": {
|
||||||
|
"description": "Group task steps",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/GroupTaskSteps"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"400": {
|
||||||
|
"description": "Invalid request query"
|
||||||
|
},
|
||||||
|
"401": {
|
||||||
|
"description": "No permissions"
|
||||||
|
},
|
||||||
|
"500": {
|
||||||
|
"description": "Failed to get group task steps"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"/user/auth/login": {
|
"/user/auth/login": {
|
||||||
"post": {
|
"post": {
|
||||||
"consumes": [
|
"consumes": [
|
||||||
|
@ -800,6 +854,10 @@
|
||||||
"Status": {
|
"Status": {
|
||||||
"type": "integer",
|
"type": "integer",
|
||||||
"format": "int64"
|
"format": "int64"
|
||||||
|
},
|
||||||
|
"TotalPages": {
|
||||||
|
"type": "integer",
|
||||||
|
"format": "int64"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"x-go-package": "jannex/admin-dashboard-backend/modules/structs"
|
"x-go-package": "jannex/admin-dashboard-backend/modules/structs"
|
||||||
|
@ -950,11 +1008,8 @@
|
||||||
"GroupTasksResponse": {
|
"GroupTasksResponse": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"CategoryGroups": {
|
"CategoryGroup": {
|
||||||
"type": "array",
|
|
||||||
"items": {
|
|
||||||
"$ref": "#/definitions/CategoryGroup"
|
"$ref": "#/definitions/CategoryGroup"
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"GroupTasks": {
|
"GroupTasks": {
|
||||||
"type": "array",
|
"type": "array",
|
||||||
|
@ -962,15 +1017,26 @@
|
||||||
"$ref": "#/definitions/GroupTasks"
|
"$ref": "#/definitions/GroupTasks"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"GroupTasksSteps": {
|
"TotalPages": {
|
||||||
"type": "array",
|
"type": "integer",
|
||||||
"items": {
|
"format": "int64"
|
||||||
"$ref": "#/definitions/GroupTaskSteps"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"x-go-package": "jannex/admin-dashboard-backend/modules/structs"
|
"x-go-package": "jannex/admin-dashboard-backend/modules/structs"
|
||||||
},
|
},
|
||||||
|
"GroupTasksStepsRequest": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"Category": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"GroupTaskId": {
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"x-go-name": "GroupTaskStepsRequest",
|
||||||
|
"x-go-package": "jannex/admin-dashboard-backend/modules/structs"
|
||||||
|
},
|
||||||
"Role": {
|
"Role": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
@ -1104,7 +1170,7 @@
|
||||||
"UserInfoResponse": {
|
"UserInfoResponse": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"AvailableGroupTasks": {
|
"AvailableCategoryGroups": {
|
||||||
"type": "array",
|
"type": "array",
|
||||||
"items": {
|
"items": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
|
|
@ -13,21 +13,52 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
func GetGroupTasks(c *fiber.Ctx) error {
|
func GetGroupTasks(c *fiber.Ctx) error {
|
||||||
|
// swagger:operation GET /grouptasks/{category} grouptasks grouptaskGetGroupTasks
|
||||||
|
// ---
|
||||||
|
// summary: Get group tasks
|
||||||
|
// produces:
|
||||||
|
// - application/json
|
||||||
|
// parameters:
|
||||||
|
// - name: category
|
||||||
|
// in: query
|
||||||
|
// description: Category of the group tasks
|
||||||
|
// required: true
|
||||||
|
// - name: page
|
||||||
|
// in: query
|
||||||
|
// description: Page number
|
||||||
|
// required: false
|
||||||
|
// - name: perPage
|
||||||
|
// in: query
|
||||||
|
// description: Number of items per page
|
||||||
|
// required: false
|
||||||
|
// responses:
|
||||||
|
// '200':
|
||||||
|
// description: Group tasks
|
||||||
|
// schema:
|
||||||
|
// "$ref": "#/definitions/GroupTasksResponse"
|
||||||
|
// '400':
|
||||||
|
// description: Invalid request query
|
||||||
|
// '401':
|
||||||
|
// description: No permissions
|
||||||
|
// '500':
|
||||||
|
// description: Failed to get group tasks
|
||||||
|
|
||||||
var params structs.GroupTasksRequest
|
var params structs.GroupTasksRequest
|
||||||
|
|
||||||
if err := c.ParamsParser(¶ms); err != nil {
|
if err := c.ParamsParser(¶ms); err != nil {
|
||||||
return c.SendStatus(fiber.StatusBadRequest)
|
return c.SendStatus(fiber.StatusBadRequest)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if !socketclients.HasXYPermission(c.Locals("userId").(string), utils.PermissionGroupTasksOverviewXYView, params.Category) {
|
||||||
|
return c.SendStatus(fiber.StatusUnauthorized)
|
||||||
|
}
|
||||||
|
|
||||||
var query structs.PageQuery
|
var query structs.PageQuery
|
||||||
|
|
||||||
if err := c.QueryParser(&query); err != nil {
|
if err := c.QueryParser(&query); err != nil {
|
||||||
return c.SendStatus(fiber.StatusBadRequest)
|
return c.SendStatus(fiber.StatusBadRequest)
|
||||||
}
|
}
|
||||||
|
|
||||||
log.Info().Msgf("params: %v", params)
|
|
||||||
log.Info().Msgf("query: %v", query)
|
|
||||||
|
|
||||||
var categoryGroup structs.CategoryGroup
|
var categoryGroup structs.CategoryGroup
|
||||||
|
|
||||||
for _, cGroup := range cache.GetCategoryGroups() {
|
for _, cGroup := range cache.GetCategoryGroups() {
|
||||||
|
@ -43,6 +74,46 @@ func GetGroupTasks(c *fiber.Ctx) error {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetGroupTaskSteps(c *fiber.Ctx) error {
|
||||||
|
// swagger:operation GET /grouptasks/{category}/steps/{groupTaskId} grouptasks grouptaskGetGroupTaskSteps
|
||||||
|
// ---
|
||||||
|
// summary: Get group task steps
|
||||||
|
// produces:
|
||||||
|
// - application/json
|
||||||
|
// parameters:
|
||||||
|
// - name: category
|
||||||
|
// in: query
|
||||||
|
// description: Category of the group tasks
|
||||||
|
// required: true
|
||||||
|
// - name: groupTaskId
|
||||||
|
// in: query
|
||||||
|
// description: Id of the group task
|
||||||
|
// required: true
|
||||||
|
// responses:
|
||||||
|
// '200':
|
||||||
|
// description: Group task steps
|
||||||
|
// schema:
|
||||||
|
// "$ref": "#/definitions/GroupTaskSteps"
|
||||||
|
// '400':
|
||||||
|
// description: Invalid request query
|
||||||
|
// '401':
|
||||||
|
// description: No permissions
|
||||||
|
// '500':
|
||||||
|
// description: Failed to get group task steps
|
||||||
|
|
||||||
|
var params structs.GroupTaskStepsRequest
|
||||||
|
|
||||||
|
if err := c.ParamsParser(¶ms); err != nil {
|
||||||
|
return c.SendStatus(fiber.StatusBadRequest)
|
||||||
|
}
|
||||||
|
|
||||||
|
if !socketclients.HasXYPermission(c.Locals("userId").(string), utils.PermissionGroupTasksOverviewXYView, params.Category) {
|
||||||
|
return c.SendStatus(fiber.StatusUnauthorized)
|
||||||
|
}
|
||||||
|
|
||||||
|
return c.JSON(grouptasks.GetGroupTaskSteps(params.GroupTaskId))
|
||||||
|
}
|
||||||
|
|
||||||
func StartGroupTask(c *fiber.Ctx) error {
|
func StartGroupTask(c *fiber.Ctx) error {
|
||||||
// swagger:operation POST /grouptasks/start grouptasks grouptaskStartGroupTask
|
// swagger:operation POST /grouptasks/start grouptasks grouptaskStartGroupTask
|
||||||
// ---
|
// ---
|
||||||
|
|
|
@ -41,9 +41,10 @@ func SetupRoutes(app *fiber.App) {
|
||||||
l := v1.Group("/log")
|
l := v1.Group("/log")
|
||||||
l.Get("/", requestAccessValidation, log.GetSystemLog)
|
l.Get("/", requestAccessValidation, log.GetSystemLog)
|
||||||
|
|
||||||
g := v1.Group("/grouptasks")
|
gs := v1.Group("/grouptasks")
|
||||||
g.Get("/:category", requestAccessValidation, grouptasks.GetGroupTasks)
|
gs.Get("/:category", requestAccessValidation, grouptasks.GetGroupTasks)
|
||||||
g.Post("/start", requestAccessValidation, grouptasks.StartGroupTask)
|
gs.Post("/start", requestAccessValidation, grouptasks.StartGroupTask)
|
||||||
|
gs.Get(":category/steps/:groupTaskId", requestAccessValidation, grouptasks.GetGroupTaskSteps)
|
||||||
|
|
||||||
e := v1.Group("/equipment")
|
e := v1.Group("/equipment")
|
||||||
e.Get("/documentations/:stockItemId", requestAccessValidation, equipment.GetEquipmentDocumentations)
|
e.Get("/documentations/:stockItemId", requestAccessValidation, equipment.GetEquipmentDocumentations)
|
||||||
|
|
Loading…
Reference in New Issue