mirror of
https://github.com/grafana/grafana.git
synced 2025-07-31 11:22:16 +08:00
73 lines
1.8 KiB
Go
73 lines
1.8 KiB
Go
package star
|
|
|
|
import (
|
|
"errors"
|
|
"time"
|
|
)
|
|
|
|
var ErrCommandValidationFailed = errors.New("command missing required fields")
|
|
|
|
type Star struct {
|
|
ID int64 `xorm:"pk autoincr 'id'" db:"id"`
|
|
UserID int64 `xorm:"user_id" db:"user_id"`
|
|
// Deprecated: use DashboardUID
|
|
DashboardID int64 `xorm:"dashboard_id" db:"dashboard_id"`
|
|
DashboardUID string `xorm:"dashboard_uid" db:"dashboard_uid"`
|
|
OrgID int64 `xorm:"org_id" db:"org_id"`
|
|
Updated time.Time `xorm:"updated" db:"updated"`
|
|
}
|
|
|
|
// ----------------------
|
|
// COMMANDS
|
|
|
|
type StarDashboardCommand struct {
|
|
UserID int64 `xorm:"user_id"`
|
|
// Deprecated: use DashboardUID
|
|
DashboardID int64 `xorm:"dashboard_id"`
|
|
DashboardUID string `xorm:"dashboard_uid"`
|
|
OrgID int64 `xorm:"org_id"`
|
|
Updated time.Time `xorm:"updated"`
|
|
}
|
|
|
|
func (cmd *StarDashboardCommand) Validate() error {
|
|
// nolint:staticcheck
|
|
if (cmd.DashboardID == 0 && cmd.DashboardUID == "" && cmd.OrgID == 0) || cmd.UserID == 0 {
|
|
return ErrCommandValidationFailed
|
|
}
|
|
return nil
|
|
}
|
|
|
|
type UnstarDashboardCommand struct {
|
|
UserID int64 `xorm:"user_id"`
|
|
DashboardID int64 `xorm:"dashboard_id"`
|
|
DashboardUID string `xorm:"dashboard_uid"`
|
|
OrgID int64 `xorm:"org_id"`
|
|
}
|
|
|
|
func (cmd *UnstarDashboardCommand) Validate() error {
|
|
// nolint:staticcheck
|
|
if (cmd.DashboardID == 0 && cmd.DashboardUID == "" && cmd.OrgID == 0) || cmd.UserID == 0 {
|
|
return ErrCommandValidationFailed
|
|
}
|
|
return nil
|
|
}
|
|
|
|
// ---------------------
|
|
// QUERIES
|
|
|
|
type GetUserStarsQuery struct {
|
|
UserID int64 `xorm:"user_id"`
|
|
}
|
|
|
|
type IsStarredByUserQuery struct {
|
|
UserID int64 `xorm:"user_id"`
|
|
DashboardID int64 `xorm:"dashboard_id"`
|
|
DashboardUID string `xorm:"dashboard_uid"`
|
|
OrgID int64 `xorm:"org_id"`
|
|
Updated time.Time `xorm:"updated"`
|
|
}
|
|
|
|
type GetUserStarsResult struct {
|
|
UserStars map[string]bool
|
|
}
|