diff options
author | 2023-03-01 18:52:44 +0100 | |
---|---|---|
committer | 2023-03-01 17:52:44 +0000 | |
commit | 24cec4e7aab33b6c44ba6d1ecf16895f254351b8 (patch) | |
tree | cf0107a34e0fa00ab1b68aed4b52afe502147393 /internal/db | |
parent | [chore/performance] simplify storage driver to use storage.Storage directly (... (diff) | |
download | gotosocial-24cec4e7aab33b6c44ba6d1ecf16895f254351b8.tar.xz |
[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
Diffstat (limited to 'internal/db')
-rw-r--r-- | internal/db/bundb/admin.go | 4 | ||||
-rw-r--r-- | internal/db/bundb/status.go | 9 | ||||
-rw-r--r-- | internal/db/status.go | 4 |
3 files changed, 12 insertions, 5 deletions
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 |