summaryrefslogtreecommitdiff
path: root/internal/api/client/statuses/statuscreate.go
diff options
context:
space:
mode:
authorLibravatar Vyr Cossont <VyrCossont@users.noreply.github.com>2023-08-07 01:25:54 -0700
committerLibravatar GitHub <noreply@github.com>2023-08-07 10:25:54 +0200
commit0f812746b7fd9dfeef41e329af5215772672689a (patch)
treeadfc0c9e4412982224d32019b8abfc2895cd3f66 /internal/api/client/statuses/statuscreate.go
parent[chore]: Bump golang.org/x/oauth2 from 0.10.0 to 0.11.0 (#2076) (diff)
downloadgotosocial-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.go10
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