Print status code

This commit is contained in:
rxdn 2024-12-01 11:15:24 +00:00
parent a1eae9b4bb
commit 6d073dc216
2 changed files with 21 additions and 11 deletions

View File

@ -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 {

View File

@ -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)