protected ProgressEvent handleRequest()

in aws-memorydb-user/src/main/java/software/amazon/memorydb/user/DeleteHandler.java [15:47]


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

        this.logger = logger;

        return ProgressEvent.progress(request.getDesiredResourceState(), callbackContext)
            .then(progress ->
                proxy.initiate("AWS-MemoryDB-User::Delete", proxyClient, progress.getResourceModel(),
                    progress.getCallbackContext())
                    .translateToServiceRequest(Translator::translateToDeleteRequest)
                    .backoffDelay(STABILIZATION_DELAY)
                    .makeServiceCall((modelRequest, proxyInvocation) -> {
                        return handleExceptions(() -> {
                            try {
                                return proxyInvocation.injectCredentialsAndInvokeV2(modelRequest,
                                    proxyInvocation.client()::deleteUser);
                            } catch (final InvalidUserStateException e) {
                                //Out of band flow
                                return null;
                            }
                        });
                    })
                    .stabilize(
                        (deleteUserRequest, deleteUserResponse, proxyInvocation, model, context) -> isUserDeleted(
                            proxyInvocation, model, logger))
                    .done((deleteUserRequest, deleteUserResponse, proxyInvocation, model, context) -> ProgressEvent
                        .defaultSuccessHandler(null))
            );
    }