expand on admin functionality, hardening still needs to be implemented.
This commit is contained in:
40
main.go
40
main.go
@@ -1,10 +1,11 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"log"
|
||||
"net/http"
|
||||
"synlotto-website/handlers"
|
||||
services "synlotto-website/handlers/admin"
|
||||
admin "synlotto-website/handlers/admin"
|
||||
"synlotto-website/helpers"
|
||||
"synlotto-website/middleware"
|
||||
"synlotto-website/models"
|
||||
@@ -24,27 +25,40 @@ func main() {
|
||||
)
|
||||
|
||||
mux := http.NewServeMux()
|
||||
setupAdminRoutes(mux, db)
|
||||
setupAccountRoutes(mux, db)
|
||||
setupResultRoutes(mux, db)
|
||||
|
||||
// Styling
|
||||
mux.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static"))))
|
||||
|
||||
mux.HandleFunc("/", handlers.Home(db))
|
||||
mux.HandleFunc("/new", handlers.NewDraw) // ToDo: needs to be wrapped in admin auth
|
||||
mux.HandleFunc("/submit", handlers.Submit)
|
||||
|
||||
// Result pages
|
||||
mux.HandleFunc("/results/thunderball", handlers.ResultsThunderball(db))
|
||||
log.Println("🌐 Running on http://localhost:8080")
|
||||
http.ListenAndServe(":8080", helpers.RateLimit(csrfMiddleware(mux)))
|
||||
}
|
||||
|
||||
// Account Pages
|
||||
func setupAdminRoutes(mux *http.ServeMux, db *sql.DB) {
|
||||
mux.HandleFunc("/admin/dashboard", admin.AdminDashboardHandler(db))
|
||||
mux.HandleFunc("/admin/triggers", admin.AdminTriggersHandler(db))
|
||||
|
||||
// Draw management
|
||||
mux.HandleFunc("/admin/draws/new", admin.NewDrawHandler(db))
|
||||
mux.HandleFunc("/admin/draws/modify", admin.ModifyDrawHandler(db))
|
||||
mux.HandleFunc("/admin/draws/delete", admin.DeleteDrawHandler(db))
|
||||
|
||||
// Prize management
|
||||
mux.HandleFunc("/admin/draws/prizes/add", admin.AddPrizesHandler(db))
|
||||
mux.HandleFunc("/admin/draws/prizes/modify", admin.ModifyPrizesHandler(db))
|
||||
}
|
||||
|
||||
func setupAccountRoutes(mux *http.ServeMux, db *sql.DB) {
|
||||
mux.HandleFunc("/login", middleware.Auth(false)(handlers.Login))
|
||||
mux.HandleFunc("/logout", handlers.Logout)
|
||||
mux.HandleFunc("/signup", middleware.Auth(false)(handlers.Signup))
|
||||
mux.HandleFunc("/account/tickets/add_ticket", handlers.AddTicket(db))
|
||||
mux.HandleFunc("/account/tickets/my_tickets", handlers.GetMyTickets(db))
|
||||
|
||||
// Admin Pages
|
||||
mux.HandleFunc("/admin/triggers", services.AdminTriggersHandler(db))
|
||||
|
||||
log.Println("🌐 Running on http://localhost:8080")
|
||||
http.ListenAndServe(":8080", helpers.RateLimit(csrfMiddleware(mux)))
|
||||
}
|
||||
|
||||
func setupResultRoutes(mux *http.ServeMux, db *sql.DB) {
|
||||
mux.HandleFunc("/results/thunderball", handlers.ResultsThunderball(db))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user