32 lines
692 B
Go
32 lines
692 B
Go
package data
|
|
|
|
import (
|
|
"context"
|
|
)
|
|
|
|
// SMSRecipient models an entry in sms_recipients.
|
|
type SMSRecipient struct {
|
|
Phone string
|
|
Enabled bool
|
|
AlertLevel int
|
|
}
|
|
|
|
// ListEnabledSMSRecipients returns all enabled recipients.
|
|
func ListEnabledSMSRecipients(ctx context.Context) ([]SMSRecipient, error) {
|
|
const q = `SELECT phone, enabled, alert_level FROM sms_recipients WHERE enabled = TRUE`
|
|
rows, err := DB().QueryContext(ctx, q)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
defer rows.Close()
|
|
var out []SMSRecipient
|
|
for rows.Next() {
|
|
var r SMSRecipient
|
|
if err := rows.Scan(&r.Phone, &r.Enabled, &r.AlertLevel); err != nil {
|
|
continue
|
|
}
|
|
out = append(out, r)
|
|
}
|
|
return out, nil
|
|
}
|