57 lines
1.2 KiB
Go
57 lines
1.2 KiB
Go
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)
|
|
}
|