public CompletableFuture createAssessmentAsync()

in src/main/java/com/google/recaptcha/pld/pld/services/RecaptchaContext.java [134:168]


  public CompletableFuture<VerificationResponse> createAssessmentAsync(
      PasswordCheckVerification clientEncryptedCredentials, Assessment requestAssessment) {
    if (clientEncryptedCredentials.getLookupHashPrefix() == null
        || clientEncryptedCredentials.getEncryptedUserCredentialsHash() == null) {
      throw new IllegalArgumentException(Messages.INTERNAL_CREDENTIALS_ARE_NULL_MESSAGE);
    }
    return CompletableFuture.supplyAsync(
        () -> {
          PrivatePasswordLeakVerification pldVerification =
              PrivatePasswordLeakVerification.newBuilder()
                  .setLookupHashPrefix(
                      ByteString.copyFrom(clientEncryptedCredentials.getLookupHashPrefix()))
                  .setEncryptedUserCredentialsHash(
                      ByteString.copyFrom(
                          clientEncryptedCredentials.getEncryptedUserCredentialsHash()))
                  .build();

          try {
            Assessment mergeedRequest =
                requestAssessment.toBuilder()
                    .setPrivatePasswordLeakVerification(pldVerification)
                    .build();

            Assessment responseAssessment =
                recaptchaClient.createAssessment(
                    "projects/" + config.getProjectId(), mergeedRequest);

            return new VerificationResponse(responseAssessment, clientEncryptedCredentials);
          } catch (ApiException apiException) {
            throw convertGrpcException(apiException);
          } catch (Exception e) {
            throw e;
          }
        });
  }