[feature] Let accounts set default status format, and use this when processing new statuses (#739)

* add post_format to acct & use it when making post

* update swagger docs

* add status_format updating to frontend

* fix up tests

* post_format => status_format

* add status_format to account validation
This commit is contained in:
tobi
2022-08-06 12:09:21 +02:00
committed by GitHub
parent 3ab3f58342
commit f5689a9e5f
17 changed files with 259 additions and 21 deletions

View File

@@ -23,6 +23,7 @@ import (
"errors"
"fmt"
"github.com/superseriousbusiness/gotosocial/internal/api/model"
apimodel "github.com/superseriousbusiness/gotosocial/internal/api/model"
"github.com/superseriousbusiness/gotosocial/internal/db"
"github.com/superseriousbusiness/gotosocial/internal/gtserror"
@@ -269,9 +270,21 @@ func (p *processor) ProcessContent(ctx context.Context, form *apimodel.AdvancedS
return nil
}
// if format wasn't specified we should set the default
// if format wasn't specified we should try to figure out what format this user prefers
if form.Format == "" {
form.Format = apimodel.StatusFormatDefault
acct, err := p.db.GetAccountByID(ctx, accountID)
if err != nil {
return fmt.Errorf("error processing new content: couldn't retrieve account from db to check post format: %s", err)
}
switch acct.StatusFormat {
case "plain":
form.Format = model.StatusFormatPlain
case "markdown":
form.Format = model.StatusFormatMarkdown
default:
form.Format = model.StatusFormatDefault
}
}
// parse content out of the status depending on what format has been submitted