From 6a183f2c4ea057830220c047730e0aeef7c4e090 Mon Sep 17 00:00:00 2001 From: Bagas Aulia Rezki Date: Sun, 18 Aug 2024 14:06:00 +0700 Subject: [PATCH] feat: add admin page --- app/app.go | 16 +++++++++++++++- main.go | 27 ++++++++++++++++++++++++--- 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/app/app.go b/app/app.go index 7be9975..d63191a 100644 --- a/app/app.go +++ b/app/app.go @@ -8,6 +8,7 @@ import ( ) var Server App +var Admin App type App struct { http.Server @@ -16,7 +17,7 @@ type App struct { Mail *email.SmtpServer } -func NewServer(addr string, handler http.Handler, logger logger.AggregatedLogger, database db.Database, mail email.SmtpServer) App { +func NewClientServer(addr string, handler http.Handler, logger logger.AggregatedLogger, database db.Database, mail email.SmtpServer) App { return App{ Server: http.Server{ Addr: addr, @@ -27,3 +28,16 @@ func NewServer(addr string, handler http.Handler, logger logger.AggregatedLogger Mail: &mail, } } + +func NewAdminServer(addr string, handler http.Handler, database db.Database) App { + return App{ + Server: http.Server{ + Addr: addr, + Handler: handler, + }, + // TODO: Remove the dummy struct + Logger: &logger.AggregatedLogger{}, + DB: &database, + Mail: &email.SmtpServer{}, + } +} diff --git a/main.go b/main.go index c0e3e3d..93f2704 100644 --- a/main.go +++ b/main.go @@ -9,11 +9,13 @@ import ( "github.com/fossyy/filekeeper/middleware" "github.com/fossyy/filekeeper/routes" "github.com/fossyy/filekeeper/utils" + "net/http" "strconv" ) func main() { - serverAddr := fmt.Sprintf("%s:%s", utils.Getenv("SERVER_HOST"), utils.Getenv("SERVER_PORT")) + clientAddr := fmt.Sprintf("%s:%s", utils.Getenv("SERVER_HOST"), utils.Getenv("SERVER_PORT")) + adminAddr := fmt.Sprintf("%s:%s", utils.Getenv("SERVER_HOST"), "27000") dbUser := utils.Getenv("DB_USERNAME") dbPass := utils.Getenv("DB_PASSWORD") @@ -27,8 +29,27 @@ func main() { smtpPort, _ := strconv.Atoi(utils.Getenv("SMTP_PORT")) mailServer := email.NewSmtpServer(utils.Getenv("SMTP_HOST"), smtpPort, utils.Getenv("SMTP_USER"), utils.Getenv("SMTP_PASSWORD")) - app.Server = app.NewServer(serverAddr, middleware.Handler(routes.SetupRoutes()), *logger.Logger(), database, mailServer) - fmt.Printf("Listening on http://%s\n", app.Server.Addr) + app.Server = app.NewClientServer(clientAddr, middleware.Handler(routes.SetupRoutes()), *logger.Logger(), database, mailServer) + + //TODO: Move admin route to its own folder + testRoute := http.NewServeMux() + testRoute.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + w.Write([]byte("Hello, World!")) + return + }) + + app.Admin = app.NewAdminServer(adminAddr, testRoute, database) + + go func() { + fmt.Printf("Admin Web App Listening on http://%s\n\n", app.Admin.Addr) + err := app.Admin.ListenAndServe() + if err != nil { + panic(err) + return + } + }() + + fmt.Printf("Client Web App Listening on http://%s\n", app.Server.Addr) err := app.Server.ListenAndServe() if err != nil { panic(err)