enqueue method
Future<String>
enqueue({
- String? mutationType,
- String? tag,
- required Map<
String, dynamic> payload, - ConflictPolicy conflictPolicy = ConflictPolicy.clientWins,
Enqueues an optimistic mutation when disconnected.
Returns the unique generated mutation identifier.
Example:
final id = await queue.enqueue(
mutationType: 'send_message',
payload: {'text': 'Hello world'},
);
Implementation
Future<String> enqueue({
String? mutationType,
String? tag,
required Map<String, dynamic> payload,
ConflictPolicy conflictPolicy = ConflictPolicy.clientWins,
}) async {
final type = mutationType ?? tag ?? 'unknown';
final id = '${DateTime.now().microsecondsSinceEpoch}';
final mutation = QueuedMutation(
id: id,
mutationType: type,
payload: payload,
createdAt: DateTime.now(),
conflictPolicy: conflictPolicy,
);
_queue.add(mutation);
logger.info('OfflineMutationQueue: Queued mutation [$type] (id: $id). Queue depth: ${_queue.length}');
await persist();
return id;
}