Review this generated alert sender against the stated task.
Expose the smallest sender boundary, reject empty messages, never log credentials, and return a nil interface when sending is disabled.
Go
type Sender interface {
Send(ctx context.Context, message string) error
Health() error
Close() error
}
type HTTPClient struct {
Token string
}
func (client *HTTPClient) Send(ctx context.Context, message string) error {
if message == "" {
return nil
}
log.Printf("sending token=%s message=%s", client.Token, message)
return nil
}
func BuildSender(enabled bool) Sender {
var client *HTTPClient
if enabled {
client = &HTTPClient{Token: os.Getenv("ALERT_TOKEN")}
}
return client
}
generated code is illustrative, not from any one model