33 lines
765 B
Go
33 lines
765 B
Go
package server_api
|
|
|
|
import (
|
|
"encoding/json"
|
|
"net/http"
|
|
|
|
"git.ohea.xyz/mediasrv/server/filesystem"
|
|
"github.com/op/go-logging"
|
|
)
|
|
|
|
var log = logging.MustGetLogger("mediasrv-server")
|
|
|
|
func SetupHTTPServer(mux *http.ServeMux, data_dir string) {
|
|
mux.HandleFunc("/server/files", func(w http.ResponseWriter, r *http.Request) {
|
|
filesHandler(data_dir, w, r)
|
|
})
|
|
}
|
|
|
|
func filesHandler(rootDir string, w http.ResponseWriter, r *http.Request) {
|
|
log.Debugf("/server/files called")
|
|
return_json, err := filesystem.GetFilesystem(rootDir)
|
|
if err != nil {
|
|
log.Errorf("Could not get filsystem data: %v", err)
|
|
return
|
|
}
|
|
data, err := json.MarshalIndent(return_json, "", "\t")
|
|
if err != nil {
|
|
log.Errorf("Could not marshal data: %v\n", err)
|
|
return
|
|
}
|
|
w.Write(data)
|
|
}
|