@@ -16,13 +16,14 @@ const (
1616 UpdateUserProfileID = `UPDATE users SET profile_id = $3 WHERE user_id = $1 AND gsbrcd = $2`
1717 UpdateUserNGDeviceID = `UPDATE users SET ng_device_id = $2 WHERE profile_id = $1`
1818 UpdateUserCsnum = `UPDATE users SET csnum = $2 WHERE profile_id = $1`
19- GetUser = `SELECT user_id, gsbrcd, ng_device_id, email, unique_nick, firstname, lastname, has_ban, ban_reason, open_host, last_ingamesn, last_ip_address, csnum, ban_moderator, ban_reason_hidden, ban_issued, ban_expires FROM users WHERE profile_id = $1`
19+ GetUser = `SELECT user_id, gsbrcd, ng_device_id, email, unique_nick, firstname, lastname, has_ban, ban_reason, open_host, last_ingamesn, last_ip_address, csnum, discord_id, ban_moderator, ban_reason_hidden, ban_issued, ban_expires FROM users WHERE profile_id = $1`
2020 ClearProfileQuery = `DELETE FROM users WHERE profile_id = $1 RETURNING user_id, gsbrcd, email, unique_nick, firstname, lastname, open_host, last_ip_address, last_ingamesn, csnum`
2121 DoesUserExist = `SELECT EXISTS(SELECT 1 FROM users WHERE user_id = $1 AND gsbrcd = $2)`
2222 IsProfileIDInUse = `SELECT EXISTS(SELECT 1 FROM users WHERE profile_id = $1)`
2323 DeleteUserSession = `DELETE FROM sessions WHERE profile_id = $1`
24- GetUserProfileID = `SELECT profile_id, ng_device_id, email, unique_nick, firstname, lastname, open_host, last_ip_address, csnum FROM users WHERE user_id = $1 AND gsbrcd = $2`
24+ GetUserProfileID = `SELECT profile_id, ng_device_id, email, unique_nick, firstname, lastname, open_host, discord_id, last_ip_address, csnum FROM users WHERE user_id = $1 AND gsbrcd = $2`
2525 UpdateUserLastIPAddress = `UPDATE users SET last_ip_address = $2, last_ingamesn = $3 WHERE profile_id = $1`
26+ UpdateDiscordID = `UPDATE users SET discord_id = $2 WHERE profile_id = $1`
2627 UpdateUserBan = `UPDATE users SET has_ban = true, ban_issued = $2, ban_expires = $3, ban_reason = $4, ban_reason_hidden = $5, ban_moderator = $6, ban_tos = $7 WHERE profile_id = $1`
2728 DisableUserBan = `UPDATE users SET has_ban = false WHERE profile_id = $1`
2829
@@ -46,6 +47,7 @@ type User struct {
4647 LastInGameSn string
4748 LastIPAddress string
4849 Csnum []string
50+ DiscordID string
4951 // Following fields only used in GetUser query
5052 BanModerator string
5153 BanReasonHidden string
@@ -104,6 +106,14 @@ func (user *User) UpdateProfileID(pool *pgxpool.Pool, ctx context.Context, newPr
104106 return err
105107}
106108
109+ func (user * User ) UpdateDiscordID (pool * pgxpool.Pool , ctx context.Context , discordId string ) error {
110+ _ , err := pool .Exec (ctx , UpdateDiscordID , user .ProfileId , discordId )
111+ if err == nil {
112+ user .DiscordID = discordId
113+ }
114+ return err
115+ }
116+
107117func GetUniqueUserID () uint64 {
108118 // Not guaranteed unique but doesn't matter in practice if multiple people have the same user ID.
109119 return uint64 (rand .Int63n (0x80000000000 ))
@@ -148,8 +158,9 @@ func GetProfile(pool *pgxpool.Pool, ctx context.Context, profileId uint32) (User
148158 var lastIPAddress * string
149159 var banModerator * string
150160 var banHiddenReason * string
161+ var discordID * string
151162
152- err := row .Scan (& user .UserId , & user .GsbrCode , & user .NgDeviceId , & user .Email , & user .UniqueNick , & firstName , & lastName , & user .Restricted , & banReason , & user .OpenHost , & lastInGameSn , & lastIPAddress , & user .Csnum , & banModerator , & banHiddenReason , & user .BanIssued , & user .BanExpires )
163+ err := row .Scan (& user .UserId , & user .GsbrCode , & user .NgDeviceId , & user .Email , & user .UniqueNick , & firstName , & lastName , & user .Restricted , & banReason , & user .OpenHost , & lastInGameSn , & lastIPAddress , & user .Csnum , & discordID , & banModerator , & banHiddenReason , & user .BanIssued , & user .BanExpires )
153164
154165 if err != nil {
155166 return User {}, err
@@ -185,6 +196,10 @@ func GetProfile(pool *pgxpool.Pool, ctx context.Context, profileId uint32) (User
185196 user .BanReasonHidden = * banHiddenReason
186197 }
187198
199+ if discordID != nil {
200+ user .DiscordID = * discordID
201+ }
202+
188203 return user , nil
189204}
190205
0 commit comments