54 lines
1.2 KiB
Go
54 lines
1.2 KiB
Go
package config
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
"lst.net/utils/db"
|
|
logging "lst.net/utils/logger"
|
|
)
|
|
|
|
type ConfigUpdateInput struct {
|
|
Description *string `json:"description"`
|
|
Value *string `json:"value"`
|
|
Enabled *bool `json:"enabled"`
|
|
AppService *string `json:"app_service"`
|
|
}
|
|
|
|
func RegisterConfigRoutes(l *gin.Engine, baseUrl string) {
|
|
// seed the db on start up
|
|
db.SeedConfigs(db.DB)
|
|
|
|
configGroup := l.Group(baseUrl + "/api/config")
|
|
configGroup.GET("/configs", getconfigs)
|
|
configGroup.POST("/configs", newConfig)
|
|
}
|
|
|
|
func getconfigs(c *gin.Context) {
|
|
log := logging.New()
|
|
configs, err := db.GetAllConfigs(db.DB)
|
|
log.Info("Current Configs", "system", map[string]interface{}{
|
|
"endpoint": "/api/config/configs",
|
|
"client_ip": c.ClientIP(),
|
|
"user_agent": c.Request.UserAgent(),
|
|
})
|
|
|
|
if err != nil {
|
|
c.JSON(500, gin.H{"message": "There was an error getting the configs", "error": err})
|
|
}
|
|
|
|
c.JSON(200, gin.H{"message": "Current configs", "data": configs})
|
|
}
|
|
|
|
func newConfig(c *gin.Context) {
|
|
|
|
var config ConfigUpdateInput
|
|
|
|
err := c.ShouldBindBodyWithJSON(&config)
|
|
|
|
if err != nil {
|
|
c.JSON(500, gin.H{"message": "Internal Server Error"})
|
|
}
|
|
|
|
c.JSON(200, gin.H{"message": "New config was just added", "data": config})
|
|
|
|
}
|