Files
wanderer/db/migrations/1752239359_create_initial_feed.go
Christian Beutel 237d12bfec adds feed
2025-07-11 16:02:18 +02:00

101 lines
2.2 KiB
Go

package migrations
import (
"pocketbase/util"
"github.com/pocketbase/dbx"
"github.com/pocketbase/pocketbase/core"
m "github.com/pocketbase/pocketbase/migrations"
)
func init() {
m.Register(func(app core.App) error {
trails, err := app.FindAllRecords("trails")
if err != nil {
return err
}
for _, t := range trails {
trailAuthor, err := app.FindRecordById("activitypub_actors", t.GetString("author"))
if err != nil {
return err
}
feed, err := util.InsertIntoFeed(app, trailAuthor.Id, trailAuthor.Id, t.Id, util.TrailFeed)
if err != nil {
return err
}
feed.SetRaw("created", t.GetDateTime("created"))
err = app.Save(feed)
if err != nil {
return err
}
followers, err := app.FindRecordsByFilter("follows", "followee={:author}", "", -1, 0, dbx.Params{"author": trailAuthor.Id})
if err != nil {
return err
}
for _, f := range followers {
feed, err = util.InsertIntoFeed(app, f.GetString("follower"), trailAuthor.Id, t.Id, util.TrailFeed)
if err != nil {
return err
}
feed.SetRaw("created", t.GetDateTime("created"))
err = app.Save(feed)
if err != nil {
return err
}
}
}
lists, err := app.FindAllRecords("lists")
if err != nil {
return err
}
for _, t := range lists {
listAuthor, err := app.FindRecordById("activitypub_actors", t.GetString("author"))
if err != nil {
return err
}
feed, err := util.InsertIntoFeed(app, listAuthor.Id, listAuthor.Id, t.Id, util.ListFeed)
if err != nil {
return err
}
feed.SetRaw("created", t.GetDateTime("created"))
err = app.Save(feed)
if err != nil {
return err
}
followers, err := app.FindRecordsByFilter("follows", "followee={:author}", "", -1, 0, dbx.Params{"author": listAuthor.Id})
if err != nil {
return err
}
for _, f := range followers {
feed, err = util.InsertIntoFeed(app, f.GetString("follower"), listAuthor.Id, t.Id, util.ListFeed)
if err != nil {
return err
}
feed.SetRaw("created", t.GetDateTime("created"))
err = app.Save(feed)
if err != nil {
return err
}
}
}
return nil
}, func(app core.App) error {
_, err := app.DB().
NewQuery("DELETE FROM feed;").
Execute()
return err
})
}