Improve listeners and handlers (#350)

* improve listeners and handlers

* add to route handlers

* separate create/delete/update events

* removed useless interface
This commit is contained in:
Pedro Nasser
2016-11-28 21:00:12 -02:00
committed by C Cirello
parent 308cb25ba2
commit 2c56e7975d
8 changed files with 149 additions and 37 deletions

View File

@@ -25,12 +25,14 @@ import (
var Api *Server
type Server struct {
Runner *runner.Runner
Router *gin.Engine
MQ models.MessageQueue
AppListeners []ifaces.AppListener
SpecialHandlers []ifaces.SpecialHandler
Enqueue models.Enqueue
Runner *runner.Runner
Router *gin.Engine
MQ models.MessageQueue
AppCreateListeners []ifaces.AppCreateListener
AppUpdateListeners []ifaces.AppUpdateListener
AppDeleteListeners []ifaces.AppDeleteListener
SpecialHandlers []ifaces.SpecialHandler
Enqueue models.Enqueue
tasks chan task.Request
@@ -94,31 +96,6 @@ func (s *Server) primeCache(ctx context.Context) {
logrus.Info("cached prime")
}
// AddAppListener adds a listener that will be notified on App changes.
func (s *Server) AddAppListener(listener ifaces.AppListener) {
s.AppListeners = append(s.AppListeners, listener)
}
func (s *Server) FireBeforeAppUpdate(ctx context.Context, app *models.App) error {
for _, l := range s.AppListeners {
err := l.BeforeAppUpdate(ctx, app)
if err != nil {
return err
}
}
return nil
}
func (s *Server) FireAfterAppUpdate(ctx context.Context, app *models.App) error {
for _, l := range s.AppListeners {
err := l.AfterAppUpdate(ctx, app)
if err != nil {
return err
}
}
return nil
}
func (s *Server) AddSpecialHandler(handler ifaces.SpecialHandler) {
s.SpecialHandlers = append(s.SpecialHandlers, handler)
}