diff options
author | 2024-11-05 13:29:51 +0100 | |
---|---|---|
committer | 2024-11-05 13:29:51 +0100 | |
commit | e953d80dff4298bccb4bc96e80e2a0e5831936f5 (patch) | |
tree | 4ba7e950c58d105fc04ff2b7b53753475cf06413 /internal/api/client/statuses/statuscreate.go | |
parent | previously we were using the ffmpeg runner for ffprobe :facepalm: (#3512) (diff) | |
download | gotosocial-e953d80dff4298bccb4bc96e80e2a0e5831936f5.tar.xz |
[bugfix] Fix setting immediate `expires_at` value on filter endpoints (#3513)v0.17.2
* [bugfix] Fix setting immediate `expires_at` value on filter endpoints
* update wording
* update wording
* oh my
Diffstat (limited to 'internal/api/client/statuses/statuscreate.go')
-rw-r--r-- | internal/api/client/statuses/statuscreate.go | 33 |
1 files changed, 13 insertions, 20 deletions
diff --git a/internal/api/client/statuses/statuscreate.go b/internal/api/client/statuses/statuscreate.go index 48d11f363..8198d5358 100644 --- a/internal/api/client/statuses/statuscreate.go +++ b/internal/api/client/statuses/statuscreate.go @@ -21,7 +21,6 @@ import ( "errors" "fmt" "net/http" - "strconv" "github.com/gin-gonic/gin" "github.com/gin-gonic/gin/binding" @@ -474,25 +473,19 @@ func validateStatusPoll(form *apimodel.StatusCreateRequest) gtserror.WithCode { } // Normalize poll expiry if necessary. - // If we parsed this as JSON, expires_in - // may be either a float64 or a string. - if ei := form.Poll.ExpiresInI; ei != nil { - switch e := ei.(type) { - case float64: - form.Poll.ExpiresIn = int(e) - - case string: - expiresIn, err := strconv.Atoi(e) - if err != nil { - text := fmt.Sprintf("could not parse expires_in value %s as integer: %v", e, err) - return gtserror.NewErrorBadRequest(errors.New(text), text) - } - - form.Poll.ExpiresIn = expiresIn - - default: - text := fmt.Sprintf("could not parse expires_in type %T as integer", ei) - return gtserror.NewErrorBadRequest(errors.New(text), text) + if form.Poll.ExpiresInI != nil { + // If we parsed this as JSON, expires_in + // may be either a float64 or a string. + expiresIn, err := apiutil.ParseDuration( + form.Poll.ExpiresInI, + "expires_in", + ) + if err != nil { + return gtserror.NewErrorBadRequest(err, err.Error()) + } + + if expiresIn != nil { + form.Poll.ExpiresIn = *expiresIn } } |