diff options
author | 2022-08-06 12:09:21 +0200 | |
---|---|---|
committer | 2022-08-06 12:09:21 +0200 | |
commit | f5689a9e5fa5dbcae6c56fa9f393c2fc4686ac19 (patch) | |
tree | ad66c13bc927e72dd072f1cabace27f9c5bd31b9 /internal/validate | |
parent | [bugfix] Parse source first before checking if empty form (#738) (diff) | |
download | gotosocial-f5689a9e5fa5dbcae6c56fa9f393c2fc4686ac19.tar.xz |
[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
Diffstat (limited to 'internal/validate')
-rw-r--r-- | internal/validate/account_test.go | 1 | ||||
-rw-r--r-- | internal/validate/formvalidation.go | 14 |
2 files changed, 14 insertions, 1 deletions
diff --git a/internal/validate/account_test.go b/internal/validate/account_test.go index a023b2bcb..e0dda8e16 100644 --- a/internal/validate/account_test.go +++ b/internal/validate/account_test.go @@ -62,6 +62,7 @@ func happyAccount() *gtsmodel.Account { Privacy: gtsmodel.VisibilityPublic, Sensitive: false, Language: "en", + StatusFormat: "plain", URI: "http://localhost:8080/users/the_mighty_zork", URL: "http://localhost:8080/@the_mighty_zork", LastWebfingeredAt: time.Time{}, diff --git a/internal/validate/formvalidation.go b/internal/validate/formvalidation.go index e0c27628b..5ce80ae31 100644 --- a/internal/validate/formvalidation.go +++ b/internal/validate/formvalidation.go @@ -144,7 +144,19 @@ func Privacy(privacy string) error { case apimodel.VisibilityDirect, apimodel.VisibilityMutualsOnly, apimodel.VisibilityPrivate, apimodel.VisibilityPublic, apimodel.VisibilityUnlisted: return nil } - return fmt.Errorf("privacy %s was not recognized", privacy) + return fmt.Errorf("privacy '%s' was not recognized, valid options are 'direct', 'mutuals_only', 'private', 'public', 'unlisted'", privacy) +} + +// StatusFormat checks that the desired status format setting is valid. +func StatusFormat(statusFormat string) error { + if statusFormat == "" { + return fmt.Errorf("empty string for status format not allowed") + } + switch apimodel.StatusFormat(statusFormat) { + case apimodel.StatusFormatPlain, apimodel.StatusFormatMarkdown: + return nil + } + return fmt.Errorf("status format '%s' was not recognized, valid options are 'plain', 'markdown'", statusFormat) } // EmojiShortcode just runs the given shortcode through the regular expression |