Skip to content

Commit

Permalink
feat: moved only due date task filtering to api, depreciated old filt…
Browse files Browse the repository at this point in the history
…er getting
  • Loading branch information
Benimautner committed Sep 15, 2024
1 parent c62848b commit 5f80856
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 21 deletions.
11 changes: 11 additions & 0 deletions lib/api/task_implementation.dart
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ class TaskAPIService extends APIService implements TaskService {
}

@override
@deprecated
Future<List<Task>?> getByOptions(TaskServiceOptions options) {
Map<String, List<String>> optionsMap = options.getOptions();
//optionString = "?sort_by[]=due_date&sort_by[]=id&order_by[]=asc&order_by[]=desc&filter_by[]=done&filter_value[]=false&filter_comparator[]=equals&filter_concat=and&filter_include_nulls=false&page=1";
Expand All @@ -99,6 +100,16 @@ class TaskAPIService extends APIService implements TaskService {
});
}

@override
Future<List<Task>?> getByFilterString(String filterString, [Map<String, List<String>>? queryParameters]) {
Map<String, List<String>> parameters = {"filter": [filterString], ...?queryParameters};
print(parameters);
return client.get('/tasks/all', parameters).then((response) {
if (response == null) return null;
return convertList(response.body, (result) => Task.fromJson(result));
});
}

@override
// TODO: implement maxPages
int get maxPages => maxPages;
Expand Down
34 changes: 13 additions & 21 deletions lib/pages/landing_page.dart
Original file line number Diff line number Diff line change
Expand Up @@ -247,39 +247,31 @@ class LandingPageState extends State<LandingPage> {
if (frontend_settings["filter_id_used_on_overview"] != null)
filterId = frontend_settings["filter_id_used_on_overview"];
}
// in case user set a filter id for the landing page in the settings
if (filterId != null && filterId != 0) {
return global.taskService.getAllByProject(filterId, {
"sort_by": ["due_date", "id"],
"order_by": ["asc", "desc"],
}).then<Future<void>?>((response) =>
_handleTaskList(response?.body, showOnlyDueDateTasks));
_handleTaskList(response?.body));
;
}

return global.taskService
.getByOptions(TaskServiceOptions(newOptions: [
TaskServiceOption<TaskServiceOptionSortBy>(
"sort_by", ["due_date", "id"]),
TaskServiceOption<TaskServiceOptionSortBy>(
"order_by", ["asc", "desc"]),
TaskServiceOption<TaskServiceOptionFilterBy>("filter_by", "done"),
TaskServiceOption<TaskServiceOptionFilterValue>(
"filter_value", "false"),
TaskServiceOption<TaskServiceOptionFilterComparator>(
"filter_comparator", "equals"),
TaskServiceOption<TaskServiceOptionFilterConcat>(
"filter_concat", "and"),
], clearOther: true))
List<String> filterStrings = ["done = false"];
if(showOnlyDueDateTasks) {
filterStrings.add("due_date > 0001-01-01 00:00");
}
return global.taskService.getByFilterString(filterStrings.join(" && "), {
"sort_by": ["due_date", "id"],
"order_by": ["asc", "desc"],
"filter_include_nulls": ["false"],
})
.then<Future<void>?>(
(taskList) => _handleTaskList(taskList, showOnlyDueDateTasks));
(taskList) => _handleTaskList(taskList));
}); //.onError((error, stackTrace) {print("error");});
}

Future<void> _handleTaskList(
List<Task>? taskList, bool showOnlyDueDateTasks) {
if (showOnlyDueDateTasks)
taskList?.removeWhere((element) =>
element.dueDate == null || element.dueDate!.year == 0001);
List<Task>? taskList ) {

if (taskList != null && taskList.isEmpty) {
setState(() {
Expand Down
2 changes: 2 additions & 0 deletions lib/service/services.dart
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,9 @@ abstract class TaskService {
Future<Response?> getAllByProject(int projectId,
[Map<String, List<String>> queryParameters]);

@deprecated
Future<List<Task>?> getByOptions(TaskServiceOptions options);
Future<List<Task>?> getByFilterString(String filterString, [Map<String, List<String>> queryParameters]);

int get maxPages;
}
Expand Down

0 comments on commit 5f80856

Please sign in to comment.