CreateMessageResult.fromJson constructor

CreateMessageResult.fromJson(
  1. Map<String, dynamic> json
)

Implementation

factory CreateMessageResult.fromJson(Map<String, dynamic> json) {
  final contentMap = json['content'] as Map<String, dynamic>;
  final contentType = contentMap['type'] as String;

  Content content;
  switch (contentType) {
    case 'text':
      content = TextContent(text: contentMap['text']);
      break;
    case 'image':
      content = ImageContent(
        url: contentMap['url'],
        mimeType: contentMap['mimeType'],
      );
      break;
    case 'resource':
      content = ResourceContent(
          uri: contentMap['uri'],
          text: contentMap['text'],
          blob: contentMap['blob']
      );
      break;
    default:
      throw FormatException('Unknown content type: $contentType');
  }

  return CreateMessageResult(
    model: json['model'],
    stopReason: json['stopReason'],
    role: json['role'],
    content: content,
  );
}