OID4VCIIssuerMetadata.fromJson constructor

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

Creates an OID4VCIIssuerMetadata instance from a JSON map.

json - The JSON map containing the issuer metadata.

Implementation

factory OID4VCIIssuerMetadata.fromJson(Map<String, dynamic> json) {
  final tokenEndpoint =
      json[_IssuerMetadataKey.tokenEndpoint.value] as String?;
  final credentialEndpoint =
      json[_IssuerMetadataKey.credentialEndpoint.value] as String?;

  if (tokenEndpoint == null) {
    Error.throwWithStackTrace(
      TdkException(
        message:
            'Failed to parse issuer metadata, missing required tokenEndpoint',
        code: TdkExceptionType.failedToLoadIssuerMetadata.code,
      ),
      StackTrace.current,
    );
  }

  if (credentialEndpoint == null) {
    Error.throwWithStackTrace(
      TdkException(
        message:
            'Failed to parse issuer metadata, missing required credentialEndpoint',
        code: TdkExceptionType.failedToLoadIssuerMetadata.code,
      ),
      StackTrace.current,
    );
  }

  return OID4VCIIssuerMetadata(
    tokenEndpoint: tokenEndpoint,
    credentialEndpoint: credentialEndpoint,
    returnUris: json[_IssuerMetadataKey.returnUris.value] != null
        ? List<String>.from(json[_IssuerMetadataKey.returnUris.value] as List)
        : [],
  );
}