Files
hammond/server/controllers/masters.go
Alf Sebastian Houge 9da21b2192 Change go module name
2023-02-16 22:35:03 +01:00

66 lines
1.6 KiB
Go

package controllers
import (
"net/http"
"hammond/common"
"hammond/db"
"hammond/models"
"hammond/service"
"github.com/gin-gonic/gin"
)
func RegisterAnonMasterConroller(router *gin.RouterGroup) {
router.GET("/masters", func(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{
"fuelUnits": db.FuelUnitDetails,
"fuelTypes": db.FuelTypeDetails,
"distanceUnits": db.DistanceUnitDetails,
"roles": db.RoleDetails,
"currencies": models.GetCurrencyMasterList(),
})
})
}
func RegisterMastersController(router *gin.RouterGroup) {
router.GET("/settings", getSettings)
router.POST("/settings", udpateSettings)
router.POST("/me/settings", udpateMySettings)
}
func getSettings(c *gin.Context) {
c.JSON(http.StatusOK, service.GetSettings())
}
func udpateSettings(c *gin.Context) {
var model models.UpdateSettingModel
if err := c.ShouldBind(&model); err == nil {
err := service.UpdateSettings(model.Currency, *model.DistanceUnit)
if err != nil {
c.JSON(http.StatusUnprocessableEntity, common.NewError("udpateSettings", err))
return
}
c.JSON(http.StatusOK, gin.H{})
} else {
c.JSON(http.StatusUnprocessableEntity, common.NewValidatorError(err))
}
}
func udpateMySettings(c *gin.Context) {
var model models.UpdateSettingModel
if err := c.ShouldBind(&model); err == nil {
err := service.UpdateUserSettings(c.MustGet("userId").(string), model.Currency, *model.DistanceUnit, model.DateFormat)
if err != nil {
c.JSON(http.StatusUnprocessableEntity, common.NewError("udpateMySettings", err))
return
}
c.JSON(http.StatusOK, gin.H{})
} else {
c.JSON(http.StatusUnprocessableEntity, common.NewValidatorError(err))
}
}