Files
fn-serverless/api/agent/listeners.go
Travis Reeder 0798f9fac8 Middleware upgrade (#554)
* Adds root level middleware

* Added todo

* Better way for extensions to be added.

* Bad conflict merge?
2017-12-05 08:22:03 -08:00

38 lines
769 B
Go

package agent
import (
"context"
"github.com/fnproject/fn/api/models"
"github.com/fnproject/fn/fnext"
)
type callTrigger interface {
fireBeforeCall(context.Context, *models.Call) error
fireAfterCall(context.Context, *models.Call) error
}
func (a *agent) AddCallListener(listener fnext.CallListener) {
a.callListeners = append(a.callListeners, listener)
}
func (a *agent) fireBeforeCall(ctx context.Context, call *models.Call) error {
for _, l := range a.callListeners {
err := l.BeforeCall(ctx, call)
if err != nil {
return err
}
}
return nil
}
func (a *agent) fireAfterCall(ctx context.Context, call *models.Call) error {
for _, l := range a.callListeners {
err := l.AfterCall(ctx, call)
if err != nil {
return err
}
}
return nil
}