protected ProgressEvent handleRequest()

in aws-sns-topicpolicy/src/main/java/software/amazon/sns/topicpolicy/UpdateHandler.java [22:48]


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

        this.logger = logger;
        final ResourceModel model = request.getDesiredResourceState();
        // primary id must be set up
        if (StringUtils.isNullOrEmpty(model.getId())) {
            throw new CfnNotFoundException(ResourceModel.TYPE_NAME, "Cannot update a resource which does not exist.");
        }
        // Check if invalid request
        if (CollectionUtils.isNullOrEmpty(model.getPolicyDocument())
                || CollectionUtils.isNullOrEmpty(model.getTopics()))
        {
            throw new CfnInvalidRequestException(
                    String.format("Invalid create request, policy document & topics cannot be null or empty : %s)",
                            model.toString()));
        }

        return ProgressEvent.progress(model, callbackContext)
                .then(progress -> doCreate(proxy, proxyClient, request, progress, ACTION_CREATED, UPDATE_HANDLER, logger))
                .then(progress -> doDelete(proxy, proxyClient, request, progress))
                .then(progress -> ProgressEvent.success(model, callbackContext));
    }