diff options
author | 2023-08-07 01:25:54 -0700 | |
---|---|---|
committer | 2023-08-07 10:25:54 +0200 | |
commit | 0f812746b7fd9dfeef41e329af5215772672689a (patch) | |
tree | adfc0c9e4412982224d32019b8abfc2895cd3f66 /internal/api/client/statuses/statuscreate.go | |
parent | [chore]: Bump golang.org/x/oauth2 from 0.10.0 to 0.11.0 (#2076) (diff) | |
download | gotosocial-0f812746b7fd9dfeef41e329af5215772672689a.tar.xz |
[feature] Allow full BCP 47 in language inputs (#2067)
* Allow full BCP 47 in language inputs
Fixes #2066
* Fuse validation and normalization for languages
* Remove outdated comment line
* Move post language canonicalization test
Diffstat (limited to 'internal/api/client/statuses/statuscreate.go')
-rw-r--r-- | internal/api/client/statuses/statuscreate.go | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/internal/api/client/statuses/statuscreate.go b/internal/api/client/statuses/statuscreate.go index e4d8588c7..e8378f461 100644 --- a/internal/api/client/statuses/statuscreate.go +++ b/internal/api/client/statuses/statuscreate.go @@ -98,7 +98,7 @@ func (m *Module) StatusCreatePOSTHandler(c *gin.Context) { // } // form.Status += "\n\nsent from " + user + "'s iphone\n" - if err := validateCreateStatus(form); err != nil { + if err := validateNormalizeCreateStatus(form); err != nil { apiutil.ErrorHandler(c, gtserror.NewErrorBadRequest(err, err.Error()), m.processor.InstanceGetV1) return } @@ -112,7 +112,9 @@ func (m *Module) StatusCreatePOSTHandler(c *gin.Context) { c.JSON(http.StatusOK, apiStatus) } -func validateCreateStatus(form *apimodel.AdvancedStatusCreateForm) error { +// validateNormalizeCreateStatus checks the form for disallowed combinations of attachments and overlength inputs. +// Side effect: normalizes the post's language tag. +func validateNormalizeCreateStatus(form *apimodel.AdvancedStatusCreateForm) error { hasStatus := form.Status != "" hasMedia := len(form.MediaIDs) != 0 hasPoll := form.Poll != nil @@ -162,9 +164,11 @@ func validateCreateStatus(form *apimodel.AdvancedStatusCreateForm) error { } if form.Language != "" { - if err := validate.Language(form.Language); err != nil { + language, err := validate.Language(form.Language) + if err != nil { return err } + form.Language = language } return nil |