Cleaning up main a bit

This commit is contained in:
2026-01-21 14:25:47 -05:00
parent ce4f8ba7df
commit 44326e7d26

View File

@@ -101,52 +101,50 @@ func adminIDHandler(w http.ResponseWriter, r *http.Request) {
}
func adminMembersHandler(w http.ResponseWriter, r *http.Request) {
if r.Method == "GET" {
// Redirect to client's AdminMembersPage instead of serving members.html
w.Header().Set("Location", "/admin-members")
w.WriteHeader(http.StatusFound)
return
} else if r.Method == "POST" {
var year int
var err error
if err = r.ParseMultipartForm(10 << 20); err != nil {
http.Error(w, "Failed to parse multipart form", http.StatusBadRequest)
return
}
if y := r.FormValue("year"); y != "" {
year, err = strconv.Atoi(y)
if err != nil {
http.Error(w, "Invalid year", http.StatusBadRequest)
return
}
}
file, _, err := r.FormFile("members.csv")
if err != nil {
http.Error(w, "Failed to upload file", http.StatusBadRequest)
return
}
defer file.Close()
fileBytes, err := ioutil.ReadAll(file)
if err != nil {
http.Error(w, "Failed to read file", http.StatusInternalServerError)
return
}
if err = services.ParseMembersFromBytes(year, fileBytes); err != nil {
w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(map[string]string{"error": err.Error()})
return
}
w.WriteHeader(http.StatusOK)
json.NewEncoder(w).Encode(map[string]bool{"success": true})
} else {
if r.Method != http.MethodPost {
w.WriteHeader(http.StatusMethodNotAllowed)
return
}
var year int
var err error
if err = r.ParseMultipartForm(10 << 20); err != nil {
http.Error(w, "Failed to parse multipart form", http.StatusBadRequest)
return
}
year_from_form := r.FormValue("year")
if year_from_form == "" {
http.Error(w, "Year is required", http.StatusBadRequest)
return
} else {
year, err = strconv.Atoi(year_from_form)
if err != nil {
http.Error(w, "Invalid year", http.StatusBadRequest)
return
}
}
if file, _, err := r.FormFile("members.csv"); err != nil {
http.Error(w, "Failed to upload file", http.StatusBadRequest)
return
}
defer file.Close()
if fileBytes, err := ioutil.ReadAll(file); err != nil {
http.Error(w, "Failed to read file", http.StatusInternalServerError)
return
}
if err = services.ParseMembersFromBytes(year, fileBytes); err != nil {
w.WriteHeader(http.StatusBadRequest)
json.NewEncoder(w).Encode(map[string]string{"error": err.Error()})
return
}
w.WriteHeader(http.StatusOK)
json.NewEncoder(w).Encode(map[string]bool{"success": true})
}
func main() {