Start Twitch alerts and tickets off on new servers
Every module that can be switched on or off now starts off. A server with no settings yet reads as off; setting the Twitch alert channel or running /tickets setup for the first time turns that module on, and existing settings are left as they are. schema.sql mirrors the API's migration 000019. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
f285367511
commit
0218676e2d
3 files changed
+16
-12
No files matched your search
@@ -102,10 +102,13 @@ func (r *Repo) GetNotificationChannel(ctx context.Context, guildID int64) (int64
|
||||
return chID.Int64, true, nil
|
||||
}
|
||||
|
||||
// SetNotificationChannel sets where live alerts go. Setting it for the first
|
||||
// time turns alerts on (they start off); after that, the on/off switch is
|
||||
// left alone.
|
||||
func (r *Repo) SetNotificationChannel(ctx context.Context, guildID, channelID int64) error {
|
||||
const q = `
|
||||
INSERT INTO twitch_config (guild_id, twitch_channel_id)
|
||||
VALUES ($1, $2)
|
||||
INSERT INTO twitch_config (guild_id, twitch_channel_id, enabled)
|
||||
VALUES ($1, $2, TRUE)
|
||||
ON CONFLICT (guild_id)
|
||||
DO UPDATE SET twitch_channel_id = EXCLUDED.twitch_channel_id
|
||||
`
|
||||
@@ -114,15 +117,14 @@ func (r *Repo) SetNotificationChannel(ctx context.Context, guildID, channelID in
|
||||
}
|
||||
|
||||
// IsEnabled reports whether Twitch notifications are enabled for guildID.
|
||||
// A guild with no twitch_config row yet defaults to enabled, matching the
|
||||
// column's own DEFAULT TRUE - "never configured" and "explicitly on" are
|
||||
// the same state until someone actually flips it off.
|
||||
// A guild with no twitch_config row yet is off: modules start off until
|
||||
// the server sets them up.
|
||||
func (r *Repo) IsEnabled(ctx context.Context, guildID int64) (bool, error) {
|
||||
const q = `SELECT enabled FROM twitch_config WHERE guild_id = $1`
|
||||
var enabled bool
|
||||
err := r.db.QueryRowContext(ctx, q, guildID).Scan(&enabled)
|
||||
if err == sql.ErrNoRows {
|
||||
return true, nil
|
||||
return false, nil
|
||||
}
|
||||
if err != nil {
|
||||
return false, err
|
||||
|
||||
Reference in new issue
Block a user