protected ProgressEvent handleRequest()

in aws-amplifyuibuilder-theme/src/main/java/software/amazon/amplifyuibuilder/theme/CreateHandler.java [15:45]


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

        this.logger = logger;
        ResourceModel model = request.getDesiredResourceState();

        return ProgressEvent.progress(model, callbackContext)
            .then(progress ->
                proxy.initiate("AWS-AmplifyUIBuilder-Theme::Create", proxyClient,progress.getResourceModel(), progress.getCallbackContext())
                    .translateToServiceRequest(Translator::translateToCreateRequest)
                    .makeServiceCall((createThemeRequest, proxyInvocation) -> {
                      CreateThemeResponse response = (CreateThemeResponse) ClientWrapper.execute(
                          proxy,
                          createThemeRequest,
                          proxyInvocation.client()::createTheme,
                          ResourceModel.TYPE_NAME,
                          model.getId(),
                          logger
                      );
                      // Set ID for the following read request
                      model.setId(response.entity().id());
                      return response;
                    })
                    .progress()
                )
            .then(progress -> new ReadHandler().handleRequest(proxy, request, callbackContext, proxyClient, logger));
    }