Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e333f084b5 | ||
|
|
177c820821 | ||
|
|
ffb8b963fa |
No files matched your search
@@ -93,10 +93,9 @@ func (r *Repo) GetSettings(ctx context.Context, guildID int64) (*Settings, error
|
||||
err := r.db.QueryRowContext(ctx, q, guildID).Scan(&s.Enabled, &ch, &logCh, &panel, &s.PanelTitle, &s.PanelDescription, &s.MaxOpenPerUser)
|
||||
switch {
|
||||
case errors.Is(err, sql.ErrNoRows):
|
||||
// Modules start off until the server sets them up.
|
||||
return &Settings{
|
||||
GuildID: guildID,
|
||||
Enabled: false,
|
||||
Enabled: true,
|
||||
PanelTitle: DefaultPanelTitle,
|
||||
PanelDescription: DefaultPanelDescription,
|
||||
MaxOpenPerUser: DefaultMaxOpenPerUser,
|
||||
@@ -110,12 +109,11 @@ func (r *Repo) GetSettings(ctx context.Context, guildID int64) (*Settings, error
|
||||
}
|
||||
|
||||
// SetChannels saves where tickets live and where transcripts go. A zero log
|
||||
// channel clears it. Setting tickets up for the first time turns them on
|
||||
// (they start off); after that, the on/off switch is left alone.
|
||||
// channel clears it.
|
||||
func (r *Repo) SetChannels(ctx context.Context, guildID, channelID, logChannelID int64) error {
|
||||
const q = `
|
||||
INSERT INTO ticket_settings (guild_id, channel_id, log_channel_id, enabled)
|
||||
VALUES ($1, $2, $3, TRUE)
|
||||
INSERT INTO ticket_settings (guild_id, channel_id, log_channel_id)
|
||||
VALUES ($1, $2, $3)
|
||||
ON CONFLICT (guild_id) DO UPDATE SET
|
||||
channel_id = EXCLUDED.channel_id,
|
||||
log_channel_id = EXCLUDED.log_channel_id`
|
||||
|
||||
@@ -102,13 +102,10 @@ 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, enabled)
|
||||
VALUES ($1, $2, TRUE)
|
||||
INSERT INTO twitch_config (guild_id, twitch_channel_id)
|
||||
VALUES ($1, $2)
|
||||
ON CONFLICT (guild_id)
|
||||
DO UPDATE SET twitch_channel_id = EXCLUDED.twitch_channel_id
|
||||
`
|
||||
@@ -117,14 +114,15 @@ 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 is off: modules start off until
|
||||
// the server sets them up.
|
||||
// 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.
|
||||
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 false, nil
|
||||
return true, nil
|
||||
}
|
||||
if err != nil {
|
||||
return false, err
|
||||
|
||||
+2
-2
@@ -46,7 +46,7 @@ CREATE TABLE IF NOT EXISTS levelup (
|
||||
CREATE TABLE IF NOT EXISTS twitch_config (
|
||||
guild_id BIGINT PRIMARY KEY,
|
||||
twitch_channel_id BIGINT,
|
||||
enabled BOOLEAN NOT NULL DEFAULT FALSE
|
||||
enabled BOOLEAN NOT NULL DEFAULT TRUE
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS rps (
|
||||
@@ -180,7 +180,7 @@ CREATE TABLE IF NOT EXISTS music_commands (
|
||||
-- Tickets (mirror of velox-dashboard-api migration 000016_tickets)
|
||||
CREATE TABLE IF NOT EXISTS ticket_settings (
|
||||
guild_id BIGINT PRIMARY KEY,
|
||||
enabled BOOLEAN NOT NULL DEFAULT FALSE,
|
||||
enabled BOOLEAN NOT NULL DEFAULT TRUE,
|
||||
channel_id BIGINT,
|
||||
log_channel_id BIGINT,
|
||||
panel_message_id BIGINT,
|
||||
|
||||
Reference in new issue
Block a user