[bugfix] Missing emoji urls (#3707)

* filter out emoji that are uncached when converting to frontend models

* some very small fixups

* remove TODO notice
This commit is contained in:
kim
2025-01-30 12:52:03 +00:00
committed by GitHub
parent 1ab960bf15
commit 91cef3495d
4 changed files with 32 additions and 11 deletions

View File

@ -2641,28 +2641,36 @@ func (c *Converter) FilterStatusToAPIFilterStatus(ctx context.Context, filterSta
func (c *Converter) convertEmojisToAPIEmojis(ctx context.Context, emojis []*gtsmodel.Emoji, emojiIDs []string) ([]apimodel.Emoji, error) {
var errs gtserror.MultiError
// GTS model attachments were not populated
if len(emojis) == 0 && len(emojiIDs) > 0 {
// GTS model attachments were not populated
var err error
// Fetch GTS models for emoji IDs
emojis, err = c.state.DB.GetEmojisByIDs(ctx, emojiIDs)
if err != nil {
errs.Appendf("error fetching emojis from database: %w", err)
return nil, gtserror.Newf("db error fetching emojis: %w", err)
}
}
// Preallocate expected frontend slice
// Preallocate expected frontend slice of emojis.
apiEmojis := make([]apimodel.Emoji, 0, len(emojis))
// Convert GTS models to frontend models
for _, emoji := range emojis {
// Skip adding emojis that are
// uncached, the empty URLs can
// cause issues with some clients.
if !*emoji.Cached {
continue
}
// Convert each to a frontend API model emoji.
apiEmoji, err := c.EmojiToAPIEmoji(ctx, emoji)
if err != nil {
errs.Appendf("error converting emoji %s to api emoji: %w", emoji.ID, err)
continue
}
// Append converted emoji to return slice.
apiEmojis = append(apiEmojis, apiEmoji)
}