fix(task): correctly validate all task fields

This commit is contained in:
kolaente 2025-01-25 14:38:25 +01:00
parent 9c115b7f5c
commit ef01c2217b
No known key found for this signature in database
GPG Key ID: F40E70337AB24C9B
2 changed files with 37 additions and 22 deletions

View File

@ -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) {

View File

@ -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}
}