From cadef92efb5e2e9cf568f9715f06b07dd48b7a6a Mon Sep 17 00:00:00 2001 From: Dustin Pianalto Date: Fri, 9 Oct 2020 23:43:56 -0800 Subject: [PATCH] Add user to guild on user create --- internal/exts/tags/tags.go | 2 +- internal/exts/user_management/member_join.go | 2 +- internal/postgres/user.go | 9 ++++++--- user.go | 2 +- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/internal/exts/tags/tags.go b/internal/exts/tags/tags.go index 242909b..f30232f 100644 --- a/internal/exts/tags/tags.go +++ b/internal/exts/tags/tags.go @@ -57,7 +57,7 @@ func addTagCommandFunc(ctx disgoman.Context, input []string) { } return } - err = services.UserService.CreateUser(&goff.User{ID: ctx.User.ID}) + err = services.UserService.CreateUser(&goff.User{ID: ctx.User.ID}, ctx.Guild.ID) if err != nil { log.Printf("Error creating user %s: %s", ctx.User.ID, err.Error()) } diff --git a/internal/exts/user_management/member_join.go b/internal/exts/user_management/member_join.go index b884efa..b50d28f 100644 --- a/internal/exts/user_management/member_join.go +++ b/internal/exts/user_management/member_join.go @@ -25,7 +25,7 @@ func OnGuildMemberAdd(s *discordgo.Session, member *discordgo.GuildMemberAdd) { IsStaff: false, IsAdmin: false, } - err := services.UserService.CreateUser(user) + err := services.UserService.CreateUser(user, member.GuildID) if err != nil { log.Println("Error adding user to database: ", err) } diff --git a/internal/postgres/user.go b/internal/postgres/user.go index d020b0c..4a3bffe 100644 --- a/internal/postgres/user.go +++ b/internal/postgres/user.go @@ -36,10 +36,13 @@ func (s *UserService) User(id string) (*goff.User, error) { return &u, nil } -func (s *UserService) CreateUser(u *goff.User) error { +func (s *UserService) CreateUser(u *goff.User, gid string) error { queryString := `INSERT INTO users (id, banned, logging, steam_id, is_active, is_staff, is_admin) - VALUES ($1, $2, $3, $4, $5, $6, $7) ON CONFLICT (id) DO NOTHING` + VALUES ($1, $2, $3, $4, $5, $6, $7) ON CONFLICT DO NOTHING` _, err := s.DB.Exec(queryString, u.ID, u.Banned, u.Logging, u.SteamID, u.IsActive, u.IsStaff, u.IsAdmin) + if err == nil { + err = s.AddUserToGuild(u, &goff.Guild{ID: gid}) + } return err } @@ -59,7 +62,7 @@ func (s *UserService) MarkUserInactive(u *goff.User) error { } func (s *UserService) AddUserToGuild(u *goff.User, g *goff.Guild) error { - queryString := `INSERT INTO x_users_guilds (user_id, guild_id) VALUES ($1, $2)` + queryString := `INSERT INTO x_users_guilds (user_id, guild_id) VALUES ($1, $2) ON CONFLICT DO NOTHING` _, err := s.DB.Exec(queryString, u.ID, g.ID) return err } diff --git a/user.go b/user.go index 0724236..adc7a83 100644 --- a/user.go +++ b/user.go @@ -13,7 +13,7 @@ type User struct { type UserService interface { User(id string) (*User, error) - CreateUser(u *User) error + CreateUser(u *User, gid string) error DeleteUser(u *User) error MarkUserInactive(u *User) error AddUserToGuild(u *User, g *Guild) error