Add getting tasks from a saved filter

This commit is contained in:
kolaente 2020-09-06 19:56:01 +02:00
parent ca857b1f5a
commit 5988bc508f
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
2 changed files with 25 additions and 0 deletions

View File

@ -51,6 +51,17 @@ func (s *SavedFilter) TableName() string {
return "saved_filters"
}
func (s *SavedFilter) getTaskCollection() *TaskCollection {
// We're resetting the listID to return tasks from all lists
s.Filters.ListID = 0
return s.Filters
}
func getSavedFilterIDFromListID(listID int64) int64 {
// We get the id of the saved filter by multiplying the ListID with -1 and subtracting one
return listID*-1 - 1
}
func (s *SavedFilter) Create(auth web.Auth) error {
s.OwnerID = auth.GetID()
_, err := x.Insert(s)
@ -69,7 +80,10 @@ func (s *SavedFilter) ReadOne() error {
return err
}
// ReadAll returns all tasks of a saved filter.
// Since saved filters are shown in a pseudo-namespace, we can use this function to get all tasks
func (s *SavedFilter) ReadAll(auth web.Auth, search string, page int, perPage int) (result interface{}, resultCount int, numberOfTotalItems int64, err error) {
return
}
func (s *SavedFilter) Update() error {

View File

@ -102,6 +102,17 @@ func validateTaskField(fieldName string) error {
// @Router /lists/{listID}/tasks [get]
func (tf *TaskCollection) ReadAll(a web.Auth, search string, page int, perPage int) (result interface{}, resultCount int, totalItems int64, err error) {
// If the list id is < -1 this means we're dealing with a saved filter - in that case we get and populate the filter
// -1 is the favorites list which works as intended
if tf.ListID < -1 {
s, err := getSavedFilterSimpleByID(getSavedFilterIDFromListID(tf.ListID))
if err != nil {
return nil, 0, 0, err
}
return s.getTaskCollection().ReadAll(a, search, page, perPage)
}
if len(tf.SortByArr) > 0 {
tf.SortBy = append(tf.SortBy, tf.SortByArr...)
}