77 lines
1.4 KiB
Go
77 lines
1.4 KiB
Go
package handler
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
service "kra/internal/service/asset"
|
|
"kra/internal/service/dto"
|
|
)
|
|
|
|
type Asset struct{ s *service.Service }
|
|
|
|
func NewAsset(s *service.Service) *Asset { return &Asset{s: s} }
|
|
func (h *Asset) List(c *gin.Context) {
|
|
in, ok := bindQuery[dto.AssetUserListRequest](c)
|
|
if !ok {
|
|
return
|
|
}
|
|
v, total, e := h.s.List(c.Request.Context(), in)
|
|
if e != nil {
|
|
businessFail(c, e)
|
|
return
|
|
}
|
|
OKWithData(c, gin.H{"list": v, "total": total})
|
|
}
|
|
func (h *Asset) Get(c *gin.Context) {
|
|
id, ok := businessID(c)
|
|
if !ok {
|
|
return
|
|
}
|
|
v, e := h.s.Get(c.Request.Context(), id)
|
|
if e != nil {
|
|
businessFail(c, e)
|
|
return
|
|
}
|
|
OKWithData(c, v)
|
|
}
|
|
func (h *Asset) Status(c *gin.Context) {
|
|
id, ok := businessID(c)
|
|
if !ok {
|
|
return
|
|
}
|
|
in, ok := bindJSON[dto.LiveStatusRequest](c)
|
|
if !ok {
|
|
return
|
|
}
|
|
claims := Claims(c)
|
|
actor := uint(0)
|
|
if claims != nil {
|
|
actor = claims.ID
|
|
}
|
|
if e := h.s.SetEnabled(c.Request.Context(), actor, id, in.Enabled); e != nil {
|
|
businessFail(c, e)
|
|
return
|
|
}
|
|
OK(c)
|
|
}
|
|
func (h *Asset) Adjust(c *gin.Context) {
|
|
id, ok := businessID(c)
|
|
if !ok {
|
|
return
|
|
}
|
|
in, ok := bindJSON[dto.AssetAdjustmentRequest](c)
|
|
if !ok {
|
|
return
|
|
}
|
|
claims := Claims(c)
|
|
actor := uint(0)
|
|
if claims != nil {
|
|
actor = claims.ID
|
|
}
|
|
v, e := h.s.Adjust(c.Request.Context(), actor, id, in)
|
|
if e != nil {
|
|
businessFail(c, e)
|
|
return
|
|
}
|
|
OKWithData(c, v)
|
|
}
|