import 'dart:async'; import 'package:vikunja_app/api/client.dart'; import 'package:vikunja_app/api/response.dart'; import 'package:vikunja_app/api/service.dart'; import 'package:vikunja_app/models/task.dart'; import 'package:vikunja_app/service/services.dart'; class TaskAPIService extends APIService implements TaskService { TaskAPIService(Client client) : super(client); @override Future add(int listId, Task task) { return client .put('/lists/$listId', body: task.toJSON()) .then((response) => Task.fromJson(response.body)); } @override Future get(int listId) { return client.get('/list/$listId/tasks'); } @override Future delete(int taskId) { return client.delete('/tasks/$taskId'); } @override Future update(Task task) { return client .post('/tasks/${task.id}', body: task.toJSON()) .then((response) => Task.fromJson(response.body)); } @override Future> getAll() { return client .get('/tasks/all') .then((value) => value.body.map((taskJson) => Task.fromJson(taskJson)).toList()); } @override Future getAllByList(int listId, [Map> queryParameters]) { return client.get('/lists/$listId/tasks', queryParameters).then( (response) => new Response( convertList(response.body, (result) => Task.fromJson(result)), response.statusCode, response.headers)); } @override Future> getByOptions(TaskServiceOptions options) { String optionString = options.getOptions(); return client .get('/tasks/all?$optionString') .then((value) { return value.body.map((taskJson) => Task.fromJson(taskJson)).toList(); }); } @override // TODO: implement maxPages int get maxPages => maxPages; }