fix: update task in typesense when adding a label or assignee to them
continuous-integration/drone/push Build is failing Details

Resolves https://community.vikunja.io/t/typesense-only-works-if-i-re-index/2212
This commit is contained in:
kolaente 2024-04-06 14:04:04 +02:00
parent 037022e857
commit 521300613f
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
2 changed files with 24 additions and 2 deletions

View File

@ -17,6 +17,7 @@
package models
import (
"code.vikunja.io/api/pkg/events"
"strconv"
"strings"
"time"
@ -46,7 +47,7 @@ type LabelTask struct {
}
// TableName makes a pretty table name
func (LabelTask) TableName() string {
func (*LabelTask) TableName() string {
return "label_tasks"
}
@ -84,7 +85,7 @@ func (lt *LabelTask) Delete(s *xorm.Session, _ web.Auth) (err error) {
// @Failure 404 {object} web.HTTPError "The label does not exist."
// @Failure 500 {object} models.Message "Internal error"
// @Router /tasks/{task}/labels [put]
func (lt *LabelTask) Create(s *xorm.Session, _ web.Auth) (err error) {
func (lt *LabelTask) Create(s *xorm.Session, auth web.Auth) (err error) {
// Check if the label is already added
exists, err := s.Exist(&LabelTask{LabelID: lt.LabelID, TaskID: lt.TaskID})
if err != nil {
@ -100,6 +101,20 @@ func (lt *LabelTask) Create(s *xorm.Session, _ web.Auth) (err error) {
return err
}
t, err := GetTaskByIDSimple(s, lt.TaskID)
if err != nil {
return err
}
doer, _ := user.GetFromAuth(auth)
err = events.Dispatch(&TaskUpdatedEvent{
Task: &t,
Doer: doer,
})
if err != nil {
return err
}
err = updateProjectByTaskID(s, lt.TaskID)
return
}

View File

@ -280,6 +280,13 @@ func (t *Task) addNewAssigneeByID(s *xorm.Session, newAssigneeID int64, project
if err != nil {
return err
}
err = events.Dispatch(&TaskUpdatedEvent{
Task: t,
Doer: doer,
})
if err != nil {
return err
}
err = updateProjectLastUpdated(s, &Project{ID: t.ProjectID})
return