diff options
| author | 2025-11-11 19:39:09 +0100 | |
|---|---|---|
| committer | 2025-11-17 14:15:04 +0100 | |
| commit | 0c7b069c4a09f01a3a6c59bd7b66f096f8dcec40 (patch) | |
| tree | e5306d5ebad1e5a6efe5393bfafde95f5b94b237 /internal/api/client/instance | |
| parent | [performance] remove hard reliance on .Cached field to indicate whether media... (diff) | |
| download | gotosocial-0c7b069c4a09f01a3a6c59bd7b66f096f8dcec40.tar.xz | |
[chore] Apply schema for OpenAPI errors (#4511)
Adds an error struct to Swagger covering normal and OAuth errors for client API endpoints. Now clients using Swagger codegen can handle errors.
Specifically, if you _don't_ have typed errors in your Swagger IDL and you're using `go-swagger` to generate your API client, the error message is discarded and you are only told the status code. With this change in place, clients like `slurp` can tell the user that they tried to upload an emoji that was too big or whatever.
Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4511
Reviewed-by: tobi <kipvandenbos@noreply.codeberg.org>
Co-authored-by: Vyr Cossont <vyr@noreply.codeberg.org>
Co-committed-by: Vyr Cossont <vyr@noreply.codeberg.org>
Diffstat (limited to 'internal/api/client/instance')
| -rw-r--r-- | internal/api/client/instance/domainperms.go | 24 | ||||
| -rw-r--r-- | internal/api/client/instance/instanceget.go | 8 | ||||
| -rw-r--r-- | internal/api/client/instance/instancepatch.go | 12 | ||||
| -rw-r--r-- | internal/api/client/instance/instancepeersget.go | 12 | ||||
| -rw-r--r-- | internal/api/client/instance/instancerulesget.go | 8 |
5 files changed, 64 insertions, 0 deletions
diff --git a/internal/api/client/instance/domainperms.go b/internal/api/client/instance/domainperms.go index 6503388a5..1076c4d4a 100644 --- a/internal/api/client/instance/domainperms.go +++ b/internal/api/client/instance/domainperms.go @@ -51,16 +51,28 @@ import ( // items: // "$ref": "#/definitions/domain" // '400': +// schema: +// "$ref": "#/definitions/error" // description: bad request // '401': +// schema: +// "$ref": "#/definitions/error" // description: unauthorized // '403': +// schema: +// "$ref": "#/definitions/error" // description: forbidden // '404': +// schema: +// "$ref": "#/definitions/error" // description: not found // '406': +// schema: +// "$ref": "#/definitions/error" // description: not acceptable // '500': +// schema: +// "$ref": "#/definitions/error" // description: internal server error func (m *Module) InstanceDomainBlocksGETHandler(c *gin.Context) { authed, errWithCode := apiutil.TokenAuth(c, @@ -123,16 +135,28 @@ func (m *Module) InstanceDomainBlocksGETHandler(c *gin.Context) { // items: // "$ref": "#/definitions/domain" // '400': +// schema: +// "$ref": "#/definitions/error" // description: bad request // '401': +// schema: +// "$ref": "#/definitions/error" // description: unauthorized // '403': +// schema: +// "$ref": "#/definitions/error" // description: forbidden // '404': +// schema: +// "$ref": "#/definitions/error" // description: not found // '406': +// schema: +// "$ref": "#/definitions/error" // description: not acceptable // '500': +// schema: +// "$ref": "#/definitions/error" // description: internal server error func (m *Module) InstanceDomainAllowsGETHandler(c *gin.Context) { authed, errWithCode := apiutil.TokenAuth(c, diff --git a/internal/api/client/instance/instanceget.go b/internal/api/client/instance/instanceget.go index 4740fe1e8..38138cae2 100644 --- a/internal/api/client/instance/instanceget.go +++ b/internal/api/client/instance/instanceget.go @@ -45,8 +45,12 @@ import ( // schema: // "$ref": "#/definitions/instanceV1" // '406': +// schema: +// "$ref": "#/definitions/error" // description: not acceptable // '500': +// schema: +// "$ref": "#/definitions/error" // description: internal error func (m *Module) InstanceInformationGETHandlerV1(c *gin.Context) { if _, err := apiutil.NegotiateAccept(c, apiutil.JSONAcceptHeaders...); err != nil { @@ -97,8 +101,12 @@ func (m *Module) InstanceInformationGETHandlerV1(c *gin.Context) { // schema: // "$ref": "#/definitions/instanceV2" // '406': +// schema: +// "$ref": "#/definitions/error" // description: not acceptable // '500': +// schema: +// "$ref": "#/definitions/error" // description: internal error func (m *Module) InstanceInformationGETHandlerV2(c *gin.Context) { if _, err := apiutil.NegotiateAccept(c, apiutil.JSONAcceptHeaders...); err != nil { diff --git a/internal/api/client/instance/instancepatch.go b/internal/api/client/instance/instancepatch.go index b81f14298..ced5c624d 100644 --- a/internal/api/client/instance/instancepatch.go +++ b/internal/api/client/instance/instancepatch.go @@ -114,16 +114,28 @@ import ( // schema: // "$ref": "#/definitions/instanceV1" // '400': +// schema: +// "$ref": "#/definitions/error" // description: bad request // '401': +// schema: +// "$ref": "#/definitions/error" // description: unauthorized // '403': +// schema: +// "$ref": "#/definitions/error" // description: forbidden // '404': +// schema: +// "$ref": "#/definitions/error" // description: not found // '406': +// schema: +// "$ref": "#/definitions/error" // description: not acceptable // '500': +// schema: +// "$ref": "#/definitions/error" // description: internal server error func (m *Module) InstanceUpdatePATCHHandler(c *gin.Context) { authed, errWithCode := apiutil.TokenAuth(c, diff --git a/internal/api/client/instance/instancepeersget.go b/internal/api/client/instance/instancepeersget.go index d9f7610b7..e5870eff7 100644 --- a/internal/api/client/instance/instancepeersget.go +++ b/internal/api/client/instance/instancepeersget.go @@ -103,16 +103,28 @@ import ( // items: // "$ref": "#/definitions/domain" // '400': +// schema: +// "$ref": "#/definitions/error" // description: bad request // '401': +// schema: +// "$ref": "#/definitions/error" // description: unauthorized // '403': +// schema: +// "$ref": "#/definitions/error" // description: forbidden // '404': +// schema: +// "$ref": "#/definitions/error" // description: not found // '406': +// schema: +// "$ref": "#/definitions/error" // description: not acceptable // '500': +// schema: +// "$ref": "#/definitions/error" // description: internal server error func (m *Module) InstancePeersGETHandler(c *gin.Context) { authed, errWithCode := apiutil.TokenAuth(c, diff --git a/internal/api/client/instance/instancerulesget.go b/internal/api/client/instance/instancerulesget.go index 8daedec74..814ff0439 100644 --- a/internal/api/client/instance/instancerulesget.go +++ b/internal/api/client/instance/instancerulesget.go @@ -48,12 +48,20 @@ import ( // items: // "$ref": "#/definitions/instanceRule" // '400': +// schema: +// "$ref": "#/definitions/error" // description: bad request // '404': +// schema: +// "$ref": "#/definitions/error" // description: not found // '406': +// schema: +// "$ref": "#/definitions/error" // description: not acceptable // '500': +// schema: +// "$ref": "#/definitions/error" // description: internal server error func (m *Module) InstanceRulesGETHandler(c *gin.Context) { if _, err := apiutil.NegotiateAccept(c, apiutil.JSONAcceptHeaders...); err != nil { |
