diff --git a/app/http/endpoints/api/settings.go b/app/http/endpoints/api/settings.go index edeaa76..5dddba6 100644 --- a/app/http/endpoints/api/settings.go +++ b/app/http/endpoints/api/settings.go @@ -9,71 +9,75 @@ import ( ) type Settings struct { - Prefix string `json:"prefix"` - WelcomeMessaage string `json:"welcome_message"` - TicketLimit uint8 `json:"ticket_limit"` - Category uint64 `json:"category,string"` - ArchiveChannel uint64 `json:"archive_channel,string"` - NamingScheme database.NamingScheme `json:"naming_scheme"` - PingEveryone bool `json:"ping_everyone"` - UsersCanClose bool `json:"users_can_close"` + Prefix string `json:"prefix"` + WelcomeMessaage string `json:"welcome_message"` + TicketLimit uint8 `json:"ticket_limit"` + Category uint64 `json:"category,string"` + ArchiveChannel uint64 `json:"archive_channel,string"` + NamingScheme database.NamingScheme `json:"naming_scheme"` + PingEveryone bool `json:"ping_everyone"` + UsersCanClose bool `json:"users_can_close"` + CloseConfirmation bool `json:"close_confirmation"` } func GetSettingsHandler(ctx *gin.Context) { guildId := ctx.Keys["guildid"].(uint64) - var prefix, welcomeMessage string - var ticketLimit uint8 - var category, archiveChannel uint64 - var allowUsersToClose, pingEveryone bool - var namingScheme database.NamingScheme + + var settings Settings group, _ := errgroup.WithContext(context.Background()) // prefix group.Go(func() (err error) { - prefix, err = dbclient.Client.Prefix.Get(guildId) + settings.Prefix, err = dbclient.Client.Prefix.Get(guildId) return }) // welcome message group.Go(func() (err error) { - welcomeMessage, err = dbclient.Client.WelcomeMessages.Get(guildId) + settings.WelcomeMessaage, err = dbclient.Client.WelcomeMessages.Get(guildId) return }) // ticket limit group.Go(func() (err error) { - ticketLimit, err = dbclient.Client.TicketLimit.Get(guildId) + settings.TicketLimit, err = dbclient.Client.TicketLimit.Get(guildId) return }) // category group.Go(func() (err error) { - category, err = dbclient.Client.ChannelCategory.Get(guildId) + settings.Category, err = dbclient.Client.ChannelCategory.Get(guildId) return }) // archive channel group.Go(func() (err error) { - archiveChannel, err = dbclient.Client.ArchiveChannel.Get(guildId) + settings.ArchiveChannel, err = dbclient.Client.ArchiveChannel.Get(guildId) return }) // allow users to close group.Go(func() (err error) { - allowUsersToClose, err = dbclient.Client.UsersCanClose.Get(guildId) + settings.UsersCanClose, err = dbclient.Client.UsersCanClose.Get(guildId) return }) // ping everyone group.Go(func() (err error) { - pingEveryone, err = dbclient.Client.PingEveryone.Get(guildId) + settings.PingEveryone, err = dbclient.Client.PingEveryone.Get(guildId) return }) // naming scheme group.Go(func() (err error) { - namingScheme, err = dbclient.Client.NamingScheme.Get(guildId) + settings.NamingScheme, err = dbclient.Client.NamingScheme.Get(guildId) + return + }) + + // close confirmation + group.Go(func() (err error) { + settings.CloseConfirmation, err = dbclient.Client.CloseConfirmation.Get(guildId) return }) @@ -85,14 +89,5 @@ func GetSettingsHandler(ctx *gin.Context) { return } - ctx.JSON(200, Settings{ - Prefix: prefix, - WelcomeMessaage: welcomeMessage, - TicketLimit: ticketLimit, - Category: category, - ArchiveChannel: archiveChannel, - NamingScheme: namingScheme, - PingEveryone: pingEveryone, - UsersCanClose: allowUsersToClose, - }) + ctx.JSON(200, settings) } diff --git a/app/http/endpoints/api/updatesettings.go b/app/http/endpoints/api/updatesettings.go index 16d4f77..c5d0f12 100644 --- a/app/http/endpoints/api/updatesettings.go +++ b/app/http/endpoints/api/updatesettings.go @@ -32,6 +32,7 @@ func UpdateSettingsHandler(ctx *gin.Context) { validNamingScheme := settings.updateNamingScheme(guildId) settings.updatePingEveryone(guildId) settings.updateUsersCanClose(guildId) + settings.updateCloseConfirmation(guildId) ctx.JSON(200, gin.H{ "prefix": validPrefix, @@ -130,3 +131,7 @@ func (s *Settings) updatePingEveryone(guildId uint64) { func (s *Settings) updateUsersCanClose(guildId uint64) { go dbclient.Client.UsersCanClose.Set(guildId, s.UsersCanClose) } + +func (s *Settings) updateCloseConfirmation(guildId uint64) { + go dbclient.Client.CloseConfirmation.Set(guildId, s.CloseConfirmation) +} diff --git a/go.mod b/go.mod index df914c0..a69e333 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.14 require ( github.com/BurntSushi/toml v0.3.1 github.com/TicketsBot/archiverclient v0.0.0-20200425115930-0ca198cc8306 - github.com/TicketsBot/database v0.0.0-20200514152605-f7a83711930c + github.com/TicketsBot/database v0.0.0-20200516145701-e13f7e204cc6 github.com/apex/log v1.1.2 github.com/boj/redistore v0.0.0-20180917114910-cd5dcc76aeff // indirect github.com/dgrijalva/jwt-go v3.2.0+incompatible diff --git a/public/templates/views/settings.tmpl b/public/templates/views/settings.tmpl index a1ab1ba..257c4c2 100644 --- a/public/templates/views/settings.tmpl +++ b/public/templates/views/settings.tmpl @@ -10,18 +10,20 @@