convertToMetadata static method

StreamMetadata convertToMetadata(
  1. ResolvedEvent event
)

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)),
  );
}