override fun describeConnection()

in src/main/kotlin/jetbrains/buildServer/notification/slackNotifier/SlackConnection.kt [28:66]


    override fun describeConnection(connection: OAuthConnectionDescriptor): String {
        val builder = StringBuilder()

        val displayName = connection.connectionDisplayName
        if (displayName.isEmpty()) {
            builder.append("Connection to a single Slack workspace")
        } else {
            builder.append("Connection name: $displayName")
        }

        val rawLimitValue = connection.parameters["serviceMessageMaxNotificationsPerBuild"]
        if (rawLimitValue != null) {
            val limit: Long? = rawLimitValue.toLongOrNull()
            if (limit != null && limit != 0L) {
                builder
                    .append(System.lineSeparator())
                    .append("Service message notifications are enabled")
                    .append(System.lineSeparator())

                when (limit) {
                    -1L -> {
                        builder.append("Each build may produce unlimited number of notifications")
                    }
                    else -> {
                        builder.append("Each build may produce $limit ${StringUtil.pluralize("notification", limit.toInt())}")
                    }
                }

                val allowedDomains = connection.parameters["serviceMessageAllowedDomainNames"] ?: ""
                if (allowedDomains.isNotEmpty()) {
                    builder
                        .append(System.lineSeparator())
                        .append("Allowed domain name patterns: $allowedDomains")
                }
            }
        }

        return builder.toString()
    }