80 lines
2.0 KiB
Go
80 lines
2.0 KiB
Go
package handlers
|
|
|
|
import (
|
|
"database/sql"
|
|
"html/template"
|
|
"log"
|
|
"net/http"
|
|
|
|
"synlotto-website/helpers"
|
|
"synlotto-website/models"
|
|
)
|
|
|
|
func templateFuncs() template.FuncMap {
|
|
return template.FuncMap{
|
|
"plus1": func(i int) int { return i + 1 },
|
|
"minus1": func(i int) int {
|
|
if i > 1 {
|
|
return i - 1
|
|
}
|
|
return 0
|
|
},
|
|
"mul": func(a, b int) int { return a * b },
|
|
"add": func(a, b int) int { return a + b },
|
|
"min": func(a, b int) int {
|
|
if a < b {
|
|
return a
|
|
}
|
|
return b
|
|
},
|
|
}
|
|
}
|
|
|
|
func NewDraw(db *sql.DB) http.HandlerFunc {
|
|
return func(w http.ResponseWriter, r *http.Request) {
|
|
log.Println("➡️ New draw form opened")
|
|
|
|
context := BuildTemplateContext(db, w, r)
|
|
context["Page"] = "new_draw"
|
|
context["Data"] = nil
|
|
|
|
tmpl := template.Must(template.New("").Funcs(templateFuncs()).ParseFiles(
|
|
"templates/layout.html",
|
|
"templates/topbar.html",
|
|
"templates/new_draw.html",
|
|
))
|
|
|
|
err := tmpl.ExecuteTemplate(w, "layout", context)
|
|
if err != nil {
|
|
log.Println("❌ Template error:", err)
|
|
http.Error(w, "Error rendering form", http.StatusInternalServerError)
|
|
}
|
|
}
|
|
}
|
|
|
|
func Submit(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")),
|
|
}
|
|
|
|
// For now you're appending to memory - can replace with DB insert later
|
|
Draws = append(Draws, draw)
|
|
|
|
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)
|
|
}
|