tests are passing, but there's still much to be done

This commit is contained in:
tsmethurst
2022-01-09 18:41:22 +01:00
parent f61c3ddcf7
commit dccf21dd87
18 changed files with 259 additions and 170 deletions

View File

@@ -33,6 +33,7 @@ import (
apimodel "github.com/superseriousbusiness/gotosocial/internal/api/model"
"github.com/superseriousbusiness/gotosocial/internal/config"
"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
"github.com/superseriousbusiness/gotosocial/internal/media"
"github.com/superseriousbusiness/gotosocial/internal/messages"
"github.com/superseriousbusiness/gotosocial/internal/text"
"github.com/superseriousbusiness/gotosocial/internal/util"
@@ -163,16 +164,15 @@ func (p *processor) UpdateAvatar(ctx context.Context, avatar *multipart.FileHead
}
// do the setting
media, err := p.mediaManager.ProcessMedia(ctx, buf.Bytes(), accountID, "")
isAvatar := true
processingMedia, err := p.mediaManager.ProcessMedia(ctx, buf.Bytes(), accountID, &media.AdditionalInfo{
Avatar: &isAvatar,
})
if err != nil {
return nil, fmt.Errorf("UpdateAvatar: error processing avatar: %s", err)
}
if err := media.SetAsAvatar(ctx); err != nil {
return nil, fmt.Errorf("UpdateAvatar: error setting media as avatar: %s", err)
}
return media.LoadAttachment(ctx)
return processingMedia.LoadAttachment(ctx)
}
// UpdateHeader does the dirty work of checking the header part of an account update form,
@@ -206,16 +206,15 @@ func (p *processor) UpdateHeader(ctx context.Context, header *multipart.FileHead
}
// do the setting
media, err := p.mediaManager.ProcessMedia(ctx, buf.Bytes(), accountID, "")
isHeader := true
processingMedia, err := p.mediaManager.ProcessMedia(ctx, buf.Bytes(), accountID, &media.AdditionalInfo{
Header: &isHeader,
})
if err != nil {
return nil, fmt.Errorf("UpdateHeader: error processing header: %s", err)
}
if err := media.SetAsHeader(ctx); err != nil {
return nil, fmt.Errorf("UpdateHeader: error setting media as header: %s", err)
}
return media.LoadAttachment(ctx)
return processingMedia.LoadAttachment(ctx)
}
func (p *processor) processNote(ctx context.Context, note string, accountID string) (string, error) {

View File

@@ -48,7 +48,7 @@ func (p *processor) EmojiCreate(ctx context.Context, account *gtsmodel.Account,
return nil, errors.New("could not read provided emoji: size 0 bytes")
}
media, err := p.mediaManager.ProcessEmoji(ctx, buf.Bytes(), account.ID, "")
media, err := p.mediaManager.ProcessEmoji(ctx, buf.Bytes(), account.ID)
if err != nil {
return nil, err
}

View File

@@ -27,6 +27,7 @@ import (
apimodel "github.com/superseriousbusiness/gotosocial/internal/api/model"
"github.com/superseriousbusiness/gotosocial/internal/gtsmodel"
"github.com/superseriousbusiness/gotosocial/internal/media"
)
func (p *processor) Create(ctx context.Context, account *gtsmodel.Account, form *apimodel.AttachmentRequest) (*apimodel.Attachment, error) {
@@ -44,8 +45,17 @@ func (p *processor) Create(ctx context.Context, account *gtsmodel.Account, form
return nil, errors.New("could not read provided attachment: size 0 bytes")
}
focusX, focusY, err := parseFocus(form.Focus)
if err != nil {
return nil, fmt.Errorf("could not parse focus value %s: %s", form.Focus, err)
}
// process the media attachment and load it immediately
media, err := p.mediaManager.ProcessMedia(ctx, buf.Bytes(), account.ID, "")
media, err := p.mediaManager.ProcessMedia(ctx, buf.Bytes(), account.ID, &media.AdditionalInfo{
Description: &form.Description,
FocusX: &focusX,
FocusY: &focusY,
})
if err != nil {
return nil, err
}