refac controller listen

pull/1/head
Edouard Paris 5 years ago
parent cdfcb5ecd6
commit 46ebdd149c

@ -1,7 +1,6 @@
package events package events
const ( const (
Quit = "quit"
InvoiceCreated = "invoice.created" InvoiceCreated = "invoice.created"
InvoiceSettled = "invoice.settled" InvoiceSettled = "invoice.settled"
) )

@ -13,6 +13,7 @@ import (
) )
type controller struct { type controller struct {
logger logging.Logger
models *models.Models models *models.Models
views *views.Views views *views.Views
} }
@ -67,15 +68,14 @@ func (c *controller) SetModels(ctx context.Context) error {
return c.models.RefreshChannels(ctx) return c.models.RefreshChannels(ctx)
} }
func (c *controller) Refresh(ctx context.Context, sub chan *events.Event) error { func (c *controller) Listen(ctx context.Context, g *gocui.Gui, sub chan *events.Event) {
c.logger.Debug("Listening...")
for event := range sub { for event := range sub {
if event.Type == events.Quit { switch event.Type {
break default:
c.logger.Info("event received", logging.String("type", event.Type))
} }
c.models.App.Logger.Info("models loop", logging.String("type event", event.Type))
} }
return gocui.ErrQuit
} }
func quit(g *gocui.Gui, v *gocui.View) error { func quit(g *gocui.Gui, v *gocui.View) error {
@ -104,6 +104,7 @@ func (c *controller) setKeyBinding(g *gocui.Gui) error {
func newController(app *app.App) *controller { func newController(app *app.App) *controller {
m := models.New(app) m := models.New(app)
return &controller{ return &controller{
logger: app.Logger.With(logging.String("logger", "controller")),
models: m, models: m,
views: views.New(m), views: views.New(m),
} }

@ -30,12 +30,7 @@ func Run(ctx context.Context, app *app.App, sub chan *events.Event) error {
return err return err
} }
go func() { go ctrl.Listen(ctx, g, sub)
err := ctrl.Refresh(ctx, sub)
if err != nil {
g.Update(func(*gocui.Gui) error { return err })
}
}()
err = g.MainLoop() err = g.MainLoop()
close(sub) close(sub)

Loading…
Cancel
Save