aboutsummaryrefslogtreecommitdiff
path: root/commands/reset.go
diff options
context:
space:
mode:
Diffstat (limited to 'commands/reset.go')
-rw-r--r--commands/reset.go60
1 files changed, 29 insertions, 31 deletions
diff --git a/commands/reset.go b/commands/reset.go
index ae31781..9f2debc 100644
--- a/commands/reset.go
+++ b/commands/reset.go
@@ -5,47 +5,45 @@ import (
"git.anhgelus.world/anhgelus/les-copaings-bot/user"
"github.com/anhgelus/gokord"
- "github.com/anhgelus/gokord/cmd"
"github.com/nyttikord/gokord/bot"
- "github.com/nyttikord/gokord/event"
+ "github.com/nyttikord/gokord/interaction"
)
-func Reset(s bot.Session, i *event.InteractionCreate, _ cmd.OptionMap, resp *cmd.ResponseBuilder) {
+func Reset(ctx context.Context, dg bot.Session, i *interaction.ApplicationCommand) {
var copaings []*user.Copaing
//TODO: delete everything from cache
gokord.DB.Where("guild_id = ?", i.GuildID).Delete(&copaings)
- if err := resp.IsEphemeral().SetMessage("L'XP a été reset.").Send(); err != nil {
- s.Logger().Error("sending reset success", "error", err)
+ resp := interaction.NewMessageResponse().IsEphemeral().Message("L'XP a été reset.").Response()
+ err := dg.InteractionAPI().Respond(i.Interaction, resp).Do(ctx)
+ if err != nil {
+ bot.Logger(ctx).Error("sending reset success", "error", err)
}
}
-func ResetUser(ctx context.Context) func(s bot.Session, i *event.InteractionCreate, optMap cmd.OptionMap, resp *cmd.ResponseBuilder) {
- return func(s bot.Session, i *event.InteractionCreate, optMap cmd.OptionMap, resp *cmd.ResponseBuilder) {
- resp.IsEphemeral()
- v, ok := optMap["user"]
- if !ok {
- if err := resp.SetMessage("Le user n'a pas été renseigné.").Send(); err != nil {
- s.Logger().Error("sending error copaing not set", "error", err)
- }
- return
- }
- m := v.UserValue(s.UserAPI())
- if m.Bot {
- if err := resp.SetMessage("Les bots n'ont pas de niveau :upside_down:").Send(); err != nil {
- s.Logger().Error("sending error bot does not have xp", "error", err)
- }
- return
- }
- err := user.GetCopaing(ctx, m.ID, i.GuildID).Delete(ctx)
+func ResetUser(ctx context.Context, dg bot.Session, i *interaction.ApplicationCommand) {
+ resp := interaction.NewMessageResponse().IsEphemeral()
+ defer func() {
+ err := dg.InteractionAPI().Respond(i.Interaction, resp.Response()).Do(ctx)
if err != nil {
- s.Logger().Error("deleting copaing", "error", err, "user", m.Username, "guild", i.GuildID)
- err = resp.SetMessage("Erreur : impossible de reset l'utilisateur").Send()
- if err != nil {
- s.Logger().Error("sending error while deleting", "error", err)
- }
- }
- if err = resp.SetMessage("Le user bien été reset.").Send(); err != nil {
- s.Logger().Error("sending reset success", "error", err)
+ bot.Logger(ctx).Error("replying to interaction", "error", err)
}
+ }()
+ opts := i.OptionMap()
+ v, ok := opts["user"]
+ if !ok {
+ resp.Message("Le user n'a pas été renseigné.")
+ return
+ }
+ m := v.UserValue(ctx)
+ if m.Bot {
+ resp.Message("Les bots n'ont pas de niveau :upside_down:")
+ return
+ }
+ err := user.GetCopaing(ctx, m.ID, i.GuildID).Delete(ctx)
+ if err != nil {
+ bot.Logger(ctx).Error("deleting copaing", "error", err, "user", m.Username, "guild", i.GuildID)
+ resp.Message("Erreur : impossible de reset l'utilisateur")
+ return
}
+ resp.Message("Le user bien été reset.")
}