Merge branch 'settings-or-error' into 'main'
Suppress M_NOT_FOUND error when fetching settings See merge request etke.cc/postmoogle!3
This commit is contained in:
10
bot/data.go
10
bot/data.go
@@ -2,6 +2,7 @@ package bot
|
||||
|
||||
import (
|
||||
"context"
|
||||
"strings"
|
||||
|
||||
"github.com/getsentry/sentry-go"
|
||||
"maunium.net/go/mautrix/id"
|
||||
@@ -66,6 +67,15 @@ func (b *Bot) getSettings(ctx context.Context, roomID id.RoomID) (settings, erro
|
||||
var config settings
|
||||
err := b.lp.GetClient().GetRoomAccountData(roomID, settingskey, &config)
|
||||
|
||||
if err != nil {
|
||||
if strings.Contains(err.Error(), "M_NOT_FOUND") {
|
||||
// Suppress `M_NOT_FOUND (HTTP 404): Room account data not found` errors.
|
||||
// Until some settings are explicitly set, we don't store any.
|
||||
// In such cases, just return a default (empty) settings object.
|
||||
err = nil
|
||||
}
|
||||
}
|
||||
|
||||
return config, err
|
||||
}
|
||||
|
||||
|
||||
@@ -49,7 +49,8 @@ func (b *Bot) getMailbox(ctx context.Context, evt *event.Event) {
|
||||
|
||||
cfg, err := b.getSettings(span.Context(), evt.RoomID)
|
||||
if err != nil {
|
||||
b.log.Warn("cannot get %s settings: %v", evt.RoomID, err)
|
||||
b.Error(span.Context(), evt.RoomID, "failed to retrieve setting: %v", err)
|
||||
return
|
||||
}
|
||||
|
||||
if cfg.Mailbox == "" {
|
||||
@@ -81,7 +82,8 @@ func (b *Bot) setMailbox(ctx context.Context, evt *event.Event, mailbox string)
|
||||
}
|
||||
cfg, err := b.getSettings(span.Context(), evt.RoomID)
|
||||
if err != nil {
|
||||
b.log.Warn("cannot get settings: %v", err)
|
||||
b.Error(span.Context(), evt.RoomID, "failed to retrieve setting: %v", err)
|
||||
return
|
||||
}
|
||||
|
||||
if !cfg.Allowed(b.noowner, evt.Sender) {
|
||||
|
||||
@@ -23,7 +23,7 @@ func (b *Bot) getOwner(ctx context.Context, evt *event.Event) {
|
||||
|
||||
cfg, err := b.getSettings(span.Context(), evt.RoomID)
|
||||
if err != nil {
|
||||
b.Error(span.Context(), evt.RoomID, "owner is not set yet")
|
||||
b.Error(span.Context(), evt.RoomID, "failed to retrieve setting: %v", err)
|
||||
return
|
||||
}
|
||||
|
||||
@@ -47,7 +47,8 @@ func (b *Bot) setOwner(ctx context.Context, evt *event.Event, owner string) {
|
||||
ownerID := id.UserID(owner)
|
||||
cfg, err := b.getSettings(span.Context(), evt.RoomID)
|
||||
if err != nil {
|
||||
b.log.Warn("cannot get settings: %v", err)
|
||||
b.Error(span.Context(), evt.RoomID, "failed to retrieve setting: %v", err)
|
||||
return
|
||||
}
|
||||
|
||||
if !cfg.Allowed(b.noowner, evt.Sender) {
|
||||
|
||||
Reference in New Issue
Block a user