protected ProgressEvent handleRequest()

in aws-amplify-app/src/main/java/software/amazon/amplify/app/CreateHandler.java [21:56]


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

        this.logger = logger;
        final ResourceModel model = request.getDesiredResourceState();
        logger.log("INFO: requesting with model: " + model);

        // Make sure the user isn't trying to assign values to read-only properties
        String disallowedVal = checkReadOnlyProperties(model);
        if (disallowedVal != null) {
            throw new CfnInvalidRequestException(String.format("Attempted to provide value to a read-only property: %s", disallowedVal));
        }

        return ProgressEvent.progress(model, callbackContext)
            .then(progress ->
                proxy.initiate("AWS-Amplify-App::Create", proxyClient, model, callbackContext)
                    .translateToServiceRequest(Translator::translateToCreateRequest)
                    .makeServiceCall((createAppRequest, proxyInvocation) -> {
                        CreateAppResponse createAppResponse = (CreateAppResponse) ClientWrapper.execute(
                                proxy,
                                createAppRequest,
                                proxyInvocation.client()::createApp,
                                ResourceModel.TYPE_NAME, model.getArn(),
                                logger
                        );
                        setResourceModelId(model, createAppResponse.app());
                        return createAppResponse;
                    })
                    .progress()
                )
            .then(progress -> new ReadHandler().handleRequest(proxy, request, callbackContext, proxyClient, logger));
    }