beginning of client
This commit is contained in:
+31
-5
@@ -34,22 +34,48 @@ func (s *serverImpl) createHandler() http.Handler {
|
||||
w.WriteHeader(http.StatusNotFound)
|
||||
w.Write([]byte("The given path is not valid"))
|
||||
})
|
||||
m.HandleFunc(PingPath, s.makeSimpleEndpointHandler(func() error { return nil }))
|
||||
m.HandleFunc(PlayPath, s.makeSimpleEndpointHandler(s.handler.Continue))
|
||||
m.HandleFunc(PausePath, s.makeSimpleEndpointHandler(s.handler.Pause))
|
||||
m.HandleFunc(PlayPausePath, s.makeSimpleEndpointHandler(s.handler.PlayPause))
|
||||
m.HandleFunc(StopPath, s.makeSimpleEndpointHandler(s.handler.Stop))
|
||||
m.HandleFunc(PreviousPath, s.makeSimpleEndpointHandler(s.handler.SeekBackOrPrevious))
|
||||
m.HandleFunc(NextPath, s.makeSimpleEndpointHandler(s.handler.SeekNext))
|
||||
m.HandleFunc(TimePosPath, func(w http.ResponseWriter, r *http.Request) {
|
||||
var t TimePos
|
||||
if err := json.NewDecoder(r.Response.Body).Decode(&t); err != nil {
|
||||
s.writeErr(w, err)
|
||||
return
|
||||
}
|
||||
s.writeSimpleResponse(w, s.handler.SeekSeconds(t.Seconds))
|
||||
})
|
||||
m.HandleFunc(VolumePath, func(w http.ResponseWriter, r *http.Request) {
|
||||
if r.Method == http.MethodGet {
|
||||
msg, _ := json.Marshal(Volume{Volume: s.handler.Volume()})
|
||||
w.Write(msg)
|
||||
return
|
||||
}
|
||||
var v Volume
|
||||
if err := json.NewDecoder(r.Response.Body).Decode(&v); err != nil {
|
||||
s.writeErr(w, err)
|
||||
return
|
||||
}
|
||||
s.writeSimpleResponse(w, s.handler.SetVolume(v.Volume))
|
||||
})
|
||||
return m
|
||||
}
|
||||
|
||||
func (s *serverImpl) makeSimpleEndpointHandler(f func() error) func(http.ResponseWriter, *http.Request) {
|
||||
return func(w http.ResponseWriter, r *http.Request) {
|
||||
if err := f(); err == nil {
|
||||
s.writeOK(w)
|
||||
} else {
|
||||
s.writeErr(w, err)
|
||||
}
|
||||
s.writeSimpleResponse(w, f())
|
||||
}
|
||||
}
|
||||
|
||||
func (s *serverImpl) writeSimpleResponse(w http.ResponseWriter, err error) {
|
||||
if err == nil {
|
||||
s.writeOK(w)
|
||||
} else {
|
||||
s.writeErr(w, err)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user