49 lines
1.4 KiB
Go
49 lines
1.4 KiB
Go
package server
|
|
|
|
import "net/http"
|
|
|
|
func (server *Server) handlePause(writer http.ResponseWriter, request *http.Request) {
|
|
if err := server.manager.Pause(request.PathValue("id")); err != nil {
|
|
writeFailure(writer, err)
|
|
return
|
|
}
|
|
writeJSON(writer, http.StatusAccepted, startedResponse{Started: true})
|
|
}
|
|
|
|
func (server *Server) handleResume(writer http.ResponseWriter, request *http.Request) {
|
|
if err := server.manager.Resume(request.PathValue("id")); err != nil {
|
|
writeFailure(writer, err)
|
|
return
|
|
}
|
|
writeJSON(writer, http.StatusAccepted, startedResponse{Started: true})
|
|
}
|
|
|
|
type reorderRequest struct {
|
|
Direction string `json:"direction"`
|
|
}
|
|
|
|
func (server *Server) handleReorder(writer http.ResponseWriter, request *http.Request) {
|
|
var body reorderRequest
|
|
if err := decodeJSON(request, &body); err != nil {
|
|
writeError(writer, http.StatusBadRequest, "invalid request body")
|
|
return
|
|
}
|
|
if err := server.manager.Reorder(request.PathValue("id"), body.Direction); err != nil {
|
|
writeFailure(writer, err)
|
|
return
|
|
}
|
|
writeJSON(writer, http.StatusOK, startedResponse{Started: true})
|
|
}
|
|
|
|
func (server *Server) handleHistory(writer http.ResponseWriter, _ *http.Request) {
|
|
writeJSON(writer, http.StatusOK, server.manager.History())
|
|
}
|
|
|
|
func (server *Server) handleClearHistory(writer http.ResponseWriter, _ *http.Request) {
|
|
if err := server.manager.ClearHistory(); err != nil {
|
|
writeFailure(writer, err)
|
|
return
|
|
}
|
|
writer.WriteHeader(http.StatusNoContent)
|
|
}
|