From 89a8438fb88bb4cc052022204f3f7de73f03b2d4 Mon Sep 17 00:00:00 2001 From: Dot-Rar Date: Sun, 26 May 2019 17:34:08 +0100 Subject: [PATCH] ping everyone disable --- app/http/endpoints/manage/settings.go | 9 ++++++ database/table/archivechannel.go | 2 -- database/table/pingeveryone.go | 37 ++++++++++++++++++++++++ public/templates/layouts/main.mustache | 3 ++ public/templates/layouts/manage.mustache | 3 ++ public/templates/views/settings.mustache | 17 ++++++++--- 6 files changed, 65 insertions(+), 6 deletions(-) create mode 100644 database/table/pingeveryone.go diff --git a/app/http/endpoints/manage/settings.go b/app/http/endpoints/manage/settings.go index 78627c4..d60c095 100644 --- a/app/http/endpoints/manage/settings.go +++ b/app/http/endpoints/manage/settings.go @@ -93,6 +93,14 @@ func SettingsHandler(ctx *gin.Context) { table.UpdateTicketLimit(guildId, limit) } + // Ping everyone + pingEveryone := table.GetPingEveryone(guildId) + pingEveryoneStr := ctx.Query("pingeveryone") + if csrfCorrect { + pingEveryone = pingEveryoneStr == "on" + table.UpdatePingEveryone(guildId, pingEveryone) + } + // /users/@me/guilds doesn't return channels, so we have to get them for the specific guild if len(guild.Channels) == 0 { var channels []objects.Channel @@ -215,6 +223,7 @@ func SettingsHandler(ctx *gin.Context) { "invalidWelcomeMessage": len(ctx.Query("welcomeMessage")) > 1000, "invalidTicketLimit": invalidTicketLimit, "csrf": store.Get("csrf").(string), + "pingEveryone": pingEveryone, })) } else { ctx.Redirect(302, "/login") diff --git a/database/table/archivechannel.go b/database/table/archivechannel.go index b5a818a..3b9e067 100644 --- a/database/table/archivechannel.go +++ b/database/table/archivechannel.go @@ -1,7 +1,6 @@ package table import ( - "fmt" "github.com/TicketsBot/GoPanel/database" ) @@ -15,7 +14,6 @@ func (ArchiveChannel) TableName() string { } func UpdateArchiveChannel(guildId int64, channelId int64) { - fmt.Println(channelId) var channel ArchiveChannel database.Database.Where(ArchiveChannel{Guild: guildId}).Assign(ArchiveChannel{Channel: channelId}).FirstOrCreate(&channel) } diff --git a/database/table/pingeveryone.go b/database/table/pingeveryone.go new file mode 100644 index 0000000..0c27a36 --- /dev/null +++ b/database/table/pingeveryone.go @@ -0,0 +1,37 @@ +package table + +import ( + "github.com/TicketsBot/GoPanel/database" +) + +type PingEveryone struct { + GuildId int64 `gorm:"column:GUILDID"` + PingEveryone bool `gorm:"column:PINGEVERYONE;type:TINYINT"` +} + +func (PingEveryone) TableName() string { + return "pingeveryone" +} + +// tldr I hate gorm +func UpdatePingEveryone(guildId int64, pingEveryone bool) { + var settings []PingEveryone + database.Database.Where(&PingEveryone{GuildId: guildId}).Find(&settings) + + updated := PingEveryone{guildId, pingEveryone} + + if len(settings) == 0 { + database.Database.Create(&updated) + } else { + database.Database.Table("pingeveryone").Where("GUILDID = ?", guildId).Update("PINGEVERYONE", pingEveryone) + } + + //database.Database.Where(&PingEveryone{GuildId: guildId}).Assign(&updated).FirstOrCreate(&PingEveryone{}) +} + +func GetPingEveryone(guildId int64) bool { + pingEveryone := PingEveryone{PingEveryone: true} + database.Database.Where(&PingEveryone{GuildId: guildId}).First(&pingEveryone) + + return pingEveryone.PingEveryone +} diff --git a/public/templates/layouts/main.mustache b/public/templates/layouts/main.mustache index ad91e16..0a51082 100644 --- a/public/templates/layouts/main.mustache +++ b/public/templates/layouts/main.mustache @@ -8,6 +8,9 @@ + + +