public ProgressEvent handleRequest()

in aws-applicationinsights-application/src/main/java/software/amazon/applicationinsights/application/ListHandler.java [19:53]


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

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

        logger.log("List Handler called");

        ListApplicationsResponse listApplicationsResponse;
        try {
            listApplicationsResponse = HandlerHelper.listApplicationInsightsApplications(request.getNextToken(), proxy, applicationInsightsClient);
        } catch (Exception ex) {
            logger.log(String.format("listApplicationInsightsApplications failed with exception %s", ex.getMessage()));
            return ProgressEvent.defaultFailureHandler(ex, ExceptionMapper.mapToHandlerErrorCode(ex));
        }

        request.setNextToken(listApplicationsResponse.nextToken());

        try {
            listApplicationsResponse.applicationInfoList().stream()
                    .forEach(applicationInfo ->
                            models.add(HandlerHelper.generateReadModel(applicationInfo.resourceGroupName(), null, request, proxy, applicationInsightsClient)));
        } catch (Exception ex) {
            logger.log(String.format("generateReadModel failed with exception %s", ex.getMessage()));
            return ProgressEvent.defaultFailureHandler(ex, ExceptionMapper.mapToHandlerErrorCode(ex));
        }

        return ProgressEvent.<ResourceModel, CallbackContext>builder()
                .resourceModels(models)
                .nextToken(request.getNextToken())
                .status(OperationStatus.SUCCESS)
                .build();
    }