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