setStreamMetadata method
Future<WriteResult>
setStreamMetadata(
- StreamState state,
- StreamMetadata metadata, {
- UserCredentials? userCredentials,
- EventStoreClientOperationOptions? operationOptions,
Sets the metadata for stream given by state
.
Returns as WriteResult
when the operation has completed.
If a concurrent write has occurred, a WrongExpectedVersionResult
is returned. Otherwise, WriteSuccessResult is returned.
Implementation
Future<WriteResult> setStreamMetadata(
StreamState state,
StreamMetadata metadata, {
UserCredentials? userCredentials,
EventStoreClientOperationOptions? operationOptions,
}) {
return $runRequest<WriteResult>(() async {
if (!supportsClientStreamingRpc) {
return WriteNotSupportedResult(
state,
'grpc-web does not support client streaming',
);
}
final requests = Stream<AppendReq>.fromIterable([
state.toAppendMetaReq(),
_toAppendReq(EventData(
uuid: UuidV4.newUuid().value.uuid,
type: SystemEvents.StreamMetadata,
data: utf8.encode(json.encode(metadata.toJson())),
)),
]);
final client = await $getClient();
final result = await client.append(
requests,
options: $getOptions(
userCredentials: userCredentials,
operationOptions: operationOptions,
),
);
return WriteResult.from(state, result);
});
}