protected ProgressEvent handleRequest()

in alias/src/main/java/software/amazon/kms/alias/ReadHandler.java [29:61]


    protected ProgressEvent<ResourceModel, CallbackContext> handleRequest(
        final AmazonWebServicesClientProxy proxy,
        final ResourceHandlerRequest<ResourceModel> request,
        final CallbackContext callbackContext,
        final ProxyClient<KmsClient> proxyClient,
        final Logger logger) {

        final ResourceModel model = request.getDesiredResourceState();
        final Predicate<ResourceModel> predicate =
            resourceModel -> resourceModel.getAliasName().equals(model.getAliasName());

        String marker = null;
        do {
            request.setNextToken(marker);
            final ProgressEvent<ResourceModel, CallbackContext> listModelsResponse =
                new ListHandler(this.clientBuilder, this.aliasApiHelper,
                    this.eventualConsistencyHandlerHelper)
                    .handleRequest(proxy, request, callbackContext, proxyClient, logger);

            final Optional<ResourceModel> targetResourceModel =
                listModelsResponse.getResourceModels().stream()
                    .filter(predicate).findFirst();
            if (targetResourceModel.isPresent()) {
                return ProgressEvent.defaultSuccessHandler(targetResourceModel.get());
            }
            marker = listModelsResponse.getNextToken();
        } while (!StringUtils.isNullOrEmpty(marker));

        return ProgressEvent.<ResourceModel, CallbackContext>builder()
            .status(OperationStatus.FAILED)
            .errorCode(HandlerErrorCode.NotFound)
            .build();
    }