Files
grafana/pkg/services/hooks/hooks.go
T

40 lines
980 B
Go
Raw Normal View History

package hooks
import (
"github.com/grafana/grafana/pkg/api/dtos"
2020-01-27 09:24:44 +01:00
"github.com/grafana/grafana/pkg/models"
)
2020-01-27 09:24:44 +01:00
type IndexDataHook func(indexData *dtos.IndexViewData, req *models.ReqContext)
type LoginHook func(loginInfo *models.LoginInfo, req *models.ReqContext)
type HooksService struct {
indexDataHooks []IndexDataHook
loginHooks []LoginHook
}
func ProvideService() *HooksService {
return &HooksService{}
}
func (srv *HooksService) AddIndexDataHook(hook IndexDataHook) {
srv.indexDataHooks = append(srv.indexDataHooks, hook)
}
2020-01-27 09:24:44 +01:00
func (srv *HooksService) RunIndexDataHooks(indexData *dtos.IndexViewData, req *models.ReqContext) {
for _, hook := range srv.indexDataHooks {
2020-01-27 09:24:44 +01:00
hook(indexData, req)
}
}
func (srv *HooksService) AddLoginHook(hook LoginHook) {
srv.loginHooks = append(srv.loginHooks, hook)
}
func (srv *HooksService) RunLoginHook(loginInfo *models.LoginInfo, req *models.ReqContext) {
for _, hook := range srv.loginHooks {
hook(loginInfo, req)
}
}