protected ProgressEvent handleRequest()

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


  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();
    logger.log("CreateHandler invoked");
    return ProgressEvent.progress(model, callbackContext)
        .then(progress ->
            proxy
                .initiate(
                    "AWS-AmplifyUIBuilder-Component::Create",
                    proxyClient,
                    request.getDesiredResourceState(),
                    callbackContext
                )
                .translateToServiceRequest(Translator::translateToCreateRequest)
                .makeServiceCall((createComponentRequest, proxyInvocation) -> {
                  CreateComponentResponse response = createComponent(createComponentRequest, proxyInvocation);
                  logger.log("Successfully created component with id: " + response.entity().id());
                  // Set the ID from the created component to do a read request next
                  model.setId(response.entity().id());
                  return response;
                })
                .progress()
        )
        .then(progress ->
            new ReadHandler()
                .handleRequest(proxy, request, callbackContext, proxyClient, logger));
  }