DestructiveLocalSyncFromRemoteMixin<T extends OfflineFirstModel> mixin
Provides an extended get
method to support remote syncs that override local data.
For example, if two models exist in the remoteProvider
but three exist in sqliteProvider
and memoryCacheProvider
, the extra model is removed from the local providers when
#get:forceLocalSyncFromRemote
is true or when destructiveLocalSyncFromRemote is invoked.
Using this mixin and its methods requires that the data from the remoteProvider should not be paginated and complete from a single request.
- Superclass constraints
Properties
- autoHydrate → bool
-
Refetch results in the background from remote source when any request is made.
Defaults to
false
.finalinherited - hashCode → int
-
The hash code for this object.
no setterinherited
- logger → Logger
-
User for low-level debugging. The logger name can be defined in the default constructor;
it defaults to
OfflineFirstRepository
.finalinherited - memoryCacheProvider → MemoryCacheProvider
-
The first data source to speed up otherwise taxing queries. Only caches specified models.
finalinherited
- migrationManager → MigrationManager
-
finalinherited
-
remoteProvider
→ Provider<
Model> -
The data source that data is pushed to and from.
finalinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- sqliteProvider → SqliteProvider
-
The local data source utilized before every operation.
finalinherited
Methods
-
delete<
_Model extends _RepositoryModel> (_Model instance, {Query? query}) → Future< bool> -
Remove a model from SQLite and the remoteProvider
inherited
-
destructiveLocalSyncFromRemote<
_Model extends T> ({Query? query}) → Future< List< _Model> > - When invoked, local instances that exist in sqliteProvider and memoryCacheProvider but do not exist in the remoteProvider are destroyed. The data from the remoteProvider should not be paginated and must be complete from a single request.
-
exists<
_Model extends _RepositoryModel> ({Query? query}) → Future< bool> -
Check if a
_Model
is accessible locally. First checks if there's a matching query in memoryCacheProvider and then check sqliteProvider. Does not query remoteProvider.inherited -
get<
_Model extends T> ({bool alwaysHydrate = false, bool hydrateUnexisting = true, bool forceLocalSyncFromRemote = false, Query? query, bool requireRemote = false, bool seedOnly = false}) → Future< List< _Model> > -
Load association from SQLite first; if the
_Model
hasn't been loaded previously, fetch it from remoteProvider and hydrate SQLite. For available query providerArgs seeremoteProvider#get
SqliteProvider.get.override -
getAssociation<
_Model extends _RepositoryModel> (Query query) → Future< List< _Model> ?> -
Used exclusively by the
OfflineFirstAdapter
. If there are no results, returnsnull
.inherited -
getBatched<
_Model extends _RepositoryModel> ({Query? query, int batchSize = 50, bool requireRemote = false, bool seedOnly = false}) → Future< List< _Model> > -
Get all results in series of
batchSize
s (defaults to50
). Useful for large queries or remote results.inherited -
hydrate<
_Model extends _RepositoryModel> ({bool deserializeSqlite = true, Query? query}) → Future< List< _Model> > -
Fetch and store results from remoteProvider into SQLite and the memory cache.
inherited
-
initialize(
) → Future< void> -
Prepare the environment for future repository functions. It is recommended to call this
method within a
StatefulWidget
'sinitState
to ensure it is only invoked once. It is not automatically invoked.inherited -
migrate(
) → Future< void> -
Update SQLite structure with only new migrations.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
reset(
) → Future< void> -
Destroys all local records - specifically, memoryCache and sqliteProvider's
data sources.
inherited
-
storeRemoteResults<
_Model extends _RepositoryModel> (List< _Model> models) → Future<List< _Model> > -
Save response results to SQLite.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
-
upsert<
_Model extends _RepositoryModel> (_Model instance, {Query? query}) → Future< _Model> -
Send a model to remoteProvider and hydrate.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited