public ProgressEvent handleRequest()

in aws-databrew-recipe/src/main/java/software/amazon/databrew/recipe/ListHandler.java [22:60]


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

        final ResourceModel m = request.getDesiredResourceState();
        final DataBrewClient databrewClient = ClientBuilder.getClient();

        final ListRecipesRequest listRecipesRequest = ListRecipesRequest.builder()
                .maxResults(MAX_RESULTS)
                .nextToken(request.getNextToken())
                .recipeVersion(LATEST_WORKING)
                .build();

        final ListRecipesResponse listRecipesResponse;
        try {
            listRecipesResponse = proxy.injectCredentialsAndInvokeV2(listRecipesRequest, databrewClient::listRecipes);
            List<ResourceModel> outputModels = new ArrayList<>();

            if (listRecipesResponse.recipes() != null){
                listRecipesResponse.recipes().forEach(recipe ->{
                    ResourceModel outputModel = ModelHelper.constructModel(recipe);
                    outputModels.add(outputModel);
                });
            }

            logger.log(String.format("%s List Successfully", ResourceModel.TYPE_NAME));
            return ProgressEvent.<ResourceModel, CallbackContext>builder()
                    .resourceModels(outputModels)
                    .nextToken(request.getNextToken())
                    .status(OperationStatus.SUCCESS)
                    .build();

        } catch (DataBrewException ex) {
            logger.log(String.format("%s List Failed", ResourceModel.TYPE_NAME));
            return ProgressEvent.defaultFailureHandler(ex, HandlerErrorCode.ServiceInternalError);
        }
    }