convertToMetadata static method
Implementation
static StreamMetadata convertToMetadata(ResolvedEvent event) {
final metadata = json.decode(utf8.decode(
event.event.data,
)) as Map<String, dynamic>;
return StreamMetadata(
acl: metadata.mapAt<StreamAcl>(
SystemMetadata.Acl,
(dynamic value) {
final acl = value as Map<String, dynamic>;
return StreamAcl(
readRoles: toRoles(SystemMetadata.AclRead, acl),
writeRoles: toRoles(SystemMetadata.AclWrite, acl),
deleteRoles: toRoles(SystemMetadata.AclDelete, acl),
metaReadRoles: toRoles(SystemMetadata.AclMetaRead, acl),
metaWriteRoles: toRoles(SystemMetadata.AclMetaWrite, acl),
);
},
),
maxCount: metadata.mapAt<int>(
SystemMetadata.MaxCount,
(dynamic value) => Int64.parseInt(value.toString()).toInt(),
),
maxAge: metadata.mapAt<Duration>(
SystemMetadata.MaxAge,
(dynamic value) => Duration(
seconds: Int64.parseInt(value.toString()).toInt(),
),
),
cacheControl: metadata.mapAt<Duration>(
SystemMetadata.CacheControl,
(dynamic value) => Duration(
seconds: Int64.parseInt(value.toString()).toInt(),
),
),
truncateBefore: metadata.mapAt<StreamPosition>(
SystemMetadata.TruncateBefore,
(dynamic value) => StreamPosition.fromInt64(Int64.parseInt(
value.toString(),
)),
),
custom: metadata
..removeWhere((key, dynamic _) => SystemMetadata.fields.contains(key)),
);
}