Saved filters (#655)
Fix updating saved filters Fix filter not loadable because of missing param declaration Add fancy special cases for postgres exists in db Add special case for postgrs json Add read one test Add rights tests Fix lint Fixed getting a single saved filter from db Add tests for the usual crud methods Add test stubs and TODOs Add test for converting saved filter ids to list ids and vice versa Add test fixture for saved filters and fix existing tests Fix exposed json variables of filters Fix creating saved filters table for tests Add getting saved filters as pseudo namespace Cleanup Refactor getting all namespaces to use a map for easier handling of pseudo namespaces Add custom erros for saved filters Swagger docs Fix lint Add routes for saved filters Add alias for mage build Add method to get a saved filter from the lists endpoint Add getting tasks from a saved filter Add create, update, delete, read one methods Add rights methods for saved filters Fix docs minLength Add saved filters column Co-authored-by: kolaente <k@knt.li> Reviewed-on: https://kolaente.dev/vikunja/api/pulls/655 Co-Authored-By: konrad <konrad@kola-entertainments.de> Co-Committed-By: konrad <konrad@kola-entertainments.de>
This commit is contained in:
@ -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.",
|
||||
}
|
||||
}
|
||||
|
||||
// =============
|
||||
// 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.",
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user