aboutsummaryrefslogtreecommitdiff
path: root/rolereact/manager.go
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <william@herges.fr>2026-03-09 18:47:40 +0100
committerAnhgelus Morhtuuzh <william@herges.fr>2026-03-09 18:47:40 +0100
commit9c3f1ea5ffe9ad70caf306faff7a3e3948cef6ab (patch)
treed7931c65a40a7bf22764473c0dd330f83a4bc071 /rolereact/manager.go
parent6e92feaba23a4992e0ec4b529660921a6bcb492a (diff)
feat(config): preload role reactfeat/leave-gorm
Diffstat (limited to 'rolereact/manager.go')
-rw-r--r--rolereact/manager.go32
1 files changed, 9 insertions, 23 deletions
diff --git a/rolereact/manager.go b/rolereact/manager.go
index a55aa5f..3e01017 100644
--- a/rolereact/manager.go
+++ b/rolereact/manager.go
@@ -7,6 +7,7 @@ import (
"strings"
"time"
+ "git.anhgelus.world/anhgelus/les-copaings-bot/common"
"git.anhgelus.world/anhgelus/les-copaings-bot/config"
"github.com/nyttikord/gokord/bot"
"github.com/nyttikord/gokord/channel"
@@ -52,8 +53,10 @@ func ApplyMessageChange(ctx context.Context, dg bot.Session, i *interaction.Inte
bot.Logger(ctx).Error("unable to update reactions on rolereact message", "error", err)
return "Impossible de mettre à jour le message."
}
- cfg := GetGuildConfigPreloaded(ctx, i.GuildID)
- messageIndex := slices.IndexFunc(cfg.RrMessages, func(m config.RoleReactMessage) bool { return m.ID == message.ID })
+ cfg := config.GetGuild(ctx, i.GuildID)
+ messageIndex := slices.IndexFunc(cfg.RrMessages, func(m *config.RoleReactMessage) bool {
+ return m.MessageID == message.MessageID
+ })
if messageIndex == -1 {
// should log it?
return "Impossible de mmettre à jour le message."
@@ -63,26 +66,19 @@ func ApplyMessageChange(ctx context.Context, dg bot.Session, i *interaction.Inte
for _, role := range message.Roles {
roles[role.ID] = *role
}
- //db := common.GetDB(ctx)
+ db := common.GetDB(ctx)
for _, role := range oldMessage.Roles {
_, ok := roles[role.ID]
if !ok {
- err = nil //db.Delete(role).Error
+ err = role.Delete(ctx, db)
if err != nil {
bot.Logger(ctx).Error("unable to delete reaction role from database", "error", err)
return "Impossible de sauvegarder le message de rôle. Merci de contacter l'administrateur du bot."
}
}
}
- cfg.RrMessages[messageIndex] = *message
- err = nil //db.Save(cfg.RrMessages[messageIndex]).Error
- if err != nil {
- bot.Logger(ctx).Error("unable to save rolereaction message in database", "error", err)
- return "Impossible de sauvegarder le message de rôle. Merci de contacter l'administrateur du bot."
- }
- for _, role := range cfg.RrMessages[messageIndex].Roles {
- println(role.ID)
- err = nil //db.Save(role).Error
+ for _, role := range message.Roles {
+ err = role.Save(ctx, common.GetDB(ctx))
if err != nil {
bot.Logger(ctx).Error("unable to save rolereaction role in database", "error", err)
return "Impossible de sauvegarder le message de rôle. Merci de contacter l'administrateur du bot."
@@ -122,16 +118,6 @@ func GetMessageFromEditID(ctx context.Context, i *interaction.Interaction, editI
return m, true
}
-func GetGuildConfigPreloaded(ctx context.Context, guildID uint64) *config.Guild {
- cfg := config.Guild{ID: guildID}
- // err := oldGokord.DB.Where("guild_id = ?", cfg.GuildID).Preload("XpRoles").Preload("RrMessages.Roles").FirstOrCreate(cfg).Error
- /*err := common.GetDB(ctx).Where("guild_id = ?", cfg.GuildID).Preload("RrMessages.Roles").FirstOrCreate(&cfg).Error
- if err != nil {
- panic(err)
- }*/
- return &cfg
-}
-
func FormatEmoji(apiName string) string {
if strings.Contains(apiName, ":") {
return fmt.Sprintf("<:%s>", apiName)