fromJsonString static method

Future<ReclaimProofRequest> fromJsonString(
  1. String jsonString
)

Implementation

static Future<ReclaimProofRequest> fromJsonString(String jsonString) async {
  try {
    final Map<String, dynamic> json = jsonDecode(jsonString);

    validateFunctionParams([
      ParamValidation(
          paramName: 'applicationId',
          input: json['applicationId'],
          isString: true),
      ParamValidation(
          paramName: 'providerId', input: json['providerId'], isString: true),
      ParamValidation(
          paramName: 'signature', input: json['signature'], isString: true),
      ParamValidation(
          paramName: 'sessionId', input: json['sessionId'], isString: true),
      ParamValidation(
          paramName: 'sdkVersion', input: json['sdkVersion'], isString: true),
      ParamValidation(
          paramName: 'timeStamp', input: json['timeStamp'], isString: true),
    ], 'fromJsonString');

    // parse the requested proof
    final requestedProof = RequestedProof.fromJson(json['requestedProof']);

    validateRequestedProof(requestedProof);

    if (json['redirectUrl'] != null) {
      validateURL(json['redirectUrl'], 'fromJsonString');
    }

    if (json['appCallbackUrl'] != null) {
      validateURL(json['appCallbackUrl'], 'fromJsonString');
    }

    if (json['context'] != null) {
      final context = Context.fromJson(json['context']);
      validateContext(context);
    }

    final proofRequestInstance = ReclaimProofRequest._(
      json['applicationId'],
      json['providerId'],
      json['options'] != null
          ? ProofRequestOptions.fromJson(json['options'])
          : null,
    );

    proofRequestInstance._sessionId = json['sessionId'];
    proofRequestInstance._context = Context.fromJson(json['context']);
    proofRequestInstance._requestedProof =
        RequestedProof.fromJson(json['requestedProof']);
    proofRequestInstance._appCallbackUrl = json['appCallbackUrl'];
    proofRequestInstance._sdkVersion = json['sdkVersion'];
    proofRequestInstance._redirectUrl = json['redirectUrl'];
    proofRequestInstance._signature = json['signature'];
    proofRequestInstance._timeStamp = json['timeStamp'];

    return proofRequestInstance;
  } catch (error) {
    logger.info('Failed to parse JSON string in fromJsonString: $error');
    throw invalidParamError('Invalid JSON string provided to fromJsonString');
  }
}