+ private Map<String, ACI> getRegisteredUsersV1(final Set<String> numbers) throws IOException {
+ final Map<String, ACI> registeredUsers;
+ try {
+ registeredUsers = dependencies.getAccountManager()
+ .getRegisteredUsers(ServiceConfig.getIasKeyStore(),
+ numbers,
+ serviceEnvironmentConfig.getCdsMrenclave());
+ } catch (Quote.InvalidQuoteFormatException | UnauthenticatedQuoteException | SignatureException |
+ UnauthenticatedResponseException | InvalidKeyException | NumberFormatException e) {
+ throw new IOException(e);
+ }
+ return registeredUsers;
+ }
+
+ private Map<String, ACI> getRegisteredUsersV2(final Set<String> numbers, boolean useCompat) throws IOException {
+ // Only partial refresh is implemented here
+ final CdsiV2Service.Response response;
+ try {
+ response = dependencies.getAccountManager()
+ .getRegisteredUsersWithCdsi(Set.of(),
+ numbers,
+ account.getRecipientStore().getServiceIdToProfileKeyMap(),
+ useCompat,
+ Optional.empty(),
+ serviceEnvironmentConfig.getCdsiMrenclave(),
+ token -> {
+ // Not storing for partial refresh
+ });
+ } catch (NumberFormatException e) {
+ throw new IOException(e);
+ }
+ logger.debug("CDSI request successful, quota used by this request: {}", response.getQuotaUsedDebugOnly());
+
+ final var registeredUsers = new HashMap<String, ACI>();
+ response.getResults().forEach((key, value) -> {
+ if (value.getAci().isPresent()) {
+ registeredUsers.put(key, value.getAci().get());
+ }
+ });
+ return registeredUsers;
+ }
+