Initial DDC release
This commit is contained in:
commit
434f6441da
57 files changed
+4606
No files matched your search
@@ -0,0 +1,38 @@
|
||||
package server
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
|
||||
"ddc/internal/preferences"
|
||||
)
|
||||
|
||||
type settingsResponse struct {
|
||||
Settings preferences.Preferences `json:"settings"`
|
||||
DownloadDir string `json:"downloadDir"`
|
||||
LibraryRoots []string `json:"libraryRoots"`
|
||||
}
|
||||
|
||||
func (server *Server) handleGetSettings(writer http.ResponseWriter, _ *http.Request) {
|
||||
writeJSON(writer, http.StatusOK, server.settingsSnapshot())
|
||||
}
|
||||
|
||||
func (server *Server) handleUpdateSettings(writer http.ResponseWriter, request *http.Request) {
|
||||
var body preferences.Preferences
|
||||
if err := decodeJSON(request, &body); err != nil {
|
||||
writeError(writer, http.StatusBadRequest, "invalid request body")
|
||||
return
|
||||
}
|
||||
if err := server.manager.UpdatePreferences(body); err != nil {
|
||||
writeFailure(writer, err)
|
||||
return
|
||||
}
|
||||
writeJSON(writer, http.StatusOK, server.settingsSnapshot())
|
||||
}
|
||||
|
||||
func (server *Server) settingsSnapshot() settingsResponse {
|
||||
return settingsResponse{
|
||||
Settings: server.manager.Preferences(),
|
||||
DownloadDir: server.settings.DownloadDir,
|
||||
LibraryRoots: server.settings.LibraryRoots,
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user