summaryrefslogtreecommitdiff
path: root/internal/processing/status/util.go
diff options
context:
space:
mode:
authorLibravatar tobi <31960611+tsmethurst@users.noreply.github.com>2022-10-08 13:50:48 +0200
committerLibravatar GitHub <noreply@github.com>2022-10-08 13:50:48 +0200
commitaa07750bdb4dacdb1be39d765114915bba3fc29f (patch)
tree30e9e5052f607f8c8e4f7d518559df8706275e0f /internal/processing/status/util.go
parent[performance] cache domains after max retries in transport (#884) (diff)
downloadgotosocial-aa07750bdb4dacdb1be39d765114915bba3fc29f.tar.xz
[chore] Standardize database queries, use `bun.Ident()` properly (#886)
* use bun.Ident for user queries * use bun.Ident for account queries * use bun.Ident for media queries * add DeleteAccount func * remove CaseInsensitive in Where+use Ident ipv Safe * update admin db * update domain, use ident * update emoji, use ident * update instance queries, use bun.Ident * fix media * update mentions, use bun ident * update relationship + tests * use tableexpr * add test follows to bun db test suite * update notifications * updatebyprimarykey => updatebyid * fix session * prefer explicit ID to pk * fix little fucky wucky * remove workaround * use proper db func for attachment selection * update status db * add m2m entries in test rig * fix up timeline * go fmt * fix status put issue * update GetAccountStatuses
Diffstat (limited to 'internal/processing/status/util.go')
-rw-r--r--internal/processing/status/util.go33
1 files changed, 17 insertions, 16 deletions
diff --git a/internal/processing/status/util.go b/internal/processing/status/util.go
index 7617894cc..c8b30e2ca 100644
--- a/internal/processing/status/util.go
+++ b/internal/processing/status/util.go
@@ -162,27 +162,28 @@ func (p *processor) ProcessMediaIDs(ctx context.Context, form *apimodel.Advanced
return nil
}
- gtsMediaAttachments := []*gtsmodel.MediaAttachment{}
- attachments := []string{}
+ attachments := []*gtsmodel.MediaAttachment{}
+ attachmentIDs := []string{}
for _, mediaID := range form.MediaIDs {
- // check these attachments exist
- a := &gtsmodel.MediaAttachment{}
- if err := p.db.GetByID(ctx, mediaID, a); err != nil {
- return fmt.Errorf("invalid media type or media not found for media id %s", mediaID)
+ attachment, err := p.db.GetAttachmentByID(ctx, mediaID)
+ if err != nil {
+ return fmt.Errorf("ProcessMediaIDs: invalid media type or media not found for media id %s", mediaID)
}
- // check they belong to the requesting account id
- if a.AccountID != thisAccountID {
- return fmt.Errorf("media with id %s does not belong to account %s", mediaID, thisAccountID)
+
+ if attachment.AccountID != thisAccountID {
+ return fmt.Errorf("ProcessMediaIDs: media with id %s does not belong to account %s", mediaID, thisAccountID)
}
- // check they're not already used in a status
- if a.StatusID != "" || a.ScheduledStatusID != "" {
- return fmt.Errorf("media with id %s is already attached to a status", mediaID)
+
+ if attachment.StatusID != "" || attachment.ScheduledStatusID != "" {
+ return fmt.Errorf("ProcessMediaIDs: media with id %s is already attached to a status", mediaID)
}
- gtsMediaAttachments = append(gtsMediaAttachments, a)
- attachments = append(attachments, a.ID)
+
+ attachments = append(attachments, attachment)
+ attachmentIDs = append(attachmentIDs, attachment.ID)
}
- status.Attachments = gtsMediaAttachments
- status.AttachmentIDs = attachments
+
+ status.Attachments = attachments
+ status.AttachmentIDs = attachmentIDs
return nil
}