getStatesWithResponses method

Future<Map<String, ({String stateData, String stateResponse})>> getStatesWithResponses()

Implementation

Future<Map<String, ({String stateData, String stateResponse})>>
    getStatesWithResponses() async {
  final responseKeys = await getAllKeys(OidcStoreNamespace.stateResponse);
  if (responseKeys.isEmpty) {
    return {};
  }
  final allResponses =
      await getMany(OidcStoreNamespace.stateResponse, keys: responseKeys);
  if (allResponses.isEmpty) {
    return {};
  }
  final allData = await getMany(
    OidcStoreNamespace.state,
    keys: allResponses.keys.toSet(),
  );
  allResponses.removeWhere((key, value) => !allData.containsKey(key));
  return allResponses.map(
    (key, value) => MapEntry(
      key,
      (stateData: allData[key]!, stateResponse: value),
    ),
  );
}