update method
Overwrites a resource.
Implementation
@override
Future<Data?> update(id, data, [Map<String, dynamic>? params]) async {
var url = baseUrl.replace(
path: _p.join(baseUrl.path, id.toString()),
queryParameters: _buildQuery(params));
var response =
await app.sendUnstreamed('POST', url, _writeHeaders, makeBody(data));
try {
if (_invalid(response)) {
if (_onUpdated.hasListener) {
_onUpdated.addError(failure(response));
} else {
throw failure(response);
}
}
var r = deserialize(json.decode(response.body));
_onUpdated.add(r);
return r;
} catch (e, st) {
if (_onUpdated.hasListener) {
_onUpdated.addError(e, st);
} else {
_log.severe(st);
throw failure(response, error: e, stack: st);
}
}
return null;
}