diff --git a/setup_schedule.go b/setup_schedule.go index 0a251ee..a0744c9 100644 --- a/setup_schedule.go +++ b/setup_schedule.go @@ -94,6 +94,28 @@ func ScheduleGeneratePostHandler(w http.ResponseWriter, r *http.Request) { http.Redirect(w, r, "/setup/schedule", 302) } +// Publishes the schedule in the database to TBA +func ScheduleRepublishPostHandler(w http.ResponseWriter, r *http.Request) { + if eventSettings.TbaPublishingEnabled { + // Publish schedule to The Blue Alliance. + err := DeletePublishedMatches() + if err != nil { + http.Error(w, "Failed to delete published matches: "+err.Error(), 500) + return + } + err = PublishMatches() + if err != nil { + http.Error(w, "Failed to publish matches: "+err.Error(), 500) + return + } + } else { + http.Error(w, "TBA publishing is not enabled", 500) + return + } + + http.Redirect(w, r, "/setup/schedule", 302) +} + // Saves the generated schedule to the database. func ScheduleSavePostHandler(w http.ResponseWriter, r *http.Request) { if !UserIsAdmin(w, r) { diff --git a/templates/setup_schedule.html b/templates/setup_schedule.html index 9effb63..cd638cb 100644 --- a/templates/setup_schedule.html +++ b/templates/setup_schedule.html @@ -53,6 +53,15 @@ + {{if .EventSettings.TbaPublishingEnabled}} +
+
+ +
+
+ {{end}} @@ -135,6 +144,27 @@ + + {{end}} {{define "script"}} diff --git a/web.go b/web.go index f35b5bc..952aab2 100644 --- a/web.go +++ b/web.go @@ -175,6 +175,7 @@ func newHandler() http.Handler { router.HandleFunc("/setup/teams/generate_wpa_keys", TeamsGenerateWpaKeysHandler).Methods("GET") router.HandleFunc("/setup/schedule", ScheduleGetHandler).Methods("GET") router.HandleFunc("/setup/schedule/generate", ScheduleGeneratePostHandler).Methods("POST") + router.HandleFunc("/setup/schedule/republish", ScheduleRepublishPostHandler).Methods("POST") router.HandleFunc("/setup/schedule/save", ScheduleSavePostHandler).Methods("POST") router.HandleFunc("/setup/alliance_selection", AllianceSelectionGetHandler).Methods("GET") router.HandleFunc("/setup/alliance_selection", AllianceSelectionPostHandler).Methods("POST")