Token.fromJson constructor

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

Implementation

factory Token.fromJson(Map<String, dynamic> json) {
  if (json['header'] != null && json['header'] is Map<String, dynamic>) {
    return Token(
      data: json['data']?.toString() ?? '',
      signature: json['signature']?.toString() ?? '',
      header: Header.fromJson(json['header'] as Map<String, dynamic>),
      version: json['version']?.toString() ?? '',
    );
  }
  // If the parsed map already contains a raw token string in `data`, keep it
  // as-is so `Token.data` stores the raw token (common when the platform
  // returns a non-JSON token string).
  if (json['data'] is String) {
    return Token(
      data: json['data'] as String,
      signature: json['signature']?.toString() ?? '',
      header: null,
      version: json['version']?.toString() ?? json['protocolVersion']?.toString() ?? '',
      protocolVersion: json['protocolVersion']?.toString(),
      intermediateSigningKey: json['intermediateSigningKey'] is Map<String, dynamic>
          ? Map<String, dynamic>.from(json['intermediateSigningKey'] as Map<String, dynamic>)
          : null,
      signedMessage: json['signedMessage']?.toString(),
    );
  }

  return Token(
    data: jsonEncode(json),
    signature: json['signature']?.toString() ?? '',
    header: null,
    version: json['protocolVersion']?.toString() ?? '',
    protocolVersion: json['protocolVersion']?.toString(),
    intermediateSigningKey: json['intermediateSigningKey'] is Map<String, dynamic>
        ? Map<String, dynamic>.from(json['intermediateSigningKey'] as Map<String, dynamic>)
        : null,
    signedMessage: json['signedMessage']?.toString(),
  );
}