Add optional query params to api get function
continuous-integration/drone/pr Build is passing Details

This commit is contained in:
kolaente 2020-01-13 23:09:32 +01:00
parent 187337c580
commit 2345a131b7
Signed by: konrad
GPG Key ID: F40E70337AB24C9B
4 changed files with 18 additions and 8 deletions

View File

@ -25,10 +25,20 @@ class Client {
'Content-Type': 'application/json'
};
Future<dynamic> get(String url) {
return http
.get('${this.base}$url', headers: _headers)
.then(_handleResponse);
Future<dynamic> get(String url, [Map<String, String> 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<dynamic> delete(String url) {

View File

@ -28,9 +28,9 @@ class TaskAPIService extends APIService implements TaskService {
}
@override
Future<List<Task>> getAll(int listId) {
Future<List<Task>> getAll(int listId, [Map<String, String> queryParameters]) {
return client
.get('/lists/$listId/tasks')
.get('/lists/$listId/tasks', queryParameters)
.then((list) => convertList(list, (result) => Task.fromJson(result)));
}
}

View File

@ -137,7 +137,7 @@ class MockedTaskService implements TaskService {
}
@override
Future<List<Task>> getAll(int listId) {
Future<List<Task>> getAll(int listId, [Map<String, String> queryParameters]) {
return Future.value(_tasks.values.toList());
}
}

View File

@ -26,7 +26,7 @@ abstract class TaskService {
Future<Task> update(Task task);
Future delete(int taskId);
Future<Task> add(int listId, Task task);
Future<List<Task>> getAll(int listId);
Future<List<Task>> getAll(int listId, [Map<String, String> queryParameters]);
}
abstract class UserService {