Adds before/after app get/list. And some bug fixes/cleanup. (#610)

* Adds before/after app get/list. And some bug fixes/cleanup.

* Fix test
This commit is contained in:
Travis Reeder
2017-12-21 09:32:03 -08:00
committed by GitHub
parent 0a1b180158
commit fdb4188146
26 changed files with 212 additions and 65 deletions

View File

@@ -20,6 +20,25 @@ type AppListener interface {
BeforeAppDelete(ctx context.Context, app *models.App) error
// AfterAppDelete called after deleting App in the database
AfterAppDelete(ctx context.Context, app *models.App) error
// BeforeAppGet called right before getting an app
BeforeAppGet(ctx context.Context, appName string) error
// AfterAppGet called after getting app from database
AfterAppGet(ctx context.Context, app *models.App) error
// BeforeAppsList called right before getting a list of all user's apps. Modify the filter to adjust what gets returned.
BeforeAppsList(ctx context.Context, filter *models.AppFilter) error
// AfterAppsList called after deleting getting a list of user's apps. apps is the result after applying AppFilter.
AfterAppsList(ctx context.Context, apps []*models.App) error
// TODO: WHAT IF THESE WERE CHANGE TO WRAPPERS INSTEAD OF LISTENERS, SORT OF LIKE MIDDLEWARE, EG
// AppCreate(ctx, app, next func(ctx, app) or next.AppCreate(ctx, app)) <- where func is the InsertApp function (ie: the corresponding Datastore function)
// Then instead of two two functions and modifying objects in the params, they get modified and then passed on. Eg:
// AppCreate(ctx, app, next) (app *models.App, err error) {
// // do stuff before
// app.Name = app.Name + "-12345"
// app, err = next.AppCreate(ctx, app)
// // do stuff after if you want
// return app, err
// }
}
// CallListener enables callbacks around Call events