From 6d073dc216b7f9f99909ab893e76d3ccda28d8c7 Mon Sep 17 00:00:00 2001 From: rxdn <29165304+rxdn@users.noreply.github.com> Date: Sun, 1 Dec 2024 11:15:24 +0000 Subject: [PATCH] Print status code --- app/errors.go | 15 +++++++++++++-- app/http/endpoints/api/panel/paneldelete.go | 17 ++++++++--------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/app/errors.go b/app/errors.go index 9ea762e..65d3cbf 100644 --- a/app/errors.go +++ b/app/errors.go @@ -1,10 +1,15 @@ package app -import "fmt" +import ( + "errors" + "fmt" + "github.com/rxdn/gdl/rest/request" +) type ApiError struct { InternalError error ExternalMessage string + stacktrace error } var _ error = (*ApiError)(nil) @@ -21,7 +26,13 @@ func NewServerError(internalError error) *ApiError { } func (e *ApiError) Error() string { - return fmt.Sprintf("internal error: %v, external message: %s", e.InternalError, e.ExternalMessage) + var restError request.RestError + if errors.As(e.InternalError, &restError) { + return fmt.Sprintf("internal error: %v, external message: %s, rest error: Discord returned HTTP %d: %s", + e.InternalError, e.ExternalMessage, restError.StatusCode, restError.ApiError.Message) + } else { + return fmt.Sprintf("internal error: %v, external message: %s", e.InternalError, e.ExternalMessage) + } } func (e *ApiError) Unwrap() error { diff --git a/app/http/endpoints/api/panel/paneldelete.go b/app/http/endpoints/api/panel/paneldelete.go index c9d0fc3..d8da1e7 100644 --- a/app/http/endpoints/api/panel/paneldelete.go +++ b/app/http/endpoints/api/panel/paneldelete.go @@ -97,7 +97,6 @@ func DeletePanel(c *gin.Context) { } messageData := multiPanelIntoMessageData(multiPanel, premiumTier > premium.None) - messageId, err := messageData.send(botContext, panels) if err != nil { var unwrapped request.RestError @@ -106,16 +105,16 @@ func DeletePanel(c *gin.Context) { return } // TODO: nil message ID? - } + } else { + if err := database.Client.MultiPanels.UpdateMessageId(c, multiPanel.Id, messageId); err != nil { + _ = c.AbortWithError(http.StatusInternalServerError, app.NewServerError(err)) + return + } - if err := database.Client.MultiPanels.UpdateMessageId(c, multiPanel.Id, messageId); err != nil { - _ = c.AbortWithError(http.StatusInternalServerError, app.NewServerError(err)) - return + // Delete old panel + // TODO: Use proper context + _ = rest.DeleteMessage(c, botContext.Token, botContext.RateLimiter, multiPanel.ChannelId, multiPanel.MessageId) } - - // Delete old panel - // TODO: Use proper context - _ = rest.DeleteMessage(c, botContext.Token, botContext.RateLimiter, multiPanel.ChannelId, multiPanel.MessageId) } c.JSON(200, utils.SuccessResponse)