From 12f5b43f3595c2529063b80437ecb99bbfbc578e Mon Sep 17 00:00:00 2001 From: Dustin Pianalto Date: Sat, 23 Jan 2021 03:53:34 -0900 Subject: [PATCH] rework services and add test command --- cmd/geeksbot/main.go | 22 ++++++---------------- geeksbot.go | 14 -------------- internal/exts/init.go | 5 +++-- internal/exts/utils/utils.go | 33 +++++++++++++++++++++++++++++++++ internal/services/services.go | 26 ++++++++++++++++++++++++++ 5 files changed, 68 insertions(+), 32 deletions(-) delete mode 100644 geeksbot.go create mode 100644 internal/services/services.go diff --git a/cmd/geeksbot/main.go b/cmd/geeksbot/main.go index bb9cddb..54fb7f8 100644 --- a/cmd/geeksbot/main.go +++ b/cmd/geeksbot/main.go @@ -8,9 +8,9 @@ import ( "github.com/bwmarrin/discordgo" "github.com/dustinpianalto/disgoman" - "github.com/dustinpianalto/geeksbot" "github.com/dustinpianalto/geeksbot/internal/database" "github.com/dustinpianalto/geeksbot/internal/exts" + "github.com/dustinpianalto/geeksbot/internal/services" ) func main() { @@ -28,6 +28,7 @@ func main() { } database.ConnectDatabase(os.Getenv("DATABASE_URL")) + services.InitializeServices() owners := []string{ "351794468870946827", @@ -43,22 +44,11 @@ func main() { CheckPermissions: false, } - geeksbot := geeksbot.Geeksbot{ - GuildService: database.GuildService, - UserService: database.UserService, - ChannelService: database.ChannelService, - MessageService: database.MessageService, - PatreonService: database.PatreonService, - RequestService: database.RequestService, - ServerService: database.ServerService, - CommandManager: manager, - } - // Add Command Handlers - exts.AddCommandHandlers(&geeksbot) + exts.AddCommandHandlers(&manager) - dg.AddHandler(geeksbot.OnMessage) - dg.AddHandler(geeksbot.StatusManager.OnReady) + dg.AddHandler(manager.OnMessage) + dg.AddHandler(manager.StatusManager.OnReady) err = dg.Open() if err != nil { @@ -67,7 +57,7 @@ func main() { } // Start the Error handler in a goroutine - go ErrorHandler(geeksbot.ErrorChannel) + go ErrorHandler(manager.ErrorChannel) log.Println("The Bot is now running.") sc := make(chan os.Signal, 1) diff --git a/geeksbot.go b/geeksbot.go deleted file mode 100644 index 64620b3..0000000 --- a/geeksbot.go +++ /dev/null @@ -1,14 +0,0 @@ -package geeksbot - -import "github.com/dustinpianalto/disgoman" - -type Geeksbot struct { - GuildService GuildService - UserService UserService - ChannelService ChannelService - MessageService MessageService - RequestService RequestService - PatreonService PatreonService - ServerService ServerService - disgoman.CommandManager -} diff --git a/internal/exts/init.go b/internal/exts/init.go index 8961806..2a1b792 100644 --- a/internal/exts/init.go +++ b/internal/exts/init.go @@ -1,11 +1,11 @@ package exts import ( - "github.com/dustinpianalto/geeksbot" + "github.com/dustinpianalto/disgoman" "github.com/dustinpianalto/geeksbot/internal/exts/utils" ) -func AddCommandHandlers(g *geeksbot.Geeksbot) { +func AddCommandHandlers(g *disgoman.CommandManager) { // Arguments: // name - command name - string // desc - command description - string @@ -15,6 +15,7 @@ func AddCommandHandlers(g *geeksbot.Geeksbot) { // type - command type, sets where the command is available // run - function to run - func(anpan.Context, []string) / CommandRunFunc _ = g.AddCommand(utils.UserCommand) + _ = g.AddCommand(utils.AddUserCommand) _ = g.AddCommand(utils.SayCommand) _ = g.AddCommand(utils.GitCommand) _ = g.AddCommand(utils.InviteCommand) diff --git a/internal/exts/utils/utils.go b/internal/exts/utils/utils.go index 9a2a2a8..e0b331f 100644 --- a/internal/exts/utils/utils.go +++ b/internal/exts/utils/utils.go @@ -9,7 +9,9 @@ import ( "github.com/bwmarrin/discordgo" "github.com/dustinpianalto/disgoman" + "github.com/dustinpianalto/geeksbot" "github.com/dustinpianalto/geeksbot/internal/discord_utils" + "github.com/dustinpianalto/geeksbot/internal/services" ) var PingCommand = &disgoman.Command{ @@ -246,3 +248,34 @@ func userCommandFunc(ctx disgoman.Context, args []string) { } } } + +var AddUserCommand = &disgoman.Command{ + Name: "user", + Aliases: nil, + Description: "Get user info", + OwnerOnly: false, + Hidden: false, + RequiredPermissions: 0, + Invoke: addUserCommandFunc, +} + +func addUserCommandFunc(ctx disgoman.Context, args []string) { + if ctx.Message.Author.ID == ctx.CommandManager.Owners[0] { + user := geeksbot.User{ + ID: ctx.Message.Author.ID, + IsActive: true, + IsStaff: true, + IsAdmin: true, + } + user, err := services.UserService.CreateUser(user) + if err != nil { + ctx.CommandManager.ErrorChannel <- disgoman.CommandError{ + Context: ctx, + Message: "Error with adding user", + Error: err, + } + return + } + ctx.Session.MessageReactionAdd(ctx.Channel.ID, ctx.Message.ID, "✅") + } +} diff --git a/internal/services/services.go b/internal/services/services.go new file mode 100644 index 0000000..2434300 --- /dev/null +++ b/internal/services/services.go @@ -0,0 +1,26 @@ +package services + +import ( + "github.com/dustinpianalto/geeksbot" + "github.com/dustinpianalto/geeksbot/internal/database" +) + +var ( + GuildService geeksbot.GuildService + UserService geeksbot.UserService + ChannelService geeksbot.ChannelService + MessageService geeksbot.MessageService + PatreonService geeksbot.PatreonService + RequestService geeksbot.RequestService + ServerService geeksbot.ServerService +) + +func InitializeServices() { + GuildService = database.GuildService + UserService = database.UserService + ChannelService = database.ChannelService + MessageService = database.MessageService + PatreonService = database.PatreonService + RequestService = database.RequestService + ServerService = database.ServerService +}