* initial commit * update api docs * adds search token versioning * make id filterable * isLocal -> is_local * add iri to actor index * update gitignore * Merge remote-tracking branch 'origin/main' into feat-add-actors-to-meilisearch * fix sharing for newly discovered actors * fix ActorSearchResult type --------- Co-authored-by: Christian Beutel <>
49 lines
1.1 KiB
Go
49 lines
1.1 KiB
Go
package hooks
|
|
|
|
import (
|
|
"log"
|
|
"pocketbase/util"
|
|
"time"
|
|
|
|
"github.com/meilisearch/meilisearch-go"
|
|
"github.com/pocketbase/pocketbase/core"
|
|
)
|
|
|
|
func CreateActorHandler(client meilisearch.ServiceManager) func(e *core.RecordEvent) error {
|
|
return func(e *core.RecordEvent) error {
|
|
err := e.Next()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return util.IndexActors([]*core.Record{e.Record}, client)
|
|
}
|
|
}
|
|
|
|
func UpdateActorHandler(client meilisearch.ServiceManager) func(e *core.RecordEvent) error {
|
|
return func(e *core.RecordEvent) error {
|
|
err := e.Next()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
return util.UpdateActor(e.Record, client)
|
|
}
|
|
}
|
|
|
|
func DeleteActorHandler(client meilisearch.ServiceManager) func(e *core.RecordEvent) error {
|
|
return func(e *core.RecordEvent) error {
|
|
task, err := client.Index("actors").DeleteDocument(e.Record.Id, nil)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
interval := 500 * time.Millisecond
|
|
_, err = client.WaitForTask(task.TaskUID, interval)
|
|
if err != nil {
|
|
log.Fatalf("Error waiting for task completion: %v", err)
|
|
}
|
|
return e.Next()
|
|
}
|
|
}
|