Compare commits

..
4 Commits
Author SHA1 Message Date
Dustin Pianalto 414757188e remove duplicate prefixes
CI / build (push) Has been cancelled
2021-01-24 01:05:16 -09:00
Dustin Pianalto 888d356b67 debug removing prefix
CI / build (push) Has been cancelled
2021-01-24 00:57:00 -09:00
Dustin Pianalto c776b25899 debug removing prefix
CI / build (push) Has been cancelled
2021-01-24 00:53:04 -09:00
Dustin Pianalto 81f6e23487 Fix array in guild service
CI / build (push) Has been cancelled
2021-01-24 00:46:41 -09:00
3 changed files with 24 additions and 4 deletions
+4 -3
View File
@@ -5,6 +5,7 @@ import (
"log" "log"
"github.com/dustinpianalto/geeksbot" "github.com/dustinpianalto/geeksbot"
"github.com/lib/pq"
) )
type guildService struct { type guildService struct {
@@ -15,7 +16,7 @@ func (s guildService) Guild(id string) (geeksbot.Guild, error) {
var g geeksbot.Guild var g geeksbot.Guild
queryString := "SELECT id, new_patron_message, prefixes FROM guilds WHERE id = $1" queryString := "SELECT id, new_patron_message, prefixes FROM guilds WHERE id = $1"
row := s.db.QueryRow(queryString, id) row := s.db.QueryRow(queryString, id)
err := row.Scan(&g.ID, &g.NewPatronMessage, &g.Prefixes) err := row.Scan(&g.ID, &g.NewPatronMessage, pq.Array(&g.Prefixes))
if err != nil { if err != nil {
return geeksbot.Guild{}, err return geeksbot.Guild{}, err
} }
@@ -24,7 +25,7 @@ func (s guildService) Guild(id string) (geeksbot.Guild, error) {
func (s guildService) CreateGuild(g geeksbot.Guild) (geeksbot.Guild, error) { func (s guildService) CreateGuild(g geeksbot.Guild) (geeksbot.Guild, error) {
queryString := "INSERT INTO guilds (id, new_patron_message, prefixes) VALUES ($1, $2, $3)" queryString := "INSERT INTO guilds (id, new_patron_message, prefixes) VALUES ($1, $2, $3)"
_, err := s.db.Exec(queryString, g.ID, g.NewPatronMessage, g.Prefixes) _, err := s.db.Exec(queryString, g.ID, g.NewPatronMessage, pq.Array(g.Prefixes))
return g, err return g, err
} }
@@ -36,7 +37,7 @@ func (s guildService) DeleteGuild(g geeksbot.Guild) error {
func (s guildService) UpdateGuild(g geeksbot.Guild) (geeksbot.Guild, error) { func (s guildService) UpdateGuild(g geeksbot.Guild) (geeksbot.Guild, error) {
queryString := "UPDATE guilds SET new_patron_message = $2, prefixes = $3 WHERE id = $1" queryString := "UPDATE guilds SET new_patron_message = $2, prefixes = $3 WHERE id = $1"
_, err := s.db.Exec(queryString, g.ID, g.NewPatronMessage, g.Prefixes) _, err := s.db.Exec(queryString, g.ID, g.NewPatronMessage, pq.Array(g.Prefixes))
return g, err return g, err
} }
+7 -1
View File
@@ -2,11 +2,13 @@ package guild
import ( import (
"fmt" "fmt"
"log"
"github.com/dustinpianalto/disgoman" "github.com/dustinpianalto/disgoman"
"github.com/dustinpianalto/geeksbot" "github.com/dustinpianalto/geeksbot"
"github.com/dustinpianalto/geeksbot/internal/discord_utils" "github.com/dustinpianalto/geeksbot/internal/discord_utils"
"github.com/dustinpianalto/geeksbot/internal/services" "github.com/dustinpianalto/geeksbot/internal/services"
"github.com/dustinpianalto/geeksbot/internal/utils"
) )
var AddPrefixCommand = &disgoman.Command{ var AddPrefixCommand = &disgoman.Command{
@@ -38,6 +40,7 @@ func addPrefixCommandFunc(ctx disgoman.Context, args []string) {
} }
} else { } else {
guild.Prefixes = append(guild.Prefixes, args...) guild.Prefixes = append(guild.Prefixes, args...)
guild.Prefixes = utils.RemoveDuplicateStrings(guild.Prefixes)
guild, err = services.GuildService.UpdateGuild(guild) guild, err = services.GuildService.UpdateGuild(guild)
if err != nil { if err != nil {
discord_utils.SendErrorMessage(ctx, "Error adding prefixes to guild.", err) discord_utils.SendErrorMessage(ctx, "Error adding prefixes to guild.", err)
@@ -80,16 +83,19 @@ func removePrefixCommandFunc(ctx disgoman.Context, args []string) {
} }
} else { } else {
for _, a := range args { for _, a := range args {
l := len(guild.Prefixes) - 1 l := len(guild.Prefixes)
for i := 0; i < l; i++ { for i := 0; i < l; i++ {
if a == guild.Prefixes[i] { if a == guild.Prefixes[i] {
guild.Prefixes = append(guild.Prefixes[:i], guild.Prefixes[i+1:]...) guild.Prefixes = append(guild.Prefixes[:i], guild.Prefixes[i+1:]...)
l-- l--
i-- i--
removed = append(removed, a) removed = append(removed, a)
log.Println(a)
} }
} }
} }
removed = utils.RemoveDuplicateStrings(removed)
guild.Prefixes = utils.RemoveDuplicateStrings(guild.Prefixes)
guild, err = services.GuildService.UpdateGuild(guild) guild, err = services.GuildService.UpdateGuild(guild)
if err != nil { if err != nil {
discord_utils.SendErrorMessage(ctx, "Error removing prefixes from guild.", err) discord_utils.SendErrorMessage(ctx, "Error removing prefixes from guild.", err)
+13
View File
@@ -1 +1,14 @@
package utils package utils
func RemoveDuplicateStrings(s []string) []string {
keys := make(map[string]bool)
o := []string{}
for _, e := range s {
if _, v := keys[e]; !v {
keys[e] = true
o = append(o, e)
}
}
return o
}