From ef01c2217bdb24c85d394236179e34165fdf3d86 Mon Sep 17 00:00:00 2001 From: kolaente Date: Sat, 25 Jan 2025 14:38:25 +0100 Subject: [PATCH] fix(task): correctly validate all task fields --- pkg/models/task_collection.go | 26 +++++------------------ pkg/models/task_collection_sort.go | 33 +++++++++++++++++++++++++++++- 2 files changed, 37 insertions(+), 22 deletions(-) diff --git a/pkg/models/task_collection.go b/pkg/models/task_collection.go index c42d7b452..e516bfb71 100644 --- a/pkg/models/task_collection.go +++ b/pkg/models/task_collection.go @@ -90,29 +90,13 @@ func (t TaskCollectionExpandable) Validate() error { func validateTaskField(fieldName string) error { switch fieldName { case - taskPropertyID, - taskPropertyTitle, - taskPropertyDescription, - taskPropertyDone, - taskPropertyDoneAt, - taskPropertyDueDate, - taskPropertyCreatedByID, - taskPropertyProjectID, - taskPropertyRepeatAfter, - taskPropertyPriority, - taskPropertyStartDate, - taskPropertyEndDate, - taskPropertyHexColor, - taskPropertyPercentDone, - taskPropertyUID, - taskPropertyCreated, - taskPropertyUpdated, - taskPropertyPosition, - taskPropertyBucketID, - taskPropertyIndex: + taskPropertyAssignees, + taskPropertyLabels, + taskPropertyReminders: return nil } - return ErrInvalidTaskField{TaskField: fieldName} + + return validateTaskFieldForSorting(fieldName) } func getTaskFilterOptsFromCollection(tf *TaskCollection, projectView *ProjectView) (opts *taskSearchOptions, err error) { diff --git a/pkg/models/task_collection_sort.go b/pkg/models/task_collection_sort.go index bd686e049..15f6e82bf 100644 --- a/pkg/models/task_collection_sort.go +++ b/pkg/models/task_collection_sort.go @@ -48,6 +48,9 @@ const ( taskPropertyBucketID string = "bucket_id" taskPropertyIndex string = "index" taskPropertyProjectViewID string = "project_view_id" + taskPropertyAssignees string = "assignees" + taskPropertyLabels string = "labels" + taskPropertyReminders string = "reminders" ) const ( @@ -79,5 +82,33 @@ func (sp *sortParam) validate() error { return ErrMustHaveProjectViewToSortByPosition{} } - return validateTaskField(sp.sortBy) + return validateTaskFieldForSorting(sp.sortBy) +} + +func validateTaskFieldForSorting(fieldName string) error { + switch fieldName { + case + taskPropertyID, + taskPropertyTitle, + taskPropertyDescription, + taskPropertyDone, + taskPropertyDoneAt, + taskPropertyDueDate, + taskPropertyCreatedByID, + taskPropertyProjectID, + taskPropertyRepeatAfter, + taskPropertyPriority, + taskPropertyStartDate, + taskPropertyEndDate, + taskPropertyHexColor, + taskPropertyPercentDone, + taskPropertyUID, + taskPropertyCreated, + taskPropertyUpdated, + taskPropertyPosition, + taskPropertyBucketID, + taskPropertyIndex: + return nil + } + return ErrInvalidTaskField{TaskField: fieldName} }