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;
}