From 24cec4e7aab33b6c44ba6d1ecf16895f254351b8 Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Wed, 1 Mar 2023 18:52:44 +0100 Subject: [feature] Federate pinned posts (aka `featuredCollection`) in and out (#1560) * start fiddling * the ol' fiddle + update * start working on fetching statuses * poopy doopy doo where r u uwu * further adventures in featuring statuses * finishing up * fmt * simply status unpin loop * move empty featured check back to caller function * remove unnecessary log.WithContext calls * remove unnecessary IsIRI() checks * add explanatory comment about status URIs * change log level to error * better test names --- internal/db/bundb/admin.go | 4 ++-- internal/db/bundb/status.go | 9 ++++++++- internal/db/status.go | 4 ++-- 3 files changed, 12 insertions(+), 5 deletions(-) (limited to 'internal/db') diff --git a/internal/db/bundb/admin.go b/internal/db/bundb/admin.go index a4bc46a73..6b738261e 100644 --- a/internal/db/bundb/admin.go +++ b/internal/db/bundb/admin.go @@ -135,7 +135,7 @@ func (a *adminDB) NewSignup(ctx context.Context, username string, reason string, OutboxURI: accountURIs.OutboxURI, FollowersURI: accountURIs.FollowersURI, FollowingURI: accountURIs.FollowingURI, - FeaturedCollectionURI: accountURIs.CollectionURI, + FeaturedCollectionURI: accountURIs.FeaturedCollectionURI, } // insert the new account! @@ -237,7 +237,7 @@ func (a *adminDB) CreateInstanceAccount(ctx context.Context) db.Error { OutboxURI: newAccountURIs.OutboxURI, FollowersURI: newAccountURIs.FollowersURI, FollowingURI: newAccountURIs.FollowingURI, - FeaturedCollectionURI: newAccountURIs.CollectionURI, + FeaturedCollectionURI: newAccountURIs.FeaturedCollectionURI, } // insert the new account! diff --git a/internal/db/bundb/status.go b/internal/db/bundb/status.go index 2bec07759..8f1df2886 100644 --- a/internal/db/bundb/status.go +++ b/internal/db/bundb/status.go @@ -246,7 +246,13 @@ func (s *statusDB) PutStatus(ctx context.Context, status *gtsmodel.Status) db.Er }) } -func (s *statusDB) UpdateStatus(ctx context.Context, status *gtsmodel.Status) db.Error { +func (s *statusDB) UpdateStatus(ctx context.Context, status *gtsmodel.Status, columns ...string) db.Error { + status.UpdatedAt = time.Now() + if len(columns) > 0 { + // If we're updating by column, ensure "updated_at" is included. + columns = append(columns, "updated_at") + } + if err := s.conn.RunInTx(ctx, func(tx bun.Tx) error { // create links between this status and any emojis it uses for _, i := range status.EmojiIDs { @@ -298,6 +304,7 @@ func (s *statusDB) UpdateStatus(ctx context.Context, status *gtsmodel.Status) db _, err := tx. NewUpdate(). Model(status). + Column(columns...). Where("? = ?", bun.Ident("status.id"), status.ID). Exec(ctx) return err diff --git a/internal/db/status.go b/internal/db/status.go index 15d1362f5..94f6ff0ee 100644 --- a/internal/db/status.go +++ b/internal/db/status.go @@ -41,8 +41,8 @@ type Status interface { // PutStatus stores one status in the database. PutStatus(ctx context.Context, status *gtsmodel.Status) Error - // UpdateStatus updates one status in the database and returns it to the caller. - UpdateStatus(ctx context.Context, status *gtsmodel.Status) Error + // UpdateStatus updates one status in the database. + UpdateStatus(ctx context.Context, status *gtsmodel.Status, columns ...string) Error // DeleteStatusByID deletes one status from the database. DeleteStatusByID(ctx context.Context, id string) Error -- cgit v1.2.3