override fun handleRequest()

in aws-iotcoredeviceadvisor-suitedefinition/src/main/kotlin/software/amazon/iotcoredeviceadvisor/suitedefinition/ReadHandler.kt [16:45]


    override fun handleRequest(
        proxy: AmazonWebServicesClientProxy,
        request: ResourceHandlerRequest<ResourceModel>,
        callbackContext: CallbackContext?,
        logger: Logger): ProgressEvent<ResourceModel, CallbackContext?> {

        logger.log("Read SuiteDefinition Request: $request")
        val deviceAdvisorClient = ClientBuilder.getDeviceAdvisorClient()

        val model = request.desiredResourceState
        val suiteDefinitionId = model.suiteDefinitionId
        if (suiteDefinitionId.isNullOrEmpty()) {
            throw ResourceNotFoundException(ResourceModel.TYPE_NAME, null)
        }
        val getSuiteDefinitionRequest = if (model.suiteDefinitionVersion.isNullOrBlank()) {
            GetSuiteDefinitionRequest.builder()
                .suiteDefinitionId(model.suiteDefinitionId).build()
        } else {
            GetSuiteDefinitionRequest.builder()
                .suiteDefinitionId(model.suiteDefinitionId)
                .suiteDefinitionVersion(model.suiteDefinitionVersion).build()
        }

        return try {
            val getSuiteDefinitionResponse: GetSuiteDefinitionResponse = proxy.injectCredentialsAndInvokeV2(getSuiteDefinitionRequest, deviceAdvisorClient::getSuiteDefinition)
            ProgressEvent.defaultSuccessHandler(convertFromGetSuiteDefinitionResponse(getSuiteDefinitionResponse))
        } catch (e: Exception) {
            ExceptionHandler.handleDeviceAdvisorException(e)
        }
    }