60 lines
2.0 KiB
Go
60 lines
2.0 KiB
Go
package handlers
|
|
|
|
import (
|
|
"database/sql"
|
|
"log"
|
|
"net/http"
|
|
|
|
"synlotto-website/internal/helpers"
|
|
templateHelpers "synlotto-website/internal/helpers/template"
|
|
"synlotto-website/internal/models"
|
|
resultsThunderballStorage "synlotto-website/internal/storage/results/thunderball"
|
|
)
|
|
|
|
func NewDraw(db *sql.DB) http.HandlerFunc {
|
|
return func(w http.ResponseWriter, r *http.Request) {
|
|
data := models.TemplateData{}
|
|
context := templateHelpers.TemplateContext(w, r, data)
|
|
context["Page"] = "new_draw"
|
|
context["Data"] = nil
|
|
|
|
tmpl := templateHelpers.LoadTemplateFiles("new_draw.html", "web/templates/admin/draws/new_draw.html") // ToDo: may need removing or moving add draw should be admin functionality and only when manually required. Potential live drawing of numbers in the future.
|
|
|
|
err := tmpl.ExecuteTemplate(w, "layout", context)
|
|
if err != nil {
|
|
log.Println("❌ Template error:", err)
|
|
http.Error(w, "Error rendering form", http.StatusInternalServerError)
|
|
}
|
|
}
|
|
}
|
|
|
|
func Submit(db *sql.DB, w http.ResponseWriter, r *http.Request) {
|
|
log.Println("📝 Form submission received")
|
|
_ = r.ParseForm()
|
|
|
|
draw := models.ThunderballResult{
|
|
DrawDate: r.FormValue("date"),
|
|
Machine: r.FormValue("machine"),
|
|
BallSet: helpers.Atoi(r.FormValue("ballSet")),
|
|
Ball1: helpers.Atoi(r.FormValue("ball1")),
|
|
Ball2: helpers.Atoi(r.FormValue("ball2")),
|
|
Ball3: helpers.Atoi(r.FormValue("ball3")),
|
|
Ball4: helpers.Atoi(r.FormValue("ball4")),
|
|
Ball5: helpers.Atoi(r.FormValue("ball5")),
|
|
Thunderball: helpers.Atoi(r.FormValue("thunderball")),
|
|
}
|
|
|
|
err := resultsThunderballStorage.InsertThunderballResult(db, draw)
|
|
if err != nil {
|
|
log.Println("❌ Failed to insert draw:", err)
|
|
http.Error(w, "Failed to save draw", http.StatusInternalServerError)
|
|
return
|
|
}
|
|
|
|
log.Printf("📅 %s | 🛠 %s | 🎱 %d | 🔢 %d,%d,%d,%d,%d | ⚡ %d\n",
|
|
draw.DrawDate, draw.Machine, draw.BallSet,
|
|
draw.Ball1, draw.Ball2, draw.Ball3, draw.Ball4, draw.Ball5, draw.Thunderball)
|
|
|
|
http.Redirect(w, r, "/", http.StatusSeeOther)
|
|
}
|