import 'package:vikunja_app/api/client.dart'; import 'package:vikunja_app/api/service.dart'; import 'package:vikunja_app/models/label.dart'; import 'package:vikunja_app/service/services.dart'; class LabelAPIService extends APIService implements LabelService { LabelAPIService(Client client) : super(client); @override Future create(Label label) { return client.put('/labels', body: label.toJSON()).then((response) { if (response == null) return null; return Label.fromJson(response.body); }); } @override Future delete(Label label) { return client.delete('/labels/${label.id}').then((response) { if (response == null) return null; return Label.fromJson(response.body); }); } @override Future get(int labelID) { return client.get('/labels/$labelID').then((response) { if (response == null) return null; return Label.fromJson(response.body); }); } @override Future?> getAll({String? query}) { String params = query == null ? '' : '?s=' + Uri.encodeQueryComponent(query); return client.get('/labels$params').then((response) { if (response == null) return null; return convertList(response.body, (result) => Label.fromJson(result)); }); } @override Future update(Label label) { return client.post('/labels/${label.id}', body: label).then((response) { if (response == null) return null; return Label.fromJson(response.body); }); } }