mirror of
https://github.com/simon987/task_tracker.git
synced 2025-12-10 21:48:52 +00:00
Task chaining + some refactoring
This commit is contained in:
@@ -134,8 +134,8 @@ func (api *WebAPI) getAssociatedProject(payload *GitPayload) *storage.Project {
|
||||
project := api.Database.GetProjectWithRepoName(payload.Repository.FullName)
|
||||
|
||||
logrus.WithFields(logrus.Fields{
|
||||
"project": project,
|
||||
}).Trace("Found project associated with WebHook")
|
||||
"projectChange": project,
|
||||
}).Trace("Found projectChange associated with WebHook")
|
||||
|
||||
return project
|
||||
}
|
||||
|
||||
20
api/main.go
20
api/main.go
@@ -83,18 +83,18 @@ func New() *WebAPI {
|
||||
api.router.POST("/access/grant", LogRequestMiddleware(api.WorkerGrantAccess))
|
||||
api.router.POST("/access/remove", LogRequestMiddleware(api.WorkerRemoveAccess))
|
||||
|
||||
api.router.POST("/project/create", LogRequestMiddleware(api.ProjectCreate))
|
||||
api.router.GET("/project/get/:id", LogRequestMiddleware(api.ProjectGet))
|
||||
api.router.POST("/project/update/:id", LogRequestMiddleware(api.ProjectUpdate))
|
||||
api.router.GET("/project/list", LogRequestMiddleware(api.ProjectGetAllProjects))
|
||||
api.router.GET("/project/monitoring-between/:id", LogRequestMiddleware(api.GetSnapshotsBetween))
|
||||
api.router.GET("/project/monitoring/:id", LogRequestMiddleware(api.GetNSnapshots))
|
||||
api.router.GET("/project/assignees/:id", LogRequestMiddleware(api.ProjectGetAssigneeStats))
|
||||
api.router.GET("/project/requests/:id", LogRequestMiddleware(api.ProjectGetAccessRequests))
|
||||
api.router.GET("/project/request_access/:id", LogRequestMiddleware(api.WorkerRequestAccess))
|
||||
api.router.POST("/projectChange/create", LogRequestMiddleware(api.ProjectCreate))
|
||||
api.router.GET("/projectChange/get/:id", LogRequestMiddleware(api.ProjectGet))
|
||||
api.router.POST("/projectChange/update/:id", LogRequestMiddleware(api.ProjectUpdate))
|
||||
api.router.GET("/projectChange/list", LogRequestMiddleware(api.ProjectGetAllProjects))
|
||||
api.router.GET("/projectChange/monitoring-between/:id", LogRequestMiddleware(api.GetSnapshotsBetween))
|
||||
api.router.GET("/projectChange/monitoring/:id", LogRequestMiddleware(api.GetNSnapshots))
|
||||
api.router.GET("/projectChange/assignees/:id", LogRequestMiddleware(api.ProjectGetAssigneeStats))
|
||||
api.router.GET("/projectChange/requests/:id", LogRequestMiddleware(api.ProjectGetAccessRequests))
|
||||
api.router.GET("/projectChange/request_access/:id", LogRequestMiddleware(api.WorkerRequestAccess))
|
||||
|
||||
api.router.POST("/task/create", LogRequestMiddleware(api.TaskCreate))
|
||||
api.router.GET("/task/get/:project", LogRequestMiddleware(api.TaskGetFromProject))
|
||||
api.router.GET("/task/get/:projectChange", LogRequestMiddleware(api.TaskGetFromProject))
|
||||
api.router.GET("/task/get", LogRequestMiddleware(api.TaskGet))
|
||||
api.router.POST("/task/release", LogRequestMiddleware(api.TaskRelease))
|
||||
|
||||
|
||||
@@ -16,6 +16,7 @@ type CreateProjectRequest struct {
|
||||
Motd string `json:"motd"`
|
||||
Public bool `json:"public"`
|
||||
Hidden bool `json:"hidden"`
|
||||
Chain int64 `json:"chain"`
|
||||
}
|
||||
|
||||
type UpdateProjectRequest struct {
|
||||
@@ -26,6 +27,7 @@ type UpdateProjectRequest struct {
|
||||
Motd string `json:"motd"`
|
||||
Public bool `json:"public"`
|
||||
Hidden bool `json:"hidden"`
|
||||
Chain int64 `json:"chain"`
|
||||
}
|
||||
|
||||
type UpdateProjectResponse struct {
|
||||
@@ -42,7 +44,7 @@ type CreateProjectResponse struct {
|
||||
type GetProjectResponse struct {
|
||||
Ok bool `json:"ok"`
|
||||
Message string `json:"message,omitempty"`
|
||||
Project *storage.Project `json:"project,omitempty"`
|
||||
Project *storage.Project `json:"projectChange,omitempty"`
|
||||
}
|
||||
|
||||
type GetAllProjectsResponse struct {
|
||||
@@ -91,28 +93,29 @@ func (api *WebAPI) ProjectCreate(r *Request) {
|
||||
Motd: createReq.Motd,
|
||||
Public: createReq.Public,
|
||||
Hidden: createReq.Hidden,
|
||||
Chain: createReq.Chain,
|
||||
}
|
||||
|
||||
if !isValidProject(project) {
|
||||
logrus.WithFields(logrus.Fields{
|
||||
"project": project,
|
||||
}).Warn("Invalid project")
|
||||
"projectChange": project,
|
||||
}).Warn("Invalid projectChange")
|
||||
|
||||
r.Json(CreateProjectResponse{
|
||||
Ok: false,
|
||||
Message: "Invalid project",
|
||||
Message: "Invalid projectChange",
|
||||
}, 400)
|
||||
return
|
||||
}
|
||||
|
||||
if !isProjectCreationAuthorized(project, manager) {
|
||||
logrus.WithFields(logrus.Fields{
|
||||
"project": project,
|
||||
}).Warn("Unauthorized project creation")
|
||||
"projectChange": project,
|
||||
}).Warn("Unauthorized projectChange creation")
|
||||
|
||||
r.Json(CreateProjectResponse{
|
||||
Ok: false,
|
||||
Message: "You are not permitted to create a project with this configuration",
|
||||
Message: "You are not permitted to create a projectChange with this configuration",
|
||||
}, 400)
|
||||
return
|
||||
}
|
||||
@@ -130,8 +133,8 @@ func (api *WebAPI) ProjectCreate(r *Request) {
|
||||
Id: id,
|
||||
})
|
||||
logrus.WithFields(logrus.Fields{
|
||||
"project": project,
|
||||
}).Debug("Created project")
|
||||
"projectChange": project,
|
||||
}).Debug("Created projectChange")
|
||||
}
|
||||
|
||||
func (api *WebAPI) ProjectUpdate(r *Request) {
|
||||
@@ -140,7 +143,7 @@ func (api *WebAPI) ProjectUpdate(r *Request) {
|
||||
if err != nil || id <= 0 {
|
||||
r.Json(CreateProjectResponse{
|
||||
Ok: false,
|
||||
Message: "Invalid project id",
|
||||
Message: "Invalid projectChange id",
|
||||
}, 400)
|
||||
return
|
||||
}
|
||||
@@ -163,6 +166,7 @@ func (api *WebAPI) ProjectUpdate(r *Request) {
|
||||
Motd: updateReq.Motd,
|
||||
Public: updateReq.Public,
|
||||
Hidden: updateReq.Hidden,
|
||||
Chain: updateReq.Chain,
|
||||
}
|
||||
|
||||
if isValidProject(project) {
|
||||
@@ -175,26 +179,26 @@ func (api *WebAPI) ProjectUpdate(r *Request) {
|
||||
}, 500)
|
||||
|
||||
logrus.WithError(err).WithFields(logrus.Fields{
|
||||
"project": project,
|
||||
}).Warn("Error during project update")
|
||||
"projectChange": project,
|
||||
}).Warn("Error during projectChange update")
|
||||
} else {
|
||||
r.OkJson(UpdateProjectResponse{
|
||||
Ok: true,
|
||||
})
|
||||
|
||||
logrus.WithFields(logrus.Fields{
|
||||
"project": project,
|
||||
}).Debug("Updated project")
|
||||
"projectChange": project,
|
||||
}).Debug("Updated projectChange")
|
||||
}
|
||||
|
||||
} else {
|
||||
logrus.WithFields(logrus.Fields{
|
||||
"project": project,
|
||||
}).Warn("Invalid project")
|
||||
"projectChange": project,
|
||||
}).Warn("Invalid projectChange")
|
||||
|
||||
r.Json(CreateProjectResponse{
|
||||
Ok: false,
|
||||
Message: "Invalid project",
|
||||
Message: "Invalid projectChange",
|
||||
}, 400)
|
||||
}
|
||||
}
|
||||
@@ -349,7 +353,7 @@ func (api *WebAPI) WorkerRequestAccess(r *Request) {
|
||||
r.Json(WorkerRequestAccessResponse{
|
||||
Ok: false,
|
||||
Message: "Project is public, you already have " +
|
||||
"an active request or you already have access to this project",
|
||||
"an active request or you already have access to this projectChange",
|
||||
}, 400)
|
||||
}
|
||||
}
|
||||
|
||||
11
api/task.go
11
api/task.go
@@ -14,7 +14,7 @@ import (
|
||||
)
|
||||
|
||||
type CreateTaskRequest struct {
|
||||
Project int64 `json:"project"`
|
||||
Project int64 `json:"projectChange"`
|
||||
MaxRetries int64 `json:"max_retries"`
|
||||
Recipe string `json:"recipe"`
|
||||
Priority int64 `json:"priority"`
|
||||
@@ -123,7 +123,7 @@ func (api *WebAPI) TaskGetFromProject(r *Request) {
|
||||
return
|
||||
}
|
||||
|
||||
project, err := strconv.ParseInt(r.Ctx.UserValue("project").(string), 10, 64)
|
||||
project, err := strconv.ParseInt(r.Ctx.UserValue("projectChange").(string), 10, 64)
|
||||
handleErr(err, r)
|
||||
task := api.Database.GetTaskFromProject(worker, project)
|
||||
|
||||
@@ -254,12 +254,7 @@ func (api *WebAPI) TaskRelease(r *Request) {
|
||||
}
|
||||
|
||||
if !res {
|
||||
response.Message = "Could not find a task with the specified Id assigned to this workerId"
|
||||
|
||||
logrus.WithFields(logrus.Fields{
|
||||
"releaseTaskRequest": req,
|
||||
"taskUpdated": res,
|
||||
}).Warn("Release task: NOT FOUND")
|
||||
response.Message = "Task was not marked as closed"
|
||||
} else {
|
||||
|
||||
logrus.WithFields(logrus.Fields{
|
||||
|
||||
@@ -146,7 +146,7 @@ func (api *WebAPI) WorkerGrantAccess(r *Request) {
|
||||
} else {
|
||||
r.OkJson(WorkerAccessResponse{
|
||||
Ok: false,
|
||||
Message: "Worker already has access to this project",
|
||||
Message: "Worker already has access to this projectChange",
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -171,7 +171,7 @@ func (api *WebAPI) WorkerRemoveAccess(r *Request) {
|
||||
} else {
|
||||
r.OkJson(WorkerAccessResponse{
|
||||
Ok: false,
|
||||
Message: "Worker did not have access to this project",
|
||||
Message: "Worker did not have access to this projectChange",
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user