group task steps
parent
c70b1c396a
commit
f09391b21f
|
@ -855,6 +855,36 @@ func GetAllGroupTasksSteps() []structs.GroupTaskSteps {
|
|||
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 {
|
||||
for _, categoryGroup := range cache.GetCategoryGroups() {
|
||||
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
|
||||
}
|
||||
|
||||
// swagger:model GroupTaskSteps
|
||||
type GroupTaskSteps struct {
|
||||
Id string
|
||||
GroupTasksId string
|
||||
|
@ -114,3 +115,15 @@ type GroupTasksResponse struct {
|
|||
GroupTasks []GroupTasks
|
||||
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": {
|
||||
"post": {
|
||||
"consumes": [
|
||||
|
@ -320,7 +284,7 @@
|
|||
"application/json"
|
||||
],
|
||||
"tags": [
|
||||
"grouptask"
|
||||
"grouptasks"
|
||||
],
|
||||
"summary": "Start a new group task",
|
||||
"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": {
|
||||
"post": {
|
||||
"consumes": [
|
||||
|
@ -800,6 +854,10 @@
|
|||
"Status": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"TotalPages": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
}
|
||||
},
|
||||
"x-go-package": "jannex/admin-dashboard-backend/modules/structs"
|
||||
|
@ -950,11 +1008,8 @@
|
|||
"GroupTasksResponse": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"CategoryGroups": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"CategoryGroup": {
|
||||
"$ref": "#/definitions/CategoryGroup"
|
||||
}
|
||||
},
|
||||
"GroupTasks": {
|
||||
"type": "array",
|
||||
|
@ -962,15 +1017,26 @@
|
|||
"$ref": "#/definitions/GroupTasks"
|
||||
}
|
||||
},
|
||||
"GroupTasksSteps": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/GroupTaskSteps"
|
||||
}
|
||||
"TotalPages": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
}
|
||||
},
|
||||
"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": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
|
@ -1104,7 +1170,7 @@
|
|||
"UserInfoResponse": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"AvailableGroupTasks": {
|
||||
"AvailableCategoryGroups": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
|
|
|
@ -13,21 +13,52 @@ import (
|
|||
)
|
||||
|
||||
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
|
||||
|
||||
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)
|
||||
}
|
||||
|
||||
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)
|
||||
|
||||
var categoryGroup structs.CategoryGroup
|
||||
|
||||
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 {
|
||||
// swagger:operation POST /grouptasks/start grouptasks grouptaskStartGroupTask
|
||||
// ---
|
||||
|
|
|
@ -41,9 +41,10 @@ func SetupRoutes(app *fiber.App) {
|
|||
l := v1.Group("/log")
|
||||
l.Get("/", requestAccessValidation, log.GetSystemLog)
|
||||
|
||||
g := v1.Group("/grouptasks")
|
||||
g.Get("/:category", requestAccessValidation, grouptasks.GetGroupTasks)
|
||||
g.Post("/start", requestAccessValidation, grouptasks.StartGroupTask)
|
||||
gs := v1.Group("/grouptasks")
|
||||
gs.Get("/:category", requestAccessValidation, grouptasks.GetGroupTasks)
|
||||
gs.Post("/start", requestAccessValidation, grouptasks.StartGroupTask)
|
||||
gs.Get(":category/steps/:groupTaskId", requestAccessValidation, grouptasks.GetGroupTaskSteps)
|
||||
|
||||
e := v1.Group("/equipment")
|
||||
e.Get("/documentations/:stockItemId", requestAccessValidation, equipment.GetEquipmentDocumentations)
|
||||
|
|
Loading…
Reference in New Issue