aboutsummaryrefslogtreecommitdiff
path: root/rolereact
diff options
context:
space:
mode:
Diffstat (limited to 'rolereact')
-rw-r--r--rolereact/manager.go32
-rw-r--r--rolereact/rolereact.go19
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)