public ProgressEvent handleRequest()

in aws-transfer-workflow/src/main/java/software/amazon/transfer/workflow/ListHandler.java [31:73]


    public ProgressEvent<ResourceModel, CallbackContext> handleRequest(
        final AmazonWebServicesClientProxy proxy,
        final ResourceHandlerRequest<ResourceModel> request,
        final CallbackContext callbackContext,
        final Logger logger) {

        if (this.client == null){
            this.client = ClientBuilder.getClient();
        }

        final List<ResourceModel> models = new ArrayList<>();

        ListWorkflowsRequest listWorkflowsRequest = ListWorkflowsRequest.builder()
                .maxResults(10)
                .nextToken(request.getNextToken())
                .build();

        try {
            ListWorkflowsResponse response =
                    proxy.injectCredentialsAndInvokeV2(listWorkflowsRequest, client::listWorkflows);

            response.workflows().forEach(listedWorkflow -> {
                ResourceModel model = ResourceModel.builder()
                        .arn(listedWorkflow.arn())
                        .description(listedWorkflow.description())
                        .workflowId(listedWorkflow.workflowId())
                        .build();
                models.add(model);
            });

            return ProgressEvent.<ResourceModel, CallbackContext>builder()
                    .resourceModels(models)
                    .nextToken(response.nextToken())
                    .status(OperationStatus.SUCCESS)
                    .build();
        } catch (InvalidRequestException e) {
            throw new CfnInvalidRequestException(listWorkflowsRequest.toString(), e);
        } catch (InternalServiceErrorException e) {
            throw new CfnServiceInternalErrorException("listWorkflow", e);
        } catch (TransferException e) {
            throw new CfnGeneralServiceException(e.getMessage(), e);
        }
    }