1
0

fix(task): cyclomatic complexity

(cherry picked from commit 20724f6fb57128fd212544cb3a6b55b90f38c316)
This commit is contained in:
kolaente 2024-09-12 10:24:00 +02:00
parent dfda2e5500
commit b94802169c
No known key found for this signature in database
GPG Key ID: F40E70337AB24C9B

View File

@ -681,7 +681,7 @@ func calculateDefaultPosition(entityID int64, position float64) float64 {
return position
}
func getNextTaskIndex(s *xorm.Session, projectID int64) (nextIndex int64, err error) {
func calculateNextTaskIndex(s *xorm.Session, projectID int64) (nextIndex int64, err error) {
latestTask := &Task{}
_, err = s.
Where("project_id = ?", projectID).
@ -694,6 +694,29 @@ func getNextTaskIndex(s *xorm.Session, projectID int64) (nextIndex int64, err er
return latestTask.Index + 1, nil
}
func setNewTaskIndex(s *xorm.Session, t *Task) (err error) {
// Check if an index was provided, otherwise calculate a new one
if t.Index == 0 {
t.Index, err = calculateNextTaskIndex(s, t.ProjectID)
return
}
// Check if the provided index is already taken
exists, err := s.Where("project_id = ? AND `index` = ?", t.ProjectID, t.Index).Exist(&Task{})
if err != nil {
return err
}
if exists {
// If the index is taken, calculate a new one
t.Index, err = calculateNextTaskIndex(s, t.ProjectID)
if err != nil {
return err
}
}
return
}
// Create is the implementation to create a project task
// @Summary Create a task
// @Description Inserts a task into a project.
@ -738,25 +761,9 @@ func createTask(s *xorm.Session, t *Task, a web.Auth, updateAssignees bool, setB
t.UID = uuid.NewString()
}
// Check if an index was provided, otherwise calculate a new one
if t.Index == 0 {
t.Index, err = getNextTaskIndex(s, t.ProjectID)
if err != nil {
return err
}
} else {
// Check if the provided index is already taken
exists, err := s.Where("project_id = ? AND `index` = ?", t.ProjectID, t.Index).Exist(&Task{})
if err != nil {
return err
}
if exists {
// If the index is taken, calculate a new one
t.Index, err = getNextTaskIndex(s, t.ProjectID)
if err != nil {
return err
}
}
err = setNewTaskIndex(s, t)
if err != nil {
return err
}
t.HexColor = utils.NormalizeHex(t.HexColor)
@ -924,7 +931,7 @@ func (t *Task) Update(s *xorm.Session, a web.Auth) (err error) {
// If the task is being moved between projects, make sure to move the bucket + index as well
if t.ProjectID != 0 && ot.ProjectID != t.ProjectID {
t.Index, err = getNextTaskIndex(s, t.ProjectID)
t.Index, err = calculateNextTaskIndex(s, t.ProjectID)
if err != nil {
return err
}