update semantics of when media URL is left unset

This commit is contained in:
kim 2025-04-14 12:23:16 +01:00
commit 547020084d

View file

@ -92,9 +92,10 @@ import (
// '500': // '500':
// description: internal server error // description: internal server error
func (m *Module) MediaCreatePOSTHandler(c *gin.Context) { func (m *Module) MediaCreatePOSTHandler(c *gin.Context) {
apiVersion, errWithCode := apiutil.ParseAPIVersion( _, errWithCode := apiutil.ParseAPIVersion(
c.Param(apiutil.APIVersionKey), c.Param(apiutil.APIVersionKey),
[]string{apiutil.APIv1, apiutil.APIv2}..., apiutil.APIv1,
apiutil.APIv2,
) )
if errWithCode != nil { if errWithCode != nil {
apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1) apiutil.ErrorHandler(c, errWithCode, m.processor.InstanceGetV1)
@ -137,14 +138,13 @@ func (m *Module) MediaCreatePOSTHandler(c *gin.Context) {
return return
} }
if apiVersion == apiutil.APIv2 { // The v2 mastodon endpoint always returns TextURL,
// the mastodon v2 media API specifies that the URL should be null // but in the case that a 202 Accepted (i.e. processing
// and that the client should call /api/v1/media/:id to get the URL // still in progress) is returned then the URL will be
// // nil. Since we only ever return a 200 OK, we behave
// so even though we have the URL already, remove it now to comply // exactly the same as the v1 endpoint.
// with the api //
apiAttachment.URL = nil // https://docs.joinmastodon.org/methods/media/#v2
}
apiutil.JSON(c, http.StatusOK, apiAttachment) apiutil.JSON(c, http.StatusOK, apiAttachment)
} }