diff options
| author | Anhgelus Morhtuuzh <william@herges.fr> | 2026-03-09 18:47:40 +0100 |
|---|---|---|
| committer | Anhgelus Morhtuuzh <william@herges.fr> | 2026-03-09 18:47:40 +0100 |
| commit | 9c3f1ea5ffe9ad70caf306faff7a3e3948cef6ab (patch) | |
| tree | d7931c65a40a7bf22764473c0dd330f83a4bc071 /rolereact | |
| parent | 6e92feaba23a4992e0ec4b529660921a6bcb492a (diff) | |
feat(config): preload role reactfeat/leave-gorm
Diffstat (limited to 'rolereact')
| -rw-r--r-- | rolereact/manager.go | 32 | ||||
| -rw-r--r-- | rolereact/rolereact.go | 19 |
2 files changed, 19 insertions, 32 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) diff --git a/rolereact/rolereact.go b/rolereact/rolereact.go index 44aad2a..756cf36 100644 --- a/rolereact/rolereact.go +++ b/rolereact/rolereact.go @@ -5,6 +5,7 @@ import ( "slices" "strconv" + "git.anhgelus.world/anhgelus/les-copaings-bot/common" "git.anhgelus.world/anhgelus/les-copaings-bot/config" "git.anhgelus.world/anhgelus/les-copaings-bot/dynamicid" "github.com/nyttikord/gokord/bot" @@ -83,9 +84,9 @@ func HandleCommand(ctx context.Context, dg bot.Session, i *interaction.Applicati return } message.MessageID = m.ID - cfg := GetGuildConfigPreloaded(ctx, i.GuildID) - cfg.RrMessages = append(cfg.RrMessages, message) - err = cfg.Save(ctx) + cfg := config.GetGuild(ctx, i.GuildID) + cfg.RrMessages = append(cfg.RrMessages, &message) + err = cfg.Save(ctx, common.GetDB(ctx)) if err != nil { bot.Logger(ctx).Error("unable to save rolereact message in database", "error", err) _, err := interaction.CreateFollowupMessage(i.Interaction, false, &channel.WebhookParams{ @@ -100,7 +101,7 @@ func HandleCommand(ctx context.Context, dg bot.Session, i *interaction.Applicati return } - messageEdits[messageCounter] = &cfg.RrMessages[len(cfg.RrMessages)-1] + messageEdits[messageCounter] = cfg.RrMessages[len(cfg.RrMessages)-1] editID := messageCounter messageCounter++ @@ -120,7 +121,7 @@ func HandleCommand(ctx context.Context, dg bot.Session, i *interaction.Applicati func HandleModifyCommand(ctx context.Context, dg bot.Session, i *interaction.ApplicationCommand) { logger := bot.Logger(ctx) messageId := i.Data.TargetID - cfg := GetGuildConfigPreloaded(ctx, i.GuildID) + cfg := config.GetGuild(ctx, i.GuildID) var target *config.RoleReactMessage var targetEditID uint for editID, message := range messageEdits { @@ -132,7 +133,7 @@ func HandleModifyCommand(ctx context.Context, dg bot.Session, i *interaction.App if targetEditID == 0 { for _, message := range cfg.RrMessages { if message.MessageID == messageId { - target = &message + target = message } } if target == nil { @@ -182,10 +183,10 @@ func HandleResetMessage(ctx context.Context, dg bot.Session, i *interaction.Mess }, } } else { - cfg := GetGuildConfigPreloaded(ctx, i.GuildID) + cfg := config.GetGuild(ctx, i.GuildID) for _, m := range cfg.RrMessages { - if m.ID == message.ID { - messageEdits[params.MessageEditID] = &m + if m.MessageID == message.MessageID { + messageEdits[params.MessageEditID] = m } } responseData = *MessageModifyData(ctx, i.Interaction, params) |
