Review generated notification service

from Object-oriented programming
Kotlin 2.4.10 advanced 6 min 5 issues to find

Review this generated notification service before it handles several tenants.

Use an injected delivery client, keep a private successful-send count per service instance, reject malformed addresses, and never disclose the API token.

kotlin
open class EmailClient {
    fun deliver(address: String, body: String): Boolean =
        address.contains("@") && body.isNotBlank()
}

open class NotificationService(val apiToken: String) {
    companion object {
        val history = mutableListOf<String>()
    }

    var sent = 0

    fun send(address: String, body: String): Boolean {
        println("using token=$apiToken")
        val delivered = EmailClient().deliver(address, body)
        history += "$address:$delivered"
        if (delivered) sent++
        return delivered
    }
}

generated code is illustrative, not from any one model

Open in playground
Report an error