summaryrefslogtreecommitdiff
path: root/internal/db/bundb
diff options
context:
space:
mode:
authorLibravatar kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>2024-12-23 17:54:44 +0000
committerLibravatar GitHub <noreply@github.com>2024-12-23 17:54:44 +0000
commitfe8d5f23072c40a407723904eb5c54234879d58a (patch)
treedf80063f3238997de7144932d2d713321164ac1b /internal/db/bundb
parent[chore] Stub /api/v1/announcements implementation (#3630) (diff)
downloadgotosocial-fe8d5f23072c40a407723904eb5c54234879d58a.tar.xz
[feature] add support for clients editing statuses and fetching status revision history (#3628)
* start adding client support for making status edits and viewing history * modify 'freshest' freshness window to be 5s, add typeutils test for status -> api edits * only populate the status edits when specifically requested * start adding some simple processor status edit tests * add test editing status but adding a poll * test edits appropriately adding poll expiry handlers * finish adding status edit tests * store both new and old revision emojis in status * add code comment * ensure the requester's account is populated before status edits * add code comments for status edit tests * update status edit form swagger comments * remove unused function * fix status source test * add more code comments, move media description check back to media process in status create * fix tests, add necessary form struct tag
Diffstat (limited to 'internal/db/bundb')
-rw-r--r--internal/db/bundb/status.go28
1 files changed, 17 insertions, 11 deletions
diff --git a/internal/db/bundb/status.go b/internal/db/bundb/status.go
index fa31f3459..fea5594dd 100644
--- a/internal/db/bundb/status.go
+++ b/internal/db/bundb/status.go
@@ -297,17 +297,6 @@ func (s *statusDB) PopulateStatus(ctx context.Context, status *gtsmodel.Status)
}
}
- if !status.EditsPopulated() {
- // Status edits are out-of-date with IDs, repopulate.
- status.Edits, err = s.state.DB.GetStatusEditsByIDs(
- gtscontext.SetBarebones(ctx),
- status.EditIDs,
- )
- if err != nil {
- errs.Appendf("error populating status edits: %w", err)
- }
- }
-
if status.CreatedWithApplicationID != "" && status.CreatedWithApplication == nil {
// Populate the status' expected CreatedWithApplication (not always set).
status.CreatedWithApplication, err = s.state.DB.GetApplicationByID(
@@ -322,6 +311,23 @@ func (s *statusDB) PopulateStatus(ctx context.Context, status *gtsmodel.Status)
return errs.Combine()
}
+func (s *statusDB) PopulateStatusEdits(ctx context.Context, status *gtsmodel.Status) error {
+ var err error
+
+ if !status.EditsPopulated() {
+ // Status edits are out-of-date with IDs, repopulate.
+ status.Edits, err = s.state.DB.GetStatusEditsByIDs(
+ gtscontext.SetBarebones(ctx),
+ status.EditIDs,
+ )
+ if err != nil {
+ return gtserror.Newf("error populating status edits: %w", err)
+ }
+ }
+
+ return nil
+}
+
func (s *statusDB) PutStatus(ctx context.Context, status *gtsmodel.Status) error {
return s.state.Caches.DB.Status.Store(status, func() error {
// It is safe to run this database transaction within cache.Store