package settings import ( "github.com/gin-gonic/gin" "lst.net/utils/db" logging "lst.net/utils/logger" ) type SettingUpdateInput struct { Description *string `json:"description"` Value *string `json:"value"` Enabled *bool `json:"enabled"` AppService *string `json:"app_service"` } func RegisterSettingsRoutes(l *gin.Engine, baseUrl string) { // seed the db on start up db.SeedConfigs(db.DB) s := l.Group(baseUrl + "/api/v1") s.GET("/settings", getSettings) s.PATCH("/settings", updateSettingById) } func getSettings(c *gin.Context) { logger := logging.New() configs, err := db.GetAllConfigs(db.DB) logger.Info("Current Settings", "system", map[string]interface{}{ "endpoint": "/api/v1/settings", "client_ip": c.ClientIP(), "user_agent": c.Request.UserAgent(), }) if err != nil { logger.Error("Current Settings", "system", map[string]interface{}{ "endpoint": "/api/v1/settings", "client_ip": c.ClientIP(), "user_agent": c.Request.UserAgent(), "error": err, }) c.JSON(500, gin.H{"message": "There was an error getting the settings", "error": err}) } c.JSON(200, gin.H{"message": "Current settings", "data": configs}) } func updateSettingById(c *gin.Context) { logger := logging.New() var setting SettingUpdateInput err := c.ShouldBindBodyWithJSON(&setting) if err != nil { c.JSON(500, gin.H{"message": "Internal Server Error"}) logger.Error("Current Settings", "system", map[string]interface{}{ "endpoint": "/api/v1/settings", "client_ip": c.ClientIP(), "user_agent": c.Request.UserAgent(), "error": err, }) } c.JSON(200, gin.H{"message": "Setting was just updated", "data": setting}) }