package handlers import ( "github.com/gin-gonic/gin" "github.com/tradarr/backend/internal/httputil" ) func (h *Handler) GetMe(c *gin.Context) { userID := c.GetString("userID") user, err := h.repo.GetUserByID(userID) if err != nil || user == nil { httputil.NotFound(c) return } httputil.OK(c, user) } func (h *Handler) GetMyAssets(c *gin.Context) { userID := c.GetString("userID") assets, err := h.repo.GetUserAssets(userID) if err != nil { httputil.InternalError(c, err) return } httputil.OK(c, assets) } type addAssetRequest struct { Symbol string `json:"symbol" binding:"required"` Name string `json:"name"` } func (h *Handler) AddMyAsset(c *gin.Context) { userID := c.GetString("userID") var req addAssetRequest if err := c.ShouldBindJSON(&req); err != nil { httputil.BadRequest(c, err) return } asset, err := h.repo.AddUserAsset(userID, req.Symbol, req.Name) if err != nil { httputil.InternalError(c, err) return } httputil.Created(c, asset) } func (h *Handler) RemoveMyAsset(c *gin.Context) { userID := c.GetString("userID") symbol := c.Param("symbol") if err := h.repo.RemoveUserAsset(userID, symbol); err != nil { httputil.InternalError(c, err) return } httputil.NoContent(c) }