replace method
Replaces the value of an existing document.
Failing if the document does not exist.
Implementation
Future<MutationResult> replace(
String key,
Object? value, [
ReplaceOptions? options,
]) async {
options ??= const ReplaceOptions();
final id = _documentId(key);
final expiry = options.expiry ?? Duration.zero;
final cas = options.cas ?? InternalCas.zero;
final timeout = _mutationTimeout(options);
final encodedData = _encodeDocument(options, value);
final response = options.usesLegacyDurability
? await _connection.replaceWithLegacyDurability(
ReplaceWithLegacyDurability(
id: id,
value: encodedData.bytes,
flags: encodedData.flags,
expiry: expiry.inSeconds,
preserveExpiry: options.preserveExpiry,
cas: cas,
timeout: timeout,
persistTo: options.durabilityPersistTo,
replicateTo: options.durabilityReplicateTo,
partition: 0,
opaque: 0,
),
)
: await _connection.replace(
ReplaceRequest(
id: id,
value: encodedData.bytes,
flags: encodedData.flags,
expiry: expiry.inSeconds,
preserveExpiry: options.preserveExpiry,
cas: cas,
timeout: timeout,
durabilityLevel: options.durabilityLevel,
partition: 0,
opaque: 0,
),
);
return MutationResult(
cas: response.cas,
token: response.token,
);
}