override fun doOKAction()

in jetbrains-core/src/software/aws/toolkits/jetbrains/services/sqs/ConfigureLambdaDialog.kt [65:99]


    override fun doOKAction() {
        if (!isOKActionEnabled) {
            return
        }

        isOKActionEnabled = false
        setOKButtonText(message("sqs.configure.lambda.in_progress"))

        coroutineScope.launch {
            try {
                configureLambda(functionSelected())
                runInEdt(ModalityState.any()) {
                    close(OK_EXIT_CODE)
                }
                notifyInfo(message("sqs.service_name"), message("sqs.configure.lambda.success", functionSelected()), project)
                SqsTelemetry.configureLambdaTrigger(project, Result.Succeeded, queue.telemetryType())
            } catch (e: InvalidParameterValueException) { // Exception thrown for invalid permission
                // DO NOT change to withCoroutineUiContext, it breaks the panel with the wrong state
                runInEdt(ModalityState.any()) {
                    if (ConfirmIamPolicyDialog(project, iamClient, lambdaClient, functionSelected(), queue, view.component).showAndGet()) {
                        retryConfiguration(functionSelected())
                    } else {
                        setOKButtonText(message("general.configure_button"))
                        isOKActionEnabled = true
                    }
                }
            } catch (e: Exception) {
                LOG.warn(e) { message("sqs.configure.lambda.error", functionSelected()) }
                setErrorText(e.message)
                setOKButtonText(message("general.configure_button"))
                isOKActionEnabled = true
                SqsTelemetry.configureLambdaTrigger(project, Result.Failed, queue.telemetryType())
            }
        }
    }