generateRequestedProofs function

RequestedProofs generateRequestedProofs(
  1. ProviderV2 provider,
  2. Context context,
  3. String callbackUrl,
  4. String sessionId,
  5. bool redirectUser,
)

Implementation

RequestedProofs generateRequestedProofs(ProviderV2 provider, Context context,
    String callbackUrl, String sessionId, bool redirectUser) {
  Map<String, String?> providerParams = {};
  for (var rs in provider.responseSelections) {
    final keyParamMatches = RegExp(r'{{(.*?)}}').allMatches(rs.responseMatch);
    for (var match in keyParamMatches) {
      providerParams[match.group(1)!] = null;
    }
  }

  Metadata metadata = Metadata(
    name: Uri.encodeComponent(provider.name),
    logoUrl: provider.logoUrl,
    proofCardTitle: provider.proofCardTitle,
    proofCardText: provider.proofCardText,
  );

  Payload payload = Payload(
      metadata: metadata,
      url: provider.url,
      urlType: provider.urlType,
      method: provider.method ?? '',
      login: Login(url: provider.loginUrl),
      responseSelections: provider.responseSelections,
      injectionType: provider.injectionType,
      customInjection: provider.customInjection ?? '',
      disableRequestReplay: provider.disableRequestReplay,
      bodySniff: provider.bodySniff,
      geoLocation: provider.geoLocation,
      matchType: provider.matchType,
      verificationType: provider.verificationType,
      parameters: providerParams);

  List<RequestedClaim> claims = [
    RequestedClaim(
      provider: Uri.encodeComponent(provider.name),
      context: json.encode(context.toJson()),
      httpProviderId: provider.httpProviderId,
      payload: payload,
    ),
  ];

  RequestedProofs requestedProofs = RequestedProofs(
    id: sessionId,
    sessionId: sessionId,
    name: redirectUser ? "web-r-SDK" : 'web-SDK',
    callbackUrl: callbackUrl,
    claims: claims,
  );

  return requestedProofs;
}