94594db20a
update the frontend to persist settings to the database. Using ScrutinyConfigService instead of TreoConfigService. Using snake case settings in frontend. Make sure we're using AppConfig type where possible.
35 lines
868 B
Go
35 lines
868 B
Go
package handler
|
|
|
|
import (
|
|
"github.com/analogj/scrutiny/webapp/backend/pkg/database"
|
|
"github.com/analogj/scrutiny/webapp/backend/pkg/models"
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/sirupsen/logrus"
|
|
"net/http"
|
|
)
|
|
|
|
func SaveSettings(c *gin.Context) {
|
|
logger := c.MustGet("LOGGER").(logrus.FieldLogger)
|
|
deviceRepo := c.MustGet("DEVICE_REPOSITORY").(database.DeviceRepo)
|
|
|
|
var settings models.Settings
|
|
err := c.BindJSON(&settings)
|
|
if err != nil {
|
|
logger.Errorln("Cannot parse updated settings", err)
|
|
c.JSON(http.StatusInternalServerError, gin.H{"success": false})
|
|
return
|
|
}
|
|
|
|
err = deviceRepo.SaveSettings(c, settings)
|
|
if err != nil {
|
|
logger.Errorln("An error occurred while saving settings", err)
|
|
c.JSON(http.StatusInternalServerError, gin.H{"success": false})
|
|
return
|
|
}
|
|
|
|
c.JSON(http.StatusOK, gin.H{
|
|
"success": true,
|
|
"settings": settings,
|
|
})
|
|
}
|