upsert<TModel extends OfflineFirstWithRestModel> method
Future<TModel>
upsert<TModel extends OfflineFirstWithRestModel>(
- TModel instance, {
- OfflineFirstUpsertPolicy policy = OfflineFirstUpsertPolicy.optimisticLocal,
- Query? query,
- bool throwOnReattemptStatusCodes = false,
throwOnReattemptStatusCodes
- when true
, the repository will throw an
OfflineFirstException
for responses that include a code within reattemptForStatusCodes
.
Defaults false
.
Implementation
@override
Future<TModel> upsert<TModel extends OfflineFirstWithRestModel>(
TModel instance, {
OfflineFirstUpsertPolicy policy = OfflineFirstUpsertPolicy.optimisticLocal,
Query? query,
bool throwOnReattemptStatusCodes = false,
}) async {
try {
return await super.upsert<TModel>(instance, policy: policy, query: query);
} on RestException catch (e) {
logger.warning('#upsert rest failure: $e');
// since we know we'll reattempt this request, an exception does not need to be reported
if (policy == OfflineFirstUpsertPolicy.requireRemote) {
throw OfflineFirstException(e);
}
return instance;
}
}