From 6a8c92f1f6da3f9e8efad9cb6d7496a50c193891 Mon Sep 17 00:00:00 2001 From: Jonas Plum Date: Fri, 8 Nov 2024 21:56:32 +0100 Subject: [PATCH] fix: server setup (#1115) --- app/app.go | 38 ++------------------------------------ app/routes.go | 34 ++++++++++++++++++++++++++++++++-- 2 files changed, 34 insertions(+), 38 deletions(-) diff --git a/app/app.go b/app/app.go index 26272ed..cb75b82 100644 --- a/app/app.go +++ b/app/app.go @@ -1,7 +1,6 @@ package app import ( - "fmt" "os" "strings" @@ -39,47 +38,14 @@ func App(dir string, test bool) (*pocketbase.PocketBase, error) { reaction.BindHooks(app, test) app.OnAfterBootstrap().Add(func(e *core.BootstrapEvent) error { - if err := MigrateDBs(e.App); err != nil { - return err - } - - if err := SetFlags(e.App, flags); err != nil { - return err - } - - if HasFlag(e.App, "demo") { - bindDemoHooks(e.App) - } - - if appURL != "" { - s := e.App.Settings() - s.Meta.AppUrl = appURL - - if err := e.App.Dao().SaveSettings(s); err != nil { - return err - } - } - - return e.App.RefreshSettings() + return MigrateDBs(e.App) }) - app.OnBeforeServe().Add(addRoutes()) + app.OnBeforeServe().Add(setupServer(appURL, flags)) return app, nil } -func bindDemoHooks(app core.App) { - app.OnRecordBeforeCreateRequest("files", "reactions").Add(func(e *core.RecordCreateEvent) error { - return fmt.Errorf("cannot create %s in demo mode", e.Record.Collection().Name) - }) - app.OnRecordBeforeUpdateRequest("files", "reactions").Add(func(e *core.RecordUpdateEvent) error { - return fmt.Errorf("cannot update %s in demo mode", e.Record.Collection().Name) - }) - app.OnRecordBeforeDeleteRequest("files", "reactions").Add(func(e *core.RecordDeleteEvent) error { - return fmt.Errorf("cannot delete %s in demo mode", e.Record.Collection().Name) - }) -} - func dev() bool { return strings.HasPrefix(os.Args[0], os.TempDir()) } diff --git a/app/routes.go b/app/routes.go index c76b1c7..1783aa4 100644 --- a/app/routes.go +++ b/app/routes.go @@ -1,6 +1,7 @@ package app import ( + "fmt" "net/http" "net/http/httputil" "net/url" @@ -12,8 +13,25 @@ import ( "github.com/SecurityBrewery/catalyst/ui" ) -func addRoutes() func(*core.ServeEvent) error { +func setupServer(appURL string, flags []string) func(e *core.ServeEvent) error { return func(e *core.ServeEvent) error { + if err := SetFlags(e.App, flags); err != nil { + return err + } + + if HasFlag(e.App, "demo") { + bindDemoHooks(e.App) + } + + if appURL != "" { + s := e.App.Settings() + s.Meta.AppUrl = appURL + + if err := e.App.Dao().SaveSettings(s); err != nil { + return err + } + } + e.Router.GET("/", func(c echo.Context) error { return c.Redirect(http.StatusFound, "/ui/") }) @@ -37,10 +55,22 @@ func addRoutes() func(*core.ServeEvent) error { }) }) - return nil + return e.App.RefreshSettings() } } +func bindDemoHooks(app core.App) { + app.OnRecordBeforeCreateRequest("files", "reactions").Add(func(e *core.RecordCreateEvent) error { + return fmt.Errorf("cannot create %s in demo mode", e.Record.Collection().Name) + }) + app.OnRecordBeforeUpdateRequest("files", "reactions").Add(func(e *core.RecordUpdateEvent) error { + return fmt.Errorf("cannot update %s in demo mode", e.Record.Collection().Name) + }) + app.OnRecordBeforeDeleteRequest("files", "reactions").Add(func(e *core.RecordDeleteEvent) error { + return fmt.Errorf("cannot delete %s in demo mode", e.Record.Collection().Name) + }) +} + func staticFiles() func(echo.Context) error { return func(c echo.Context) error { if dev() {