Delete channel once request is accepted/declined

This commit is contained in:
Joren 2024-07-06 20:07:07 +02:00
parent 71bec93b58
commit d7c884bf1d
Signed by: Joren
GPG Key ID: 280E33DFBC0F1B55

105
main.go
View File

@ -183,7 +183,7 @@ var (
}, },
}, },
}, },
Flags: discordgo.MessageFlagsEphemeral, Flags: discordgo.MessageFlagsEphemeral,
}, },
}) })
if err != nil { if err != nil {
@ -259,55 +259,62 @@ var (
log.Println("Error sending message to the ticket channel:", err) log.Println("Error sending message to the ticket channel:", err)
} }
}, },
"accept": func(client *discordgo.Session, i *discordgo.InteractionCreate) {
data := i.MessageComponentData().CustomID
parts := strings.Split(data, "_")
if len(parts) != 3 {
log.Println("Invalid accept button custom ID")
return
}
userID := parts[1]
softwareType := parts[2]
"accept": func(client *discordgo.Session, i *discordgo.InteractionCreate) {
member, err := client.GuildMember(i.GuildID, userID) data := i.MessageComponentData().CustomID
if err != nil { parts := strings.Split(data, "_")
log.Println("Error fetching member info:", err) if len(parts) != 3 {
return log.Println("Invalid accept button custom ID")
} return
var userName string }
if member.Nick != "" { userID := parts[1]
userName = member.Nick softwareType := parts[2]
} else if member.User.GlobalName != "" {
userName = member.User.GlobalName
} else {
userName = member.User.Username
}
reset(userName, softwareType) member, err := client.GuildMember(i.GuildID, userID)
if err != nil {
log.Println("Error fetching member info:", err)
return
}
var userName string
if member.Nick != "" {
userName = member.Nick
} else if member.User.GlobalName != "" {
userName = member.User.GlobalName
} else {
userName = member.User.Username
}
err = client.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{ reset(userName, softwareType)
Type: discordgo.InteractionResponseChannelMessageWithSource,
Data: &discordgo.InteractionResponseData{
Content: "Request accepted and processed.",
Flags: discordgo.MessageFlagsEphemeral,
},
})
if err != nil {
log.Println("Error sending interaction response:", err)
}
dmChannel, err := client.UserChannelCreate(userID) err = client.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{
if err != nil { Type: discordgo.InteractionResponseChannelMessageWithSource,
log.Println("Error creating DM channel:", err) Data: &discordgo.InteractionResponseData{
return Content: "Request accepted and processed.",
} Flags: discordgo.MessageFlagsEphemeral,
},
})
if err != nil {
log.Println("Error sending interaction response:", err)
}
_, err = client.ChannelMessageSend(dmChannel.ID, fmt.Sprintf("Your reset request for %s has been accepted and processed.", softwareType))
if err != nil { _,err = client.ChannelDelete(i.ChannelID)
log.Println("Error sending DM:", err) if err != nil {
} log.Println("Error deleting channel:", err)
}, }
dmChannel, err := client.UserChannelCreate(userID)
if err != nil {
log.Println("Error creating DM channel:", err)
return
}
_, err = client.ChannelMessageSend(dmChannel.ID, fmt.Sprintf("Your reset request for %s has been accepted and processed.", softwareType))
if err != nil {
log.Println("Error sending DM:", err)
}
},
"decline": func(client *discordgo.Session, i *discordgo.InteractionCreate) { "decline": func(client *discordgo.Session, i *discordgo.InteractionCreate) {
data := i.MessageComponentData().CustomID data := i.MessageComponentData().CustomID
@ -317,7 +324,6 @@ var (
return return
} }
userID := parts[1] userID := parts[1]
err := client.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{ err := client.InteractionRespond(i.Interaction, &discordgo.InteractionResponse{
Type: discordgo.InteractionResponseChannelMessageWithSource, Type: discordgo.InteractionResponseChannelMessageWithSource,
@ -330,6 +336,13 @@ var (
log.Println("Error sending interaction response:", err) log.Println("Error sending interaction response:", err)
} }
_,err = client.ChannelDelete(i.ChannelID)
if err != nil {
log.Println("Error deleting channel:", err)
}
dmChannel, err := client.UserChannelCreate(userID) dmChannel, err := client.UserChannelCreate(userID)
if err != nil { if err != nil {
log.Println("Error creating DM channel:", err) log.Println("Error creating DM channel:", err)