summaryrefslogtreecommitdiff
path: root/internal/processing
diff options
context:
space:
mode:
authorLibravatar Vyr Cossont <VyrCossont@users.noreply.github.com>2023-03-02 03:06:40 -0800
committerLibravatar GitHub <noreply@github.com>2023-03-02 12:06:40 +0100
commite6cde25466e03ec864cd9defed96957e741b5e7c (patch)
tree2fe1db6383efc9b788de8bb3f9926627874ccd7c /internal/processing
parent[chore] move client/federator workerpools to Workers{} (#1575) (diff)
downloadgotosocial-e6cde25466e03ec864cd9defed96957e741b5e7c.tar.xz
[feature] Advertise rich text formats, support content_type field (#1370)
* Advertise rich text formats, support content_type field * Update JSON in instance patch tests * Replace format with content_type everywhere * update migration to work with both pg and sqlite * regenerate swagger docs * update instance serialization + tests * fix up * learn to code tobi please, i'm begging you --------- Co-authored-by: tsmethurst <tobi.smethurst@protonmail.com>
Diffstat (limited to 'internal/processing')
-rw-r--r--internal/processing/account/update.go8
-rw-r--r--internal/processing/account/update_test.go6
-rw-r--r--internal/processing/status/create.go26
-rw-r--r--internal/processing/status/create_test.go10
4 files changed, 25 insertions, 25 deletions
diff --git a/internal/processing/account/update.go b/internal/processing/account/update.go
index 537857cee..a96c17eeb 100644
--- a/internal/processing/account/update.go
+++ b/internal/processing/account/update.go
@@ -79,7 +79,7 @@ func (p *Processor) Update(ctx context.Context, account *gtsmodel.Account, form
// Process note to generate a valid HTML representation
var f text.FormatFunc
- if account.StatusFormat == "markdown" {
+ if account.StatusContentType == "text/markdown" {
f = p.formatter.FromMarkdown
} else {
f = p.formatter.FromPlain
@@ -144,12 +144,12 @@ func (p *Processor) Update(ctx context.Context, account *gtsmodel.Account, form
account.Privacy = privacy
}
- if form.Source.StatusFormat != nil {
- if err := validate.StatusFormat(*form.Source.StatusFormat); err != nil {
+ if form.Source.StatusContentType != nil {
+ if err := validate.StatusContentType(*form.Source.StatusContentType); err != nil {
return nil, gtserror.NewErrorBadRequest(err, err.Error())
}
- account.StatusFormat = *form.Source.StatusFormat
+ account.StatusContentType = *form.Source.StatusContentType
}
}
diff --git a/internal/processing/account/update_test.go b/internal/processing/account/update_test.go
index 8ebce7888..486848549 100644
--- a/internal/processing/account/update_test.go
+++ b/internal/processing/account/update_test.go
@@ -122,13 +122,13 @@ func (suite *AccountUpdateTestSuite) TestAccountUpdateWithMarkdownNote() {
Note: &note,
}
- // set default post language of account 1 to markdown
- testAccount.StatusFormat = "markdown"
+ // set default post content type of account 1 to markdown
+ testAccount.StatusContentType = "text/markdown"
// should get no error from the update function, and an api model account returned
apiAccount, errWithCode := suite.accountProcessor.Update(context.Background(), testAccount, form)
// reset test account to avoid breaking other tests
- testAccount.StatusFormat = "plain"
+ testAccount.StatusContentType = "text/plain"
suite.NoError(errWithCode)
suite.NotNil(apiAccount)
diff --git a/internal/processing/status/create.go b/internal/processing/status/create.go
index 4e5399469..35c36a29b 100644
--- a/internal/processing/status/create.go
+++ b/internal/processing/status/create.go
@@ -290,32 +290,32 @@ func processContent(ctx context.Context, dbService db.DB, formatter text.Formatt
return nil
}
- // if format wasn't specified we should try to figure out what format this user prefers
- if form.Format == "" {
+ // if content type wasn't specified we should try to figure out what content type this user prefers
+ if form.ContentType == "" {
acct, err := dbService.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 = apimodel.StatusFormatPlain
- case "markdown":
- form.Format = apimodel.StatusFormatMarkdown
+ switch acct.StatusContentType {
+ case "text/plain":
+ form.ContentType = apimodel.StatusContentTypePlain
+ case "text/markdown":
+ form.ContentType = apimodel.StatusContentTypeMarkdown
default:
- form.Format = apimodel.StatusFormatDefault
+ form.ContentType = apimodel.StatusContentTypeDefault
}
}
- // parse content out of the status depending on what format has been submitted
+ // parse content out of the status depending on what content type has been submitted
var f text.FormatFunc
- switch form.Format {
- case apimodel.StatusFormatPlain:
+ switch form.ContentType {
+ case apimodel.StatusContentTypePlain:
f = formatter.FromPlain
- case apimodel.StatusFormatMarkdown:
+ case apimodel.StatusContentTypeMarkdown:
f = formatter.FromMarkdown
default:
- return fmt.Errorf("format %s not recognised as a valid status format", form.Format)
+ return fmt.Errorf("format %s not recognised as a valid status format", form.ContentType)
}
formatted := f(ctx, parseMention, accountID, status.ID, form.Status)
diff --git a/internal/processing/status/create_test.go b/internal/processing/status/create_test.go
index 84adbf32f..717843ce1 100644
--- a/internal/processing/status/create_test.go
+++ b/internal/processing/status/create_test.go
@@ -50,7 +50,7 @@ func (suite *StatusCreateTestSuite) TestProcessContentWarningWithQuotationMarks(
Visibility: apimodel.VisibilityPublic,
ScheduledAt: "",
Language: "en",
- Format: apimodel.StatusFormatPlain,
+ ContentType: apimodel.StatusContentTypePlain,
},
AdvancedVisibilityFlagsForm: apimodel.AdvancedVisibilityFlagsForm{
Federated: nil,
@@ -84,7 +84,7 @@ func (suite *StatusCreateTestSuite) TestProcessContentWarningWithHTMLEscapedQuot
Visibility: apimodel.VisibilityPublic,
ScheduledAt: "",
Language: "en",
- Format: apimodel.StatusFormatPlain,
+ ContentType: apimodel.StatusContentTypePlain,
},
AdvancedVisibilityFlagsForm: apimodel.AdvancedVisibilityFlagsForm{
Federated: nil,
@@ -122,7 +122,7 @@ func (suite *StatusCreateTestSuite) TestProcessStatusMarkdownWithUnderscoreEmoji
Visibility: apimodel.VisibilityPublic,
ScheduledAt: "",
Language: "en",
- Format: apimodel.StatusFormatMarkdown,
+ ContentType: apimodel.StatusContentTypeMarkdown,
},
AdvancedVisibilityFlagsForm: apimodel.AdvancedVisibilityFlagsForm{
Federated: nil,
@@ -156,7 +156,7 @@ func (suite *StatusCreateTestSuite) TestProcessStatusMarkdownWithSpoilerTextEmoj
Visibility: apimodel.VisibilityPublic,
ScheduledAt: "",
Language: "en",
- Format: apimodel.StatusFormatMarkdown,
+ ContentType: apimodel.StatusContentTypeMarkdown,
},
AdvancedVisibilityFlagsForm: apimodel.AdvancedVisibilityFlagsForm{
Federated: nil,
@@ -194,7 +194,7 @@ func (suite *StatusCreateTestSuite) TestProcessMediaDescriptionTooShort() {
Visibility: apimodel.VisibilityPublic,
ScheduledAt: "",
Language: "en",
- Format: apimodel.StatusFormatPlain,
+ ContentType: apimodel.StatusContentTypePlain,
},
AdvancedVisibilityFlagsForm: apimodel.AdvancedVisibilityFlagsForm{
Federated: nil,