diff options
author | 2023-03-02 03:06:40 -0800 | |
---|---|---|
committer | 2023-03-02 12:06:40 +0100 | |
commit | e6cde25466e03ec864cd9defed96957e741b5e7c (patch) | |
tree | 2fe1db6383efc9b788de8bb3f9926627874ccd7c /internal/api/client | |
parent | [chore] move client/federator workerpools to Workers{} (#1575) (diff) | |
download | gotosocial-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/api/client')
-rw-r--r-- | internal/api/client/accounts/accountupdate.go | 10 | ||||
-rw-r--r-- | internal/api/client/accounts/accountupdate_test.go | 14 | ||||
-rw-r--r-- | internal/api/client/instance/instancepatch_test.go | 36 | ||||
-rw-r--r-- | internal/api/client/statuses/statuscreate_test.go | 4 |
4 files changed, 44 insertions, 20 deletions
diff --git a/internal/api/client/accounts/accountupdate.go b/internal/api/client/accounts/accountupdate.go index 3983fe8e1..b5d0dd5f9 100644 --- a/internal/api/client/accounts/accountupdate.go +++ b/internal/api/client/accounts/accountupdate.go @@ -99,9 +99,9 @@ import ( // description: Default language to use for authored statuses (ISO 6391). // type: string // - -// name: source[status_format] +// name: source[status_content_type] // in: formData -// description: Default format to use for authored statuses (plain or markdown). +// description: Default content type to use for authored statuses (text/plain or text/markdown). // type: string // - // name: custom_css @@ -190,8 +190,8 @@ func parseUpdateAccountForm(c *gin.Context) (*apimodel.UpdateCredentialsRequest, form.Source.Language = &language } - if statusFormat, ok := sourceMap["status_format"]; ok { - form.Source.StatusFormat = &statusFormat + if statusContentType, ok := sourceMap["status_content_type"]; ok { + form.Source.StatusContentType = &statusContentType } if form == nil || @@ -205,7 +205,7 @@ func parseUpdateAccountForm(c *gin.Context) (*apimodel.UpdateCredentialsRequest, form.Source.Privacy == nil && form.Source.Sensitive == nil && form.Source.Language == nil && - form.Source.StatusFormat == nil && + form.Source.StatusContentType == nil && form.FieldsAttributes == nil && form.CustomCSS == nil && form.EnableRSS == nil) { diff --git a/internal/api/client/accounts/accountupdate_test.go b/internal/api/client/accounts/accountupdate_test.go index 95387f3d7..f898e64da 100644 --- a/internal/api/client/accounts/accountupdate_test.go +++ b/internal/api/client/accounts/accountupdate_test.go @@ -414,13 +414,13 @@ func (suite *AccountUpdateTestSuite) TestAccountUpdateCredentialsPATCHHandlerUpd suite.True(apimodelAccount.Locked) } -func (suite *AccountUpdateTestSuite) TestAccountUpdateCredentialsPATCHHandlerUpdateStatusFormatOK() { +func (suite *AccountUpdateTestSuite) TestAccountUpdateCredentialsPATCHHandlerUpdateStatusContentTypeOK() { // set up the request // we're updating the language of zork requestBody, w, err := testrig.CreateMultipartFormData( "", "", map[string]string{ - "source[status_format]": "markdown", + "source[status_content_type]": "text/markdown", }) if err != nil { panic(err) @@ -450,22 +450,22 @@ func (suite *AccountUpdateTestSuite) TestAccountUpdateCredentialsPATCHHandlerUpd // check the returned api model account // fields should be updated - suite.Equal("markdown", apimodelAccount.Source.StatusFormat) + suite.Equal("text/markdown", apimodelAccount.Source.StatusContentType) dbAccount, err := suite.db.GetAccountByID(context.Background(), suite.testAccounts["local_account_1"].ID) if err != nil { suite.FailNow(err.Error()) } - suite.Equal(dbAccount.StatusFormat, "markdown") + suite.Equal(dbAccount.StatusContentType, "text/markdown") } -func (suite *AccountUpdateTestSuite) TestAccountUpdateCredentialsPATCHHandlerUpdateStatusFormatBad() { +func (suite *AccountUpdateTestSuite) TestAccountUpdateCredentialsPATCHHandlerUpdateStatusContentTypeBad() { // set up the request // we're updating the language of zork requestBody, w, err := testrig.CreateMultipartFormData( "", "", map[string]string{ - "source[status_format]": "peepeepoopoo", + "source[status_content_type]": "peepeepoopoo", }) if err != nil { panic(err) @@ -486,7 +486,7 @@ func (suite *AccountUpdateTestSuite) TestAccountUpdateCredentialsPATCHHandlerUpd b, err := ioutil.ReadAll(result.Body) suite.NoError(err) - suite.Equal(`{"error":"Bad Request: status format 'peepeepoopoo' was not recognized, valid options are 'plain', 'markdown'"}`, string(b)) + suite.Equal(`{"error":"Bad Request: status content type 'peepeepoopoo' was not recognized, valid options are 'text/plain', 'text/markdown'"}`, string(b)) } func TestAccountUpdateTestSuite(t *testing.T) { diff --git a/internal/api/client/instance/instancepatch_test.go b/internal/api/client/instance/instancepatch_test.go index 0a508083c..6fb9b0d03 100644 --- a/internal/api/client/instance/instancepatch_test.go +++ b/internal/api/client/instance/instancepatch_test.go @@ -90,7 +90,11 @@ func (suite *InstancePatchTestSuite) TestInstancePatch1() { "statuses": { "max_characters": 5000, "max_media_attachments": 6, - "characters_reserved_per_url": 25 + "characters_reserved_per_url": 25, + "supported_mime_types": [ + "text/plain", + "text/markdown" + ] }, "media_attachments": { "supported_mime_types": [ @@ -188,7 +192,11 @@ func (suite *InstancePatchTestSuite) TestInstancePatch2() { "statuses": { "max_characters": 5000, "max_media_attachments": 6, - "characters_reserved_per_url": 25 + "characters_reserved_per_url": 25, + "supported_mime_types": [ + "text/plain", + "text/markdown" + ] }, "media_attachments": { "supported_mime_types": [ @@ -286,7 +294,11 @@ func (suite *InstancePatchTestSuite) TestInstancePatch3() { "statuses": { "max_characters": 5000, "max_media_attachments": 6, - "characters_reserved_per_url": 25 + "characters_reserved_per_url": 25, + "supported_mime_types": [ + "text/plain", + "text/markdown" + ] }, "media_attachments": { "supported_mime_types": [ @@ -435,7 +447,11 @@ func (suite *InstancePatchTestSuite) TestInstancePatch6() { "statuses": { "max_characters": 5000, "max_media_attachments": 6, - "characters_reserved_per_url": 25 + "characters_reserved_per_url": 25, + "supported_mime_types": [ + "text/plain", + "text/markdown" + ] }, "media_attachments": { "supported_mime_types": [ @@ -554,7 +570,11 @@ func (suite *InstancePatchTestSuite) TestInstancePatch8() { "statuses": { "max_characters": 5000, "max_media_attachments": 6, - "characters_reserved_per_url": 25 + "characters_reserved_per_url": 25, + "supported_mime_types": [ + "text/plain", + "text/markdown" + ] }, "media_attachments": { "supported_mime_types": [ @@ -689,7 +709,11 @@ func (suite *InstancePatchTestSuite) TestInstancePatch9() { "statuses": { "max_characters": 5000, "max_media_attachments": 6, - "characters_reserved_per_url": 25 + "characters_reserved_per_url": 25, + "supported_mime_types": [ + "text/plain", + "text/markdown" + ] }, "media_attachments": { "supported_mime_types": [ diff --git a/internal/api/client/statuses/statuscreate_test.go b/internal/api/client/statuses/statuscreate_test.go index 6802558ec..3c2120105 100644 --- a/internal/api/client/statuses/statuscreate_test.go +++ b/internal/api/client/statuses/statuscreate_test.go @@ -105,14 +105,14 @@ func (suite *StatusCreateTestSuite) TestPostNewStatus() { func (suite *StatusCreateTestSuite) TestPostNewStatusMarkdown() { // set default post language of account 1 to markdown testAccount := suite.testAccounts["local_account_1"] - testAccount.StatusFormat = "markdown" + testAccount.StatusContentType = "text/markdown" a := testAccount err := suite.db.UpdateAccount(context.Background(), a) if err != nil { suite.FailNow(err.Error()) } - suite.Equal(a.StatusFormat, "markdown") + suite.Equal(a.StatusContentType, "text/markdown") t := suite.testTokens["local_account_1"] oauthToken := oauth.DBTokenToToken(t) |