diff --git a/lib/api/client.dart b/lib/api/client.dart index f347d38..16b37cc 100644 --- a/lib/api/client.dart +++ b/lib/api/client.dart @@ -25,10 +25,20 @@ class Client { 'Content-Type': 'application/json' }; - Future get(String url) { - return http - .get('${this.base}$url', headers: _headers) - .then(_handleResponse); + Future get(String url, [Map queryParameters]) { + // TODO: This could be moved to a seperate function + var uri = Uri.parse('${this.base}$url'); + // Because these are all final values, we can't just add the queryParameters and must instead build a new Uri Object every time this method is called. + var newUri = Uri( + scheme: uri.scheme, + userInfo: uri.userInfo, + host: uri.host, + port: uri.port, + path: uri.path, + query: uri.query, + queryParameters: queryParameters, + fragment: uri.fragment); + return http.get(newUri, headers: _headers).then(_handleResponse); } Future delete(String url) { diff --git a/lib/api/task_implementation.dart b/lib/api/task_implementation.dart index 8c570ff..241b1e7 100644 --- a/lib/api/task_implementation.dart +++ b/lib/api/task_implementation.dart @@ -28,9 +28,9 @@ class TaskAPIService extends APIService implements TaskService { } @override - Future> getAll(int listId) { + Future> getAll(int listId, [Map queryParameters]) { return client - .get('/lists/$listId/tasks') + .get('/lists/$listId/tasks', queryParameters) .then((list) => convertList(list, (result) => Task.fromJson(result))); } } diff --git a/lib/service/mocked_services.dart b/lib/service/mocked_services.dart index dda39f3..297b518 100644 --- a/lib/service/mocked_services.dart +++ b/lib/service/mocked_services.dart @@ -137,7 +137,7 @@ class MockedTaskService implements TaskService { } @override - Future> getAll(int listId) { + Future> getAll(int listId, [Map queryParameters]) { return Future.value(_tasks.values.toList()); } } diff --git a/lib/service/services.dart b/lib/service/services.dart index 750b2ed..263e4e1 100644 --- a/lib/service/services.dart +++ b/lib/service/services.dart @@ -26,7 +26,7 @@ abstract class TaskService { Future update(Task task); Future delete(int taskId); Future add(int listId, Task task); - Future> getAll(int listId); + Future> getAll(int listId, [Map queryParameters]); } abstract class UserService {