You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

38 lines
853 B

package handlers
import (
"database/sql"
"encoding/json"
"net/http"
"person-home/internal/db"
"person-home/internal/models"
)
type SettingsHandler struct {
DB *sql.DB
}
func (h *SettingsHandler) Get(w http.ResponseWriter, r *http.Request) {
s, err := db.GetSettings(h.DB)
if err != nil {
writeError(w, http.StatusInternalServerError, "failed to get settings")
return
}
writeJSON(w, http.StatusOK, s)
}
func (h *SettingsHandler) Update(w http.ResponseWriter, r *http.Request) {
var req models.UpdateSettingsRequest
if err := json.NewDecoder(r.Body).Decode(&req); err != nil {
writeError(w, http.StatusBadRequest, "invalid request body")
return
}
s, err := db.UpdateSettings(h.DB, &req)
if err != nil {
writeError(w, http.StatusInternalServerError, "failed to update settings")
return
}
writeJSON(w, http.StatusOK, s)
}