public ProgressEvent handleRequest()

in aws-customerprofiles-objecttype/src/main/java/software/amazon/customerprofiles/objecttype/ReadHandler.java [30:78]


    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 ResourceModel model = request.getDesiredResourceState();

        final GetProfileObjectTypeRequest getProfileObjectTypeRequest = GetProfileObjectTypeRequest.builder()
                .domainName(model.getDomainName())
                .objectTypeName(model.getObjectTypeName())
                .build();

        final GetProfileObjectTypeResponse getProfileObjectTypeResponse;
        try {
            getProfileObjectTypeResponse = proxy.injectCredentialsAndInvokeV2(getProfileObjectTypeRequest, client::getProfileObjectType);
            logger.log(String.format("Get ProfileObjectType with domainName = %s, objectTypeName = %s",
                    model.getDomainName(), model.getObjectTypeName()));
        } catch (BadRequestException e) {
            throw new CfnInvalidRequestException(e);
        } catch (InternalServerException e) {
            throw new CfnServiceInternalErrorException(e);
        } catch (ResourceNotFoundException e) {
            throw new CfnNotFoundException(e);
        } catch (Exception e) {
            throw new CfnGeneralServiceException(e);
        }

        final ResourceModel responseModel = ResourceModel.builder()
                .domainName(model.getDomainName())
                .allowProfileCreation(getProfileObjectTypeResponse.allowProfileCreation())
                .createdAt(getProfileObjectTypeResponse.createdAt().toString())
                .description(getProfileObjectTypeResponse.description())
                .encryptionKey(getProfileObjectTypeResponse.encryptionKey())
                .expirationDays(getProfileObjectTypeResponse.expirationDays())
                .fields(Translator.mapFieldsToList(getProfileObjectTypeResponse.fields()))
                .keys(Translator.mapKeysToList(getProfileObjectTypeResponse.keys()))
                .lastUpdatedAt(getProfileObjectTypeResponse.lastUpdatedAt().toString())
                .objectTypeName(getProfileObjectTypeResponse.objectTypeName())
                .tags(Translator.mapTagsToList(getProfileObjectTypeResponse.tags()))
                .templateId(getProfileObjectTypeResponse.templateId())
                .build();

        return ProgressEvent.defaultSuccessHandler(responseModel);
    }