Add custom erros for saved filters
continuous-integration/drone/pr Build is passing
Details
continuous-integration/drone/pr Build is passing
Details
This commit is contained in:
parent
5043f0e4dd
commit
9895f8ad66
|
@ -135,3 +135,10 @@ This document describes the different errors Vikunja can return.
|
||||||
| 10002 | 400 | The bucket does not belong to that list. |
|
| 10002 | 400 | The bucket does not belong to that list. |
|
||||||
| 10003 | 412 | You cannot remove the last bucket on a list. |
|
| 10003 | 412 | You cannot remove the last bucket on a list. |
|
||||||
| 10004 | 412 | You cannot add the task to this bucket as it already exceeded the limit of tasks it can hold. |
|
| 10004 | 412 | You cannot add the task to this bucket as it already exceeded the limit of tasks it can hold. |
|
||||||
|
|
||||||
|
## Saved Filters
|
||||||
|
|
||||||
|
| ErrorCode | HTTP Status Code | Description |
|
||||||
|
|-----------|------------------|-------------|
|
||||||
|
| 11001 | 404 | The saved filter does not exist. |
|
||||||
|
| 11002 | 412 | Saved filters are not available for link shares. |
|
||||||
|
|
|
@ -1363,3 +1363,62 @@ func (err ErrBucketLimitExceeded) HTTPError() web.HTTPError {
|
||||||
Message: "You cannot add the task to this bucket as it already exceeded the limit of tasks it can hold.",
|
Message: "You cannot add the task to this bucket as it already exceeded the limit of tasks it can hold.",
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// =============
|
||||||
|
// Saved Filters
|
||||||
|
// =============
|
||||||
|
|
||||||
|
// ErrSavedFilterDoesNotExist represents an error where a kanban bucket does not exist
|
||||||
|
type ErrSavedFilterDoesNotExist struct {
|
||||||
|
SavedFilterID int64
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsErrSavedFilterDoesNotExist checks if an error is ErrSavedFilterDoesNotExist.
|
||||||
|
func IsErrSavedFilterDoesNotExist(err error) bool {
|
||||||
|
_, ok := err.(ErrSavedFilterDoesNotExist)
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (err ErrSavedFilterDoesNotExist) Error() string {
|
||||||
|
return fmt.Sprintf("Saved filter does not exist [SavedFilterID: %d]", err.SavedFilterID)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ErrCodeSavedFilterDoesNotExist holds the unique world-error code of this error
|
||||||
|
const ErrCodeSavedFilterDoesNotExist = 11001
|
||||||
|
|
||||||
|
// HTTPError holds the http error description
|
||||||
|
func (err ErrSavedFilterDoesNotExist) HTTPError() web.HTTPError {
|
||||||
|
return web.HTTPError{
|
||||||
|
HTTPCode: http.StatusNotFound,
|
||||||
|
Code: ErrCodeSavedFilterDoesNotExist,
|
||||||
|
Message: "This saved filter does not exist.",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ErrSavedFilterNotAvailableForLinkShare represents an error where a kanban bucket does not exist
|
||||||
|
type ErrSavedFilterNotAvailableForLinkShare struct {
|
||||||
|
SavedFilterID int64
|
||||||
|
LinkShareID int64
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsErrSavedFilterNotAvailableForLinkShare checks if an error is ErrSavedFilterNotAvailableForLinkShare.
|
||||||
|
func IsErrSavedFilterNotAvailableForLinkShare(err error) bool {
|
||||||
|
_, ok := err.(ErrSavedFilterNotAvailableForLinkShare)
|
||||||
|
return ok
|
||||||
|
}
|
||||||
|
|
||||||
|
func (err ErrSavedFilterNotAvailableForLinkShare) Error() string {
|
||||||
|
return fmt.Sprintf("Saved filters are not available for link shares [SavedFilterID: %d, LinkShareID: %d]", err.SavedFilterID, err.LinkShareID)
|
||||||
|
}
|
||||||
|
|
||||||
|
// ErrCodeSavedFilterNotAvailableForLinkShare holds the unique world-error code of this error
|
||||||
|
const ErrCodeSavedFilterNotAvailableForLinkShare = 11002
|
||||||
|
|
||||||
|
// HTTPError holds the http error description
|
||||||
|
func (err ErrSavedFilterNotAvailableForLinkShare) HTTPError() web.HTTPError {
|
||||||
|
return web.HTTPError{
|
||||||
|
HTTPCode: http.StatusPreconditionFailed,
|
||||||
|
Code: ErrCodeSavedFilterNotAvailableForLinkShare,
|
||||||
|
Message: "Saved filters are not available for link shares.",
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -47,7 +47,7 @@ func (s *SavedFilter) CanCreate(auth web.Auth) (bool, error) {
|
||||||
func (s *SavedFilter) canDoFilter(auth web.Auth) (can bool, err error) {
|
func (s *SavedFilter) canDoFilter(auth web.Auth) (can bool, err error) {
|
||||||
// Link shares can't view or modify saved filters, therefore we can error out right away
|
// Link shares can't view or modify saved filters, therefore we can error out right away
|
||||||
if _, is := auth.(*LinkSharing); is {
|
if _, is := auth.(*LinkSharing); is {
|
||||||
return false, nil
|
return false, ErrSavedFilterNotAvailableForLinkShare{LinkShareID: auth.GetID(), SavedFilterID: s.ID}
|
||||||
}
|
}
|
||||||
|
|
||||||
sf, err := getSavedFilterSimpleByID(s.ID)
|
sf, err := getSavedFilterSimpleByID(s.ID)
|
||||||
|
|
Loading…
Reference in New Issue