50 lines
1.0 KiB
Go
Executable File
50 lines
1.0 KiB
Go
Executable File
package controllers
|
|
|
|
import (
|
|
"github.com/gofiber/fiber/v2" //nolint:goimports
|
|
"github.com/sujit-baniya/fiber-boilerplate/pkg/auth"
|
|
"github.com/sujit-baniya/fiber-boilerplate/pkg/models"
|
|
"strconv"
|
|
)
|
|
|
|
|
|
func UserInfo(c *fiber.Ctx) error {
|
|
users, err := models.GetUserById(c.Params("id"))
|
|
if err != nil {
|
|
return c.JSON(fiber.Map{
|
|
"message": err.Error(),
|
|
"error": true,
|
|
})
|
|
}
|
|
return c.JSON(users)
|
|
}
|
|
|
|
func Me(c *fiber.Ctx) error {
|
|
user, _ := auth.User(c)
|
|
return c.JSON(user)
|
|
}
|
|
|
|
func UserSettings(c *fiber.Ctx) error {
|
|
uid, _ := strconv.ParseUint(c.Params("id"), 10, 32)
|
|
user := models.User{
|
|
ID: uint(uid),
|
|
}
|
|
settings, err := user.Settings()
|
|
if err != nil {
|
|
return c.JSON(fiber.Map{
|
|
"message": err.Error(),
|
|
"error": true,
|
|
})
|
|
}
|
|
return c.JSON(settings)
|
|
}
|
|
|
|
func StoreUserSettings(c *fiber.Ctx) error {
|
|
var userSettings models.UserSetting
|
|
c.BodyParser(&userSettings)
|
|
uid, _ := strconv.ParseUint(c.Params("id"), 10, 32)
|
|
userSettings.UserID = uint(uid)
|
|
userSettings.UpdateOrCreate()
|
|
return c.JSON(userSettings)
|
|
}
|