summaryrefslogtreecommitdiff
path: root/internal/api/client/user
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/user
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/user')
-rw-r--r--internal/api/client/user/emailchange.go12
-rw-r--r--internal/api/client/user/passwordchange.go12
-rw-r--r--internal/api/client/user/twofactor.go48
-rw-r--r--internal/api/client/user/userget.go10
4 files changed, 82 insertions, 0 deletions
diff --git a/internal/api/client/user/emailchange.go b/internal/api/client/user/emailchange.go
index d0238824d..96895af10 100644
--- a/internal/api/client/user/emailchange.go
+++ b/internal/api/client/user/emailchange.go
@@ -53,16 +53,28 @@ import (
// schema:
// "$ref": "#/definitions/user"
// '400':
+// schema:
+// "$ref": "#/definitions/error"
// description: bad request
// '401':
+// schema:
+// "$ref": "#/definitions/error"
// description: unauthorized
// '403':
+// schema:
+// "$ref": "#/definitions/error"
// description: forbidden
// '406':
+// schema:
+// "$ref": "#/definitions/error"
// description: not acceptable
// '409':
+// schema:
+// "$ref": "#/definitions/error"
// description: "Conflict: desired email address already in use"
// '500':
+// schema:
+// "$ref": "#/definitions/error"
// description: internal error
func (m *Module) EmailChangePOSTHandler(c *gin.Context) {
authed, errWithCode := apiutil.TokenAuth(c,
diff --git a/internal/api/client/user/passwordchange.go b/internal/api/client/user/passwordchange.go
index caa90583f..dc2443b73 100644
--- a/internal/api/client/user/passwordchange.go
+++ b/internal/api/client/user/passwordchange.go
@@ -57,16 +57,28 @@ const OIDCPasswordHelp = "password change request cannot be processed by GoToSoc
// '200':
// description: Change successful
// '400':
+// schema:
+// "$ref": "#/definitions/error"
// description: bad request
// '401':
+// schema:
+// "$ref": "#/definitions/error"
// description: unauthorized
// '403':
+// schema:
+// "$ref": "#/definitions/error"
// description: forbidden
// '406':
+// schema:
+// "$ref": "#/definitions/error"
// description: not acceptable
// '422':
+// schema:
+// "$ref": "#/definitions/error"
// description: unprocessable request because instance is running with OIDC backend
// '500':
+// schema:
+// "$ref": "#/definitions/error"
// description: internal error
func (m *Module) PasswordChangePOSTHandler(c *gin.Context) {
authed, errWithCode := apiutil.TokenAuth(c,
diff --git a/internal/api/client/user/twofactor.go b/internal/api/client/user/twofactor.go
index a359607e4..e97aaeea1 100644
--- a/internal/api/client/user/twofactor.go
+++ b/internal/api/client/user/twofactor.go
@@ -55,16 +55,28 @@ const OIDCTwoFactorHelp = "two factor authentication request cannot be processed
// '200':
// description: QR code png
// '401':
+// schema:
+// "$ref": "#/definitions/error"
// description: unauthorized
// '403':
+// schema:
+// "$ref": "#/definitions/error"
// description: forbidden
// '406':
+// schema:
+// "$ref": "#/definitions/error"
// description: not acceptable
// '409':
+// schema:
+// "$ref": "#/definitions/error"
// description: conflict
// '422':
+// schema:
+// "$ref": "#/definitions/error"
// description: unprocessable entity
// '500':
+// schema:
+// "$ref": "#/definitions/error"
// description: internal error
func (m *Module) TwoFactorQRCodePngGETHandler(c *gin.Context) {
authed, errWithCode := apiutil.TokenAuth(c,
@@ -134,16 +146,28 @@ func (m *Module) TwoFactorQRCodePngGETHandler(c *gin.Context) {
// '200':
// description: QR code uri
// '401':
+// schema:
+// "$ref": "#/definitions/error"
// description: unauthorized
// '403':
+// schema:
+// "$ref": "#/definitions/error"
// description: forbidden
// '406':
+// schema:
+// "$ref": "#/definitions/error"
// description: not acceptable
// '409':
+// schema:
+// "$ref": "#/definitions/error"
// description: conflict
// '422':
+// schema:
+// "$ref": "#/definitions/error"
// description: unprocessable entity
// '500':
+// schema:
+// "$ref": "#/definitions/error"
// description: internal error
func (m *Module) TwoFactorQRCodeURIGETHandler(c *gin.Context) {
authed, errWithCode := apiutil.TokenAuth(c,
@@ -216,16 +240,28 @@ func (m *Module) TwoFactorQRCodeURIGETHandler(c *gin.Context) {
// '200':
// description: QR code
// '401':
+// schema:
+// "$ref": "#/definitions/error"
// description: unauthorized
// '403':
+// schema:
+// "$ref": "#/definitions/error"
// description: forbidden
// '406':
+// schema:
+// "$ref": "#/definitions/error"
// description: not acceptable
// '409':
+// schema:
+// "$ref": "#/definitions/error"
// description: conflict
// '422':
+// schema:
+// "$ref": "#/definitions/error"
// description: unprocessable entity
// '500':
+// schema:
+// "$ref": "#/definitions/error"
// description: internal error
func (m *Module) TwoFactorEnablePOSTHandler(c *gin.Context) {
authed, errWithCode := apiutil.TokenAuth(c,
@@ -300,16 +336,28 @@ func (m *Module) TwoFactorEnablePOSTHandler(c *gin.Context) {
// '200':
// description: QR code
// '401':
+// schema:
+// "$ref": "#/definitions/error"
// description: unauthorized
// '403':
+// schema:
+// "$ref": "#/definitions/error"
// description: forbidden
// '406':
+// schema:
+// "$ref": "#/definitions/error"
// description: not acceptable
// '409':
+// schema:
+// "$ref": "#/definitions/error"
// description: conflict
// '422':
+// schema:
+// "$ref": "#/definitions/error"
// description: unprocessable entity
// '500':
+// schema:
+// "$ref": "#/definitions/error"
// description: internal error
func (m *Module) TwoFactorDisablePOSTHandler(c *gin.Context) {
authed, errWithCode := apiutil.TokenAuth(c,
diff --git a/internal/api/client/user/userget.go b/internal/api/client/user/userget.go
index ff92815b6..ec9a13450 100644
--- a/internal/api/client/user/userget.go
+++ b/internal/api/client/user/userget.go
@@ -46,14 +46,24 @@ import (
// schema:
// "$ref": "#/definitions/user"
// '400':
+// schema:
+// "$ref": "#/definitions/error"
// description: bad request
// '401':
+// schema:
+// "$ref": "#/definitions/error"
// description: unauthorized
// '403':
+// schema:
+// "$ref": "#/definitions/error"
// description: forbidden
// '406':
+// schema:
+// "$ref": "#/definitions/error"
// description: not acceptable
// '500':
+// schema:
+// "$ref": "#/definitions/error"
// description: internal error
func (m *Module) UserGETHandler(c *gin.Context) {
authed, errWithCode := apiutil.TokenAuth(c,