diff --git a/cmd/serve.go b/cmd/serve.go index 4483abe..9da37c2 100644 --- a/cmd/serve.go +++ b/cmd/serve.go @@ -12,6 +12,7 @@ import ( "time" "git.oblat.lv/alex/triggerssmith/api" + "git.oblat.lv/alex/triggerssmith/internal/acl" application "git.oblat.lv/alex/triggerssmith/internal/app" "git.oblat.lv/alex/triggerssmith/internal/auth" "git.oblat.lv/alex/triggerssmith/internal/config" @@ -99,10 +100,10 @@ var serveCmd = &cobra.Command{ } else { defer f.Close() slog.Debug("flushing stack in to panic.log") - fmt.Fprintln(f, "\n--------------------------------------------------------\n") + fmt.Fprintf(f, "\n--------------------------------------------------------\n") fmt.Fprintf(f, "Time: %s\n", time.Now().Format(time.RFC3339)) fmt.Fprintln(f, "If this is unexpected, please report: https://git.oblat.lv/alex/triggerssmith/issues") - fmt.Fprintln(f, "\n--------------------------------------------------------\n") + fmt.Fprintf(f, "\n--------------------------------------------------------\n") fmt.Fprintf(f, "Panic: %v\n", r) f.Write(stack) f.WriteString("\n\n") @@ -179,34 +180,63 @@ var serveCmd = &cobra.Command{ slog.Error("Failed to open token database", slog.String("error", err.Error())) return } - err = tokenDb.AutoMigrate(&token.Token{}) - if err != nil { - slog.Error("Failed to migrate token database", slog.String("error", err.Error())) - return - } + // err = tokenDb.AutoMigrate(&token.Token{}) + // if err != nil { + // slog.Error("Failed to migrate token database", slog.String("error", err.Error())) + // return + // } tokenStore, err := token.NewSQLiteTokenStore(tokenDb) if err != nil { slog.Error("Failed to create token store", slog.String("error", err.Error())) return } tokenService, err := token.NewTokenService(&cfg.Auth, tokenStore) + if err != nil { + slog.Error("Failed to create token service", slog.String("error", err.Error())) + return + } + err = tokenService.Init() + if err != nil { + slog.Error("Failed to initialize token service", slog.String("error", err.Error())) + return + } - userDb, err := gorm.Open(sqlite.Open(filepath.Join(cfg.Data.DataPath, "users.sqlite3")), &gorm.Config{}) + // also acl !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + userData, err := gorm.Open(sqlite.Open(filepath.Join(cfg.Data.DataPath, "user_data.sqlite3")), &gorm.Config{}) if err != nil { slog.Error("Failed to open user database", slog.String("error", err.Error())) return } - err = userDb.AutoMigrate(&user.User{}) - if err != nil { - slog.Error("Failed to migrate user database", slog.String("error", err.Error())) - return - } - userStore, err := user.NewGormUserStore(userDb) + // err = + // if err != nil { + // slog.Error("Failed to migrate user database", slog.String("error", err.Error())) + // return + // } + userStore, err := user.NewGormUserStore(userData) if err != nil { slog.Error("Failed to create user store", slog.String("error", err.Error())) return } userService, err := user.NewService(userStore) + if err != nil { + slog.Error("Failed to create user service", slog.String("error", err.Error())) + return + } + err = userService.Init() + if err != nil { + slog.Error("Failed to initialize user service", slog.String("error", err.Error())) + return + } + aclService, err := acl.NewService(userData) + if err != nil { + slog.Error("Failed to create acl service", slog.String("error", err.Error())) + return + } + err = aclService.Init() + if err != nil { + slog.Error("Failed to initialize acl service", slog.String("error", err.Error())) + return + } authService, err := auth.NewAuthService(auth.AuthServiceDependencies{ Configuration: cfg, @@ -223,6 +253,7 @@ var serveCmd = &cobra.Command{ router := api.NewRouter(api.RouterDependencies{ AuthService: authService, Configuration: cfg, + ACLService: aclService, }) srv.SetHandler(router.MustRoute())