48 lines
1.4 KiB
Go
48 lines
1.4 KiB
Go
package server
|
|
|
|
import "net/http"
|
|
|
|
type reorderRequest struct {
|
|
Direction string `json:"direction"`
|
|
}
|
|
|
|
func (server *Server) handlePause(writer http.ResponseWriter, request *http.Request) {
|
|
if err := server.manager.Pause(request.PathValue("id")); err != nil {
|
|
writeFailure(writer, request, 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, request, err)
|
|
return
|
|
}
|
|
writeJSON(writer, http.StatusAccepted, startedResponse{Started: true})
|
|
}
|
|
|
|
func (server *Server) handleReorder(writer http.ResponseWriter, request *http.Request) {
|
|
var body reorderRequest
|
|
if !decodeBody(writer, request, &body) {
|
|
return
|
|
}
|
|
if err := server.manager.Reorder(request.PathValue("id"), body.Direction); err != nil {
|
|
writeFailure(writer, request, 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, request *http.Request) {
|
|
if err := server.manager.ClearHistory(); err != nil {
|
|
writeFailure(writer, request, err)
|
|
return
|
|
}
|
|
writer.WriteHeader(http.StatusNoContent)
|
|
}
|