feat: add admin page
This commit is contained in:
16
app/app.go
16
app/app.go
@ -8,6 +8,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
var Server App
|
var Server App
|
||||||
|
var Admin App
|
||||||
|
|
||||||
type App struct {
|
type App struct {
|
||||||
http.Server
|
http.Server
|
||||||
@ -16,7 +17,7 @@ type App struct {
|
|||||||
Mail *email.SmtpServer
|
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{
|
return App{
|
||||||
Server: http.Server{
|
Server: http.Server{
|
||||||
Addr: addr,
|
Addr: addr,
|
||||||
@ -27,3 +28,16 @@ func NewServer(addr string, handler http.Handler, logger logger.AggregatedLogger
|
|||||||
Mail: &mail,
|
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{},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
27
main.go
27
main.go
@ -9,11 +9,13 @@ import (
|
|||||||
"github.com/fossyy/filekeeper/middleware"
|
"github.com/fossyy/filekeeper/middleware"
|
||||||
"github.com/fossyy/filekeeper/routes"
|
"github.com/fossyy/filekeeper/routes"
|
||||||
"github.com/fossyy/filekeeper/utils"
|
"github.com/fossyy/filekeeper/utils"
|
||||||
|
"net/http"
|
||||||
"strconv"
|
"strconv"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
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")
|
dbUser := utils.Getenv("DB_USERNAME")
|
||||||
dbPass := utils.Getenv("DB_PASSWORD")
|
dbPass := utils.Getenv("DB_PASSWORD")
|
||||||
@ -27,8 +29,27 @@ func main() {
|
|||||||
smtpPort, _ := strconv.Atoi(utils.Getenv("SMTP_PORT"))
|
smtpPort, _ := strconv.Atoi(utils.Getenv("SMTP_PORT"))
|
||||||
mailServer := email.NewSmtpServer(utils.Getenv("SMTP_HOST"), smtpPort, utils.Getenv("SMTP_USER"), utils.Getenv("SMTP_PASSWORD"))
|
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)
|
app.Server = app.NewClientServer(clientAddr, middleware.Handler(routes.SetupRoutes()), *logger.Logger(), database, mailServer)
|
||||||
fmt.Printf("Listening on http://%s\n", app.Server.Addr)
|
|
||||||
|
//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()
|
err := app.Server.ListenAndServe()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
|
Reference in New Issue
Block a user