Skip to content

Commit 8ff60a1

Browse files
committed
Mocks out PSQL integration, removes old code
1 parent 921487b commit 8ff60a1

File tree

9 files changed

+172
-150
lines changed

9 files changed

+172
-150
lines changed

discord/commands.go

+8-23
Original file line numberDiff line numberDiff line change
@@ -769,16 +769,6 @@ func (bot *Bot) HandleCommand(isAdmin, isPermissioned bool, sett *storage.GuildS
769769

770770
case ShowMe:
771771
if m.Author != nil {
772-
if settUser := bot.StorageInterface.GetUserSettings(m.Author.ID); settUser != nil {
773-
embed := settUser.ToEmbed(sett)
774-
sendMessageDM(s, m.Author.ID, embed)
775-
} else {
776-
s.ChannelMessageSend(m.ChannelID, sett.LocalizeMessage(&i18n.Message{
777-
ID: "commands.HandleCommand.ShowMe.emptySettings",
778-
Other: "I don't have any settings stored for you!",
779-
}))
780-
}
781-
782772
cached := bot.RedisInterface.GetUsernameOrUserIDMappings(m.GuildID, m.Author.ID)
783773
if len(cached) == 0 {
784774
s.ChannelMessageSend(m.ChannelID, sett.LocalizeMessage(&i18n.Message{
@@ -801,22 +791,17 @@ func (bot *Bot) HandleCommand(isAdmin, isPermissioned bool, sett *storage.GuildS
801791
break
802792
case ForgetMe:
803793
if m.Author != nil {
804-
err := bot.StorageInterface.DeleteUserSettings(m.Author.ID)
794+
err := bot.RedisInterface.DeleteLinksByUserID(m.GuildID, m.Author.ID)
805795
if err != nil {
806796
log.Println(err)
807797
} else {
808-
err := bot.RedisInterface.DeleteLinksByUserID(m.GuildID, m.Author.ID)
809-
if err != nil {
810-
log.Println(err)
811-
} else {
812-
s.ChannelMessageSend(m.ChannelID, sett.LocalizeMessage(&i18n.Message{
813-
ID: "commands.HandleCommand.ForgetMe.Success",
814-
Other: "Successfully deleted all player data for <@{{.AuthorID}}>",
815-
},
816-
map[string]interface{}{
817-
"AuthorID": m.Author.ID,
818-
}))
819-
}
798+
s.ChannelMessageSend(m.ChannelID, sett.LocalizeMessage(&i18n.Message{
799+
ID: "commands.HandleCommand.ForgetMe.Success",
800+
Other: "Successfully deleted all player data for <@{{.AuthorID}}>",
801+
},
802+
map[string]interface{}{
803+
"AuthorID": m.Author.ID,
804+
}))
820805
}
821806
}
822807
break

go.mod

+1
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ require (
1212
github.com/go-redis/redis/v8 v8.3.3
1313
github.com/gorilla/mux v1.8.0
1414
github.com/gorilla/websocket v1.4.2 // indirect
15+
github.com/jackc/pgx/v4 v4.9.2
1516
github.com/joho/godotenv v1.3.0
1617
github.com/nicksnyder/go-i18n/v2 v2.1.1
1718
golang.org/x/crypto v0.0.0-20201016220609-9e8e0b390897 // indirect

go.sum

+127-4
Large diffs are not rendered by default.

locales/active.en.toml

+1-5
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@
6363
"commands.HandleCommand.Help.notFound" = "I didn't recognize that command! View `help` for all available commands!"
6464
"commands.HandleCommand.ShowMe.cachedNames" = "Here's your cached in-game names:"
6565
"commands.HandleCommand.ShowMe.emptyCachedNames" = "I don't have any cached player names stored for you!"
66-
"commands.HandleCommand.ShowMe.emptySettings" = "I don't have any settings stored for you!"
6766
"commands.HandleCommand.default" = "Sorry, I didn't understand that command! Please see `{{.CommandPrefix}} help` for commands"
6867
"discordGameState.ToDescString.anyVoiceChannel" = "**no Voice Channel! Use `.au track`!**"
6968
"discordGameState.ToDescString.voiceChannelName" = "the **{{.channelName}}** voice channel!"
@@ -183,7 +182,4 @@
183182
"state.phase.DISCUSSION" = "DISCUSSION"
184183
"state.phase.LOBBY" = "LOBBY"
185184
"state.phase.MENU" = "MENU"
186-
"state.phase.TASKS" = "TASKS"
187-
"userSettings.ToEmbed.Description" = "Here's all the settings I have for you"
188-
"userSettings.ToEmbed.FielnName" = "Settings"
189-
"userSettings.ToEmbed.Title" = "Your Settings"
185+
"state.phase.TASKS" = "TASKS"

storage/guildStats.go

-13
This file was deleted.

storage/postgres.go

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package storage
2+
3+
import (
4+
"context"
5+
"github.com/jackc/pgx/v4/pgxpool"
6+
)
7+
8+
type PsqlInterface struct {
9+
pool *pgxpool.Pool
10+
11+
//TODO does this require a lock? How should stuff be written/read from psql in an async way? Is this even a concern?
12+
//https://brandur.org/postgres-connections
13+
}
14+
15+
type PsqlParameters struct {
16+
Addr string
17+
Username string
18+
Password string
19+
}
20+
21+
var psqlctx = context.Background()
22+
23+
func (psqlInterface *PsqlInterface) Init(params interface{}) error {
24+
newParams := params.(PsqlParameters)
25+
dbpool, err := pgxpool.Connect(context.Background(), newParams.Addr)
26+
if err != nil {
27+
return err
28+
}
29+
psqlInterface.pool = dbpool
30+
return nil
31+
}
32+
33+
func (psqlInterface *PsqlInterface) Close() {
34+
psqlInterface.pool.Close()
35+
}

storage/redis.go

-45
Original file line numberDiff line numberDiff line change
@@ -31,55 +31,10 @@ func (storageInterface *StorageInterface) Init(params interface{}) error {
3131
return nil
3232
}
3333

34-
func userSettingsKey(id HashedID) string {
35-
return "automuteus:settings:user:" + string(id)
36-
}
37-
3834
func guildSettingsKey(id HashedID) string {
3935
return "automuteus:settings:guild:" + string(id)
4036
}
4137

42-
func userStatsKey(id HashedID) string {
43-
return "automuteus:stats:user:" + string(id)
44-
}
45-
46-
func (storageInterface *StorageInterface) GetUserSettings(userID string) *UserSettings {
47-
key := userSettingsKey(HashUserID(userID))
48-
49-
j, err := storageInterface.client.Get(ctx, key).Result()
50-
if err == redis.Nil {
51-
return nil
52-
} else if err != nil {
53-
log.Println(err)
54-
return nil
55-
} else {
56-
s := UserSettings{}
57-
err := json.Unmarshal([]byte(j), &s)
58-
if err != nil {
59-
log.Println(err)
60-
return nil
61-
}
62-
return &s
63-
}
64-
}
65-
66-
func (storageInterface *StorageInterface) SetUserSettings(userID string, userSettings *UserSettings) error {
67-
key := userSettingsKey(HashUserID(userID))
68-
69-
jbytes, err := json.MarshalIndent(userSettings, "", " ")
70-
if err != nil {
71-
return err
72-
}
73-
err = storageInterface.client.Set(ctx, key, jbytes, 0).Err()
74-
return err
75-
}
76-
77-
func (storageInterface *StorageInterface) DeleteUserSettings(userID string) error {
78-
key := userSettingsKey(HashUserID(userID))
79-
80-
return storageInterface.client.Del(ctx, key).Err()
81-
}
82-
8338
func (storageInterface *StorageInterface) GetGuildSettings(guildID string) *GuildSettings {
8439
key := guildSettingsKey(HashGuildID(guildID))
8540

storage/userSettings.go

-54
This file was deleted.

storage/userStats.go

-6
This file was deleted.

0 commit comments

Comments
 (0)