dao.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package favorite
  2. import (
  3. "context"
  4. "go-common/app/interface/main/app-view/conf"
  5. favrpc "go-common/app/service/main/favorite/api/gorpc"
  6. fav "go-common/app/service/main/favorite/model"
  7. httpx "go-common/library/net/http/blademaster"
  8. "go-common/library/net/metadata"
  9. )
  10. const (
  11. _isFavDef = "/x/internal/v2/fav/video/default"
  12. _isFav = "/x/internal/v2/fav/video/favoured"
  13. _addFav = "/x/internal/v2/fav/video/add"
  14. _typeVideo = 2
  15. )
  16. // Dao is favorite dao
  17. type Dao struct {
  18. client *httpx.Client
  19. isFavDef string
  20. isFav string
  21. addFav string
  22. favRPC *favrpc.Service
  23. }
  24. // New initial favorite dao
  25. func New(c *conf.Config) (d *Dao) {
  26. d = &Dao{
  27. client: httpx.NewClient(c.HTTPClient),
  28. isFavDef: c.Host.APICo + _isFavDef,
  29. isFav: c.Host.APICo + _isFav,
  30. addFav: c.Host.APICo + _addFav,
  31. favRPC: favrpc.New2(c.FavoriteRPC),
  32. }
  33. return
  34. }
  35. // AddVideo add favorite
  36. func (d *Dao) AddVideo(c context.Context, mid int64, fids []int64, aid int64, ak string) error {
  37. ip := metadata.String(c, metadata.RemoteIP)
  38. return d.favRPC.AddVideo(c, &fav.ArgAddVideo{Mid: mid, Fids: fids, Aid: aid, AccessKey: ak, RealIP: ip})
  39. }
  40. // AddVideo add favorite
  41. func (d *Dao) IsFavVideo(c context.Context, mid, aid int64) (faved bool, err error) {
  42. ip := metadata.String(c, metadata.RemoteIP)
  43. return d.favRPC.IsFav(c, &fav.ArgIsFav{Type: _typeVideo, Mid: mid, Oid: aid, RealIP: ip})
  44. }