40 lines
1 KiB
Go
40 lines
1 KiB
Go
package server
|
|
|
|
import (
|
|
"fmt"
|
|
"log/slog"
|
|
"net/http"
|
|
)
|
|
|
|
func HandleSetQueueEnable(w http.ResponseWriter, r *http.Request) {
|
|
err := r.ParseForm()
|
|
if err != nil {
|
|
http.Error(w, fmt.Sprintf("Parseing Form: %v", err), http.StatusBadRequest)
|
|
return
|
|
}
|
|
enable := r.FormValue("enable")
|
|
if enable != "true" && enable != "false" {
|
|
http.Error(w, "Enable must be true or false", http.StatusBadRequest)
|
|
return
|
|
}
|
|
|
|
worker := r.FormValue("worker")
|
|
|
|
slog.Info("Got set Queue Enable", "enable", enable, "worker", worker)
|
|
|
|
if worker == "all" {
|
|
_, err = db.Exec(r.Context(), "UPDATE workers SET queue_enable = $1", enable)
|
|
if err != nil {
|
|
http.Error(w, fmt.Sprintf("Setting Worker Queue Enable: %v", err), http.StatusInternalServerError)
|
|
return
|
|
}
|
|
} else {
|
|
_, err = db.Exec(r.Context(), "UPDATE workers SET queue_enable = $1 where id = $2", enable, worker)
|
|
if err != nil {
|
|
http.Error(w, fmt.Sprintf("Setting Worker Queue Enable: %v", err), http.StatusInternalServerError)
|
|
return
|
|
}
|
|
}
|
|
|
|
http.Redirect(w, r, r.Header.Get("Referer"), http.StatusFound)
|
|
}
|