decode method

  1. @override
ContentBlock decode(
  1. Object? value
)
override

Decodes a JSON-compatible wire value.

Implementation

@override
ContentBlock decode(Object? value) {
  final payload = decodeAcpObject(value);
  final tag = decodeAcpString(payload['type']);
  switch (tag) {
    case 'text':
      return ContentBlockText(textContentCodec.decode(payload));
    case 'image':
      return ContentBlockImage(imageContentCodec.decode(payload));
    case 'audio':
      return ContentBlockAudio(audioContentCodec.decode(payload));
    case 'resource_link':
      return ContentBlockResourceLink(resourceLinkCodec.decode(payload));
    case 'resource':
      return ContentBlockResource(embeddedResourceCodec.decode(payload));
    default:
      return ContentBlockCustom(
        discriminator: tag,
        payload: AcpJsonObject.fromObject(payload),
      );
  }
}