summaryrefslogtreecommitdiff
path: root/internal/api/client/instance
diff options
context:
space:
mode:
authorLibravatar Vyr Cossont <vyr@noreply.codeberg.org>2025-11-11 19:39:09 +0100
committerLibravatar tobi <tobi.smethurst@protonmail.com>2025-11-17 14:15:04 +0100
commit0c7b069c4a09f01a3a6c59bd7b66f096f8dcec40 (patch)
treee5306d5ebad1e5a6efe5393bfafde95f5b94b237 /internal/api/client/instance
parent[performance] remove hard reliance on .Cached field to indicate whether media... (diff)
downloadgotosocial-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.go24
-rw-r--r--internal/api/client/instance/instanceget.go8
-rw-r--r--internal/api/client/instance/instancepatch.go12
-rw-r--r--internal/api/client/instance/instancepeersget.go12
-rw-r--r--internal/api/client/instance/instancerulesget.go8
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 {