vikunja/frontend/src/services/taskCollection.ts

37 lines
825 B
TypeScript
Raw Normal View History

import AbstractService from '@/services/abstractService'
import TaskModel from '@/models/task'
import type {ITask} from '@/modelTypes/ITask'
2024-03-08 11:52:24 +00:00
export interface TaskFilterParams {
sort_by: ('start_date' | 'done' | 'id' | 'position' | 'kanban_position')[],
2024-03-08 11:52:24 +00:00
order_by: ('asc' | 'desc')[],
filter: string,
filter_include_nulls: boolean,
filter_timezone?: string,
2024-03-08 11:52:24 +00:00
s: string,
per_page?: number,
}
export function getDefaultTaskFilterParams(): TaskFilterParams {
return {
sort_by: ['position', 'id'],
order_by: ['asc', 'desc'],
filter: '',
filter_include_nulls: false,
filter_timezone: '',
s: '',
}
}
2022-10-10 19:44:59 +00:00
export default class TaskCollectionService extends AbstractService<ITask> {
2019-12-03 18:09:12 +00:00
constructor() {
super({
getAll: '/projects/{projectId}/tasks',
2019-12-03 18:09:12 +00:00
})
}
2019-12-03 18:09:12 +00:00
modelFactory(data) {
return new TaskModel(data)
}
}