feat(tasks): remove deleted tasks from Typesense
This commit is contained in:
parent
1a82d6da44
commit
09cfe41e4f
@ -17,7 +17,9 @@
|
|||||||
package models
|
package models
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"code.vikunja.io/api/pkg/config"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"strconv"
|
||||||
|
|
||||||
"code.vikunja.io/api/pkg/db"
|
"code.vikunja.io/api/pkg/db"
|
||||||
"code.vikunja.io/api/pkg/events"
|
"code.vikunja.io/api/pkg/events"
|
||||||
@ -58,6 +60,9 @@ func RegisterListeners() {
|
|||||||
events.RegisterListener((&TaskAttachmentDeletedEvent{}).Name(), &HandleTaskUpdateLastUpdated{})
|
events.RegisterListener((&TaskAttachmentDeletedEvent{}).Name(), &HandleTaskUpdateLastUpdated{})
|
||||||
events.RegisterListener((&TaskRelationCreatedEvent{}).Name(), &HandleTaskUpdateLastUpdated{})
|
events.RegisterListener((&TaskRelationCreatedEvent{}).Name(), &HandleTaskUpdateLastUpdated{})
|
||||||
events.RegisterListener((&TaskRelationDeletedEvent{}).Name(), &HandleTaskUpdateLastUpdated{})
|
events.RegisterListener((&TaskRelationDeletedEvent{}).Name(), &HandleTaskUpdateLastUpdated{})
|
||||||
|
if config.TypesenseEnabled.GetBool() {
|
||||||
|
events.RegisterListener((&TaskDeletedEvent{}).Name(), &RemoveTaskFromTypesense{})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//////
|
//////
|
||||||
@ -474,6 +479,32 @@ func (s *HandleTaskUpdateLastUpdated) Handle(msg *message.Message) (err error) {
|
|||||||
return updateTaskLastUpdated(sess, &Task{ID: taskIDInt})
|
return updateTaskLastUpdated(sess, &Task{ID: taskIDInt})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// RemoveTaskFromTypesense represents a listener
|
||||||
|
type RemoveTaskFromTypesense struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
// Name defines the name for the RemoveTaskFromTypesense listener
|
||||||
|
func (s *RemoveTaskFromTypesense) Name() string {
|
||||||
|
return "remove.task.from.typesense"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle is executed when the event RemoveTaskFromTypesense listens on is fired
|
||||||
|
func (s *RemoveTaskFromTypesense) Handle(msg *message.Message) (err error) {
|
||||||
|
event := &TaskDeletedEvent{}
|
||||||
|
err = json.Unmarshal(msg.Payload, event)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
log.Debugf("[Typesense Sync] Removing task %d from Typesense", event.Task.ID)
|
||||||
|
|
||||||
|
_, err = typesenseClient.
|
||||||
|
Collection("tasks").
|
||||||
|
Document(strconv.FormatInt(event.Task.ID, 10)).
|
||||||
|
Delete()
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
///////
|
///////
|
||||||
// Project Event Listeners
|
// Project Event Listeners
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user