favorite.go 985 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package sqlstore
  2. import (
  3. "github.com/go-xorm/xorm"
  4. "github.com/torkelo/grafana-pro/pkg/bus"
  5. m "github.com/torkelo/grafana-pro/pkg/models"
  6. )
  7. func init() {
  8. bus.AddHandler("sql", AddAsFavorite)
  9. bus.AddHandler("sql", RemoveAsFavorite)
  10. bus.AddHandler("sql", GetUserFavorites)
  11. }
  12. func AddAsFavorite(cmd *m.AddAsFavoriteCommand) error {
  13. return inTransaction(func(sess *xorm.Session) error {
  14. entity := m.Favorite{
  15. UserId: cmd.UserId,
  16. DashboardId: cmd.DashboardId,
  17. }
  18. _, err := sess.Insert(&entity)
  19. return err
  20. })
  21. }
  22. func RemoveAsFavorite(cmd *m.RemoveAsFavoriteCommand) error {
  23. return inTransaction(func(sess *xorm.Session) error {
  24. var rawSql = "DELETE FROM favorite WHERE user_id=? and dashboard_id=?"
  25. _, err := sess.Exec(rawSql, cmd.UserId, cmd.DashboardId)
  26. return err
  27. })
  28. }
  29. func GetUserFavorites(query *m.GetUserFavoritesQuery) error {
  30. query.Result = make([]m.Favorite, 0)
  31. err := x.Where("user_id=?", query.UserId).Find(&query.Result)
  32. return err
  33. }