diff --git a/pkg/modules/background/handler/background.go b/pkg/modules/background/handler/background.go index 510c1ca79..23091f058 100644 --- a/pkg/modules/background/handler/background.go +++ b/pkg/modules/background/handler/background.go @@ -64,7 +64,7 @@ func (bp *BackgroundProvider) SearchBackgrounds(c echo.Context) error { err := c.Bind(p) if err != nil { - return echo.NewHTTPError(http.StatusBadRequest, "No or invalid model provided: "+err.Error()) + return echo.NewHTTPError(http.StatusBadRequest, "No or invalid model provided: "+err.Error()).SetInternal(err) } search := c.QueryParam("s") @@ -73,7 +73,7 @@ func (bp *BackgroundProvider) SearchBackgrounds(c echo.Context) error { if pg != "" { page, err = strconv.ParseInt(pg, 10, 64) if err != nil { - return echo.NewHTTPError(http.StatusBadRequest, "Invalid page number: "+err.Error()) + return echo.NewHTTPError(http.StatusBadRequest, "Invalid page number: "+err.Error()).SetInternal(err) } } @@ -83,12 +83,12 @@ func (bp *BackgroundProvider) SearchBackgrounds(c echo.Context) error { result, err := p.Search(s, search, page) if err != nil { _ = s.Rollback() - return echo.NewHTTPError(http.StatusBadRequest, "An error occurred: "+err.Error()) + return echo.NewHTTPError(http.StatusBadRequest, "An error occurred: "+err.Error()).SetInternal(err) } if err := s.Commit(); err != nil { _ = s.Rollback() - return echo.NewHTTPError(http.StatusBadRequest, "An error occurred: "+err.Error()) + return echo.NewHTTPError(http.StatusBadRequest, "An error occurred: "+err.Error()).SetInternal(err) } return c.JSON(http.StatusOK, result) @@ -98,12 +98,12 @@ func (bp *BackgroundProvider) SearchBackgrounds(c echo.Context) error { func (bp *BackgroundProvider) setBackgroundPreparations(s *xorm.Session, c echo.Context) (project *models.Project, auth web.Auth, err error) { auth, err = auth2.GetAuthFromClaims(c) if err != nil { - return nil, nil, echo.NewHTTPError(http.StatusBadRequest, "Invalid auth token: "+err.Error()) + return nil, nil, echo.NewHTTPError(http.StatusBadRequest, "Invalid auth token: "+err.Error()).SetInternal(err) } projectID, err := strconv.ParseInt(c.Param("project"), 10, 64) if err != nil { - return nil, nil, echo.NewHTTPError(http.StatusBadRequest, "Invalid project ID: "+err.Error()) + return nil, nil, echo.NewHTTPError(http.StatusBadRequest, "Invalid project ID: "+err.Error()).SetInternal(err) } // Check if the user has the right to change the project background @@ -138,7 +138,7 @@ func (bp *BackgroundProvider) SetBackground(c echo.Context) error { err = c.Bind(image) if err != nil { _ = s.Rollback() - return echo.NewHTTPError(http.StatusBadRequest, "No or invalid model provided: "+err.Error()) + return echo.NewHTTPError(http.StatusBadRequest, "No or invalid model provided: "+err.Error()).SetInternal(err) } err = p.Set(s, image, project, auth) @@ -274,12 +274,12 @@ func SaveBackgroundFile(s *xorm.Session, auth web.Auth, project *models.Project, func checkProjectBackgroundRights(s *xorm.Session, c echo.Context) (project *models.Project, auth web.Auth, err error) { auth, err = auth2.GetAuthFromClaims(c) if err != nil { - return nil, auth, echo.NewHTTPError(http.StatusBadRequest, "Invalid auth token: "+err.Error()) + return nil, auth, echo.NewHTTPError(http.StatusBadRequest, "Invalid auth token: "+err.Error()).SetInternal(err) } projectID, err := strconv.ParseInt(c.Param("project"), 10, 64) if err != nil { - return nil, auth, echo.NewHTTPError(http.StatusBadRequest, "Invalid project ID: "+err.Error()) + return nil, auth, echo.NewHTTPError(http.StatusBadRequest, "Invalid project ID: "+err.Error()).SetInternal(err) } // Check if a background for this project exists + Rights diff --git a/pkg/modules/migration/handler/handler.go b/pkg/modules/migration/handler/handler.go index 67ce245b3..e0ab939b1 100644 --- a/pkg/modules/migration/handler/handler.go +++ b/pkg/modules/migration/handler/handler.go @@ -83,7 +83,7 @@ func (mw *MigrationWeb) Migrate(c echo.Context) error { // Bind user request stuff err = c.Bind(ms) if err != nil { - return echo.NewHTTPError(http.StatusBadRequest, "No or invalid model provided: "+err.Error()) + return echo.NewHTTPError(http.StatusBadRequest, "No or invalid model provided: "+err.Error()).SetInternal(err) } err = events.Dispatch(&MigrationRequestedEvent{ diff --git a/pkg/routes/api/v1/docs.go b/pkg/routes/api/v1/docs.go index 68d495472..ed9f997dc 100644 --- a/pkg/routes/api/v1/docs.go +++ b/pkg/routes/api/v1/docs.go @@ -34,12 +34,12 @@ func DocsJSON(c echo.Context) error { doc, err := swag.ReadDoc() if err != nil { log.Error(err.Error()) - return echo.NewHTTPError(http.StatusInternalServerError) + return echo.NewHTTPError(http.StatusInternalServerError).SetInternal(err) } _, err = c.Response().Write([]byte(doc)) if err != nil { log.Error(err.Error()) - return echo.NewHTTPError(http.StatusInternalServerError) + return echo.NewHTTPError(http.StatusInternalServerError).SetInternal(err) } return nil diff --git a/pkg/routes/api/v1/task_attachment.go b/pkg/routes/api/v1/task_attachment.go index f3e09540a..cae3a4f5d 100644 --- a/pkg/routes/api/v1/task_attachment.go +++ b/pkg/routes/api/v1/task_attachment.go @@ -45,7 +45,7 @@ func UploadTaskAttachment(c echo.Context) error { var taskAttachment models.TaskAttachment if err := c.Bind(&taskAttachment); err != nil { - return echo.NewHTTPError(http.StatusBadRequest, "No task ID provided") + return echo.NewHTTPError(http.StatusBadRequest, "No task ID provided").SetInternal(err) } // Rights check @@ -125,7 +125,7 @@ func GetTaskAttachment(c echo.Context) error { var taskAttachment models.TaskAttachment if err := c.Bind(&taskAttachment); err != nil { - return echo.NewHTTPError(http.StatusBadRequest, "No task ID provided") + return echo.NewHTTPError(http.StatusBadRequest, "No task ID provided").SetInternal(err) } // Rights check diff --git a/pkg/routes/api/v1/user_confirm_email.go b/pkg/routes/api/v1/user_confirm_email.go index 586cd8752..79187a17b 100644 --- a/pkg/routes/api/v1/user_confirm_email.go +++ b/pkg/routes/api/v1/user_confirm_email.go @@ -42,7 +42,7 @@ func UserConfirmEmail(c echo.Context) error { // Check for Request Content var emailConfirm user.EmailConfirm if err := c.Bind(&emailConfirm); err != nil { - return echo.NewHTTPError(http.StatusBadRequest, "No token provided.") + return echo.NewHTTPError(http.StatusBadRequest, "No token provided.").SetInternal(err) } s := db.NewSession() diff --git a/pkg/routes/api/v1/user_deletion.go b/pkg/routes/api/v1/user_deletion.go index cbb3c1462..bdf6dcf1b 100644 --- a/pkg/routes/api/v1/user_deletion.go +++ b/pkg/routes/api/v1/user_deletion.go @@ -65,18 +65,18 @@ func UserRequestDeletion(c echo.Context) error { if u.IsLocalUser() { var deletionRequest UserPasswordConfirmation if err := c.Bind(&deletionRequest); err != nil { - return echo.NewHTTPError(http.StatusBadRequest, "No password provided.") + return echo.NewHTTPError(http.StatusBadRequest, "No password provided.").SetInternal(err) } err = c.Validate(deletionRequest) if err != nil { - return echo.NewHTTPError(http.StatusBadRequest, err) + return echo.NewHTTPError(http.StatusBadRequest, err).SetInternal(err) } err = user.CheckUserPassword(u, deletionRequest.Password) if err != nil { _ = s.Rollback() - return handler.HandleHTTPError(err, c) + return handler.HandleHTTPError(err, c).SetInternal(err) } } @@ -109,12 +109,12 @@ func UserRequestDeletion(c echo.Context) error { func UserConfirmDeletion(c echo.Context) error { var deleteConfirmation UserDeletionRequestConfirm if err := c.Bind(&deleteConfirmation); err != nil { - return echo.NewHTTPError(http.StatusBadRequest, "No token provided.") + return echo.NewHTTPError(http.StatusBadRequest, "No token provided.").SetInternal(err) } err := c.Validate(deleteConfirmation) if err != nil { - return echo.NewHTTPError(http.StatusBadRequest, err) + return echo.NewHTTPError(http.StatusBadRequest, err).SetInternal(err) } s := db.NewSession() @@ -176,12 +176,12 @@ func UserCancelDeletion(c echo.Context) error { if u.IsLocalUser() { var deletionRequest UserPasswordConfirmation if err := c.Bind(&deletionRequest); err != nil { - return echo.NewHTTPError(http.StatusBadRequest, "No password provided.") + return echo.NewHTTPError(http.StatusBadRequest, "No password provided.").SetInternal(err) } err = c.Validate(deletionRequest) if err != nil { - return echo.NewHTTPError(http.StatusBadRequest, err) + return echo.NewHTTPError(http.StatusBadRequest, err).SetInternal(err) } err = user.CheckUserPassword(u, deletionRequest.Password) diff --git a/pkg/routes/api/v1/user_export.go b/pkg/routes/api/v1/user_export.go index 6c93f0294..048e9c46f 100644 --- a/pkg/routes/api/v1/user_export.go +++ b/pkg/routes/api/v1/user_export.go @@ -51,12 +51,12 @@ func checkExportRequest(c echo.Context) (s *xorm.Session, u *user.User, err erro var pass UserPasswordConfirmation if err := c.Bind(&pass); err != nil { - return nil, nil, echo.NewHTTPError(http.StatusBadRequest, "No password provided.") + return nil, nil, echo.NewHTTPError(http.StatusBadRequest, "No password provided.").SetInternal(err) } err = c.Validate(pass) if err != nil { - return nil, nil, echo.NewHTTPError(http.StatusBadRequest, err) + return nil, nil, echo.NewHTTPError(http.StatusBadRequest, err).SetInternal(err) } err = user.CheckUserPassword(u, pass.Password) diff --git a/pkg/routes/api/v1/user_password_reset.go b/pkg/routes/api/v1/user_password_reset.go index ffdc2029d..9edc9b54b 100644 --- a/pkg/routes/api/v1/user_password_reset.go +++ b/pkg/routes/api/v1/user_password_reset.go @@ -42,7 +42,7 @@ func UserResetPassword(c echo.Context) error { // Check for Request Content var pwReset user.PasswordReset if err := c.Bind(&pwReset); err != nil { - return echo.NewHTTPError(http.StatusBadRequest, "No password provided.") + return echo.NewHTTPError(http.StatusBadRequest, "No password provided.").SetInternal(err) } s := db.NewSession() @@ -77,11 +77,11 @@ func UserRequestResetPasswordToken(c echo.Context) error { // Check for Request Content var pwTokenReset user.PasswordTokenRequest if err := c.Bind(&pwTokenReset); err != nil { - return echo.NewHTTPError(http.StatusBadRequest, "No username provided.") + return echo.NewHTTPError(http.StatusBadRequest, "No username provided.").SetInternal(err) } if err := c.Validate(pwTokenReset); err != nil { - return echo.NewHTTPError(http.StatusBadRequest, err) + return echo.NewHTTPError(http.StatusBadRequest, err).SetInternal(err) } s := db.NewSession() diff --git a/pkg/routes/api/v1/user_settings.go b/pkg/routes/api/v1/user_settings.go index f8ef1d827..e628aaf5e 100644 --- a/pkg/routes/api/v1/user_settings.go +++ b/pkg/routes/api/v1/user_settings.go @@ -116,7 +116,7 @@ func ChangeUserAvatarProvider(c echo.Context) error { uap := &UserAvatarProvider{} err := c.Bind(uap) if err != nil { - return echo.NewHTTPError(http.StatusBadRequest, "Bad avatar type provided.") + return echo.NewHTTPError(http.StatusBadRequest, "Bad avatar type provided.").SetInternal(err) } u, err := user2.GetCurrentUser(c) @@ -166,14 +166,14 @@ func UpdateGeneralUserSettings(c echo.Context) error { if err != nil { var he *echo.HTTPError if errors.As(err, &he) { - return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid model provided. Error was: %s", he.Message)) + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid model provided. Error was: %s", he.Message)).SetInternal(err) } - return echo.NewHTTPError(http.StatusBadRequest, "Invalid model provided.") + return echo.NewHTTPError(http.StatusBadRequest, "Invalid model provided.").SetInternal(err) } err = c.Validate(us) if err != nil { - return echo.NewHTTPError(http.StatusBadRequest, err) + return echo.NewHTTPError(http.StatusBadRequest, err).SetInternal(err) } u, err := user2.GetCurrentUser(c) diff --git a/pkg/routes/api/v1/user_show.go b/pkg/routes/api/v1/user_show.go index 002a71004..7215780c0 100644 --- a/pkg/routes/api/v1/user_show.go +++ b/pkg/routes/api/v1/user_show.go @@ -52,7 +52,7 @@ type userWithSettings struct { func UserShow(c echo.Context) error { a, err := auth.GetAuthFromClaims(c) if err != nil { - return echo.NewHTTPError(http.StatusInternalServerError, "Error getting current user.") + return echo.NewHTTPError(http.StatusInternalServerError, "Error getting current user.").SetInternal(err) } s := db.NewSession() diff --git a/pkg/routes/api/v1/user_totp.go b/pkg/routes/api/v1/user_totp.go index a8402550d..1de45802a 100644 --- a/pkg/routes/api/v1/user_totp.go +++ b/pkg/routes/api/v1/user_totp.go @@ -94,9 +94,9 @@ func UserTOTPEnable(c echo.Context) error { log.Debugf("Invalid model error. Internal error was: %s", err.Error()) var he *echo.HTTPError if errors.As(err, &he) { - return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid model provided. Error was: %s", he.Message)) + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid model provided. Error was: %s", he.Message)).SetInternal(err) } - return echo.NewHTTPError(http.StatusBadRequest, "Invalid model provided.") + return echo.NewHTTPError(http.StatusBadRequest, "Invalid model provided.").SetInternal(err) } s := db.NewSession() @@ -135,9 +135,9 @@ func UserTOTPDisable(c echo.Context) error { log.Debugf("Invalid model error. Internal error was: %s", err.Error()) var he *echo.HTTPError if errors.As(err, &he) { - return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid model provided. Error was: %s", he.Message)) + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid model provided. Error was: %s", he.Message)).SetInternal(err) } - return echo.NewHTTPError(http.StatusBadRequest, "Invalid model provided.") + return echo.NewHTTPError(http.StatusBadRequest, "Invalid model provided.").SetInternal(err) } u, err := user.GetCurrentUser(c) diff --git a/pkg/routes/api/v1/user_update_email.go b/pkg/routes/api/v1/user_update_email.go index 5622079c0..9c557a856 100644 --- a/pkg/routes/api/v1/user_update_email.go +++ b/pkg/routes/api/v1/user_update_email.go @@ -50,9 +50,9 @@ func UpdateUserEmail(c echo.Context) (err error) { log.Debugf("Invalid model error. Internal error was: %s", err.Error()) var he *echo.HTTPError if errors.As(err, &he) { - return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid model provided. Error was: %s", he.Message)) + return echo.NewHTTPError(http.StatusBadRequest, fmt.Sprintf("Invalid model provided. Error was: %s", he.Message)).SetInternal(err) } - return echo.NewHTTPError(http.StatusBadRequest, "Invalid model provided.") + return echo.NewHTTPError(http.StatusBadRequest, "Invalid model provided.").SetInternal(err) } emailUpdate.User, err = user.GetCurrentUser(c) diff --git a/pkg/routes/api/v1/user_update_password.go b/pkg/routes/api/v1/user_update_password.go index 1a41bdc50..fdf464baa 100644 --- a/pkg/routes/api/v1/user_update_password.go +++ b/pkg/routes/api/v1/user_update_password.go @@ -50,13 +50,13 @@ func UserChangePassword(c echo.Context) error { // Check if the user is itself doer, err := user.GetCurrentUser(c) if err != nil { - return echo.NewHTTPError(http.StatusInternalServerError, "Error getting current user.") + return echo.NewHTTPError(http.StatusInternalServerError, "Error getting current user.").SetInternal(err) } // Check for Request Content var newPW UserPassword if err := c.Bind(&newPW); err != nil { - return echo.NewHTTPError(http.StatusBadRequest, "No password provided.") + return echo.NewHTTPError(http.StatusBadRequest, "No password provided.").SetInternal(err) } if newPW.OldPassword == "" { diff --git a/pkg/routes/caldav/handler.go b/pkg/routes/caldav/handler.go index 9f296706c..c1dbb81a8 100644 --- a/pkg/routes/caldav/handler.go +++ b/pkg/routes/caldav/handler.go @@ -51,8 +51,7 @@ func ProjectHandler(c echo.Context) error { u, err := getBasicAuthUserFromContext(c) if err != nil { - log.Error(err) - return echo.ErrInternalServerError + return echo.ErrInternalServerError.SetInternal(err) } storage := &VikunjaCaldavProjectStorage{ @@ -69,8 +68,7 @@ func ProjectHandler(c echo.Context) error { if vtodo != "" && strings.HasPrefix(vtodo, `BEGIN:VCALENDAR`) { storage.task, err = caldav2.ParseTaskFromVTODO(vtodo) if err != nil { - log.Error(err) - return echo.ErrInternalServerError + return echo.ErrInternalServerError.SetInternal(err) } } @@ -94,8 +92,7 @@ func TaskHandler(c echo.Context) error { u, err := getBasicAuthUserFromContext(c) if err != nil { - log.Error(err) - return echo.ErrInternalServerError + return echo.ErrInternalServerError.SetInternal(err) } // Get the task uid @@ -117,8 +114,7 @@ func TaskHandler(c echo.Context) error { func PrincipalHandler(c echo.Context) error { u, err := getBasicAuthUserFromContext(c) if err != nil { - log.Error(err) - return echo.ErrInternalServerError + return echo.ErrInternalServerError.SetInternal(err) } storage := &VikunjaCaldavProjectStorage{ @@ -147,8 +143,7 @@ func PrincipalHandler(c echo.Context) error { func EntryHandler(c echo.Context) error { u, err := getBasicAuthUserFromContext(c) if err != nil { - log.Error(err) - return echo.ErrInternalServerError + return echo.ErrInternalServerError.SetInternal(err) } storage := &VikunjaCaldavProjectStorage{