package main import ( "fmt" "io/fs" "log" "net/http" "git.javil.eu/jacob1123/budgeteer/bcrypt" "git.javil.eu/jacob1123/budgeteer/config" "git.javil.eu/jacob1123/budgeteer/jwt" "git.javil.eu/jacob1123/budgeteer/postgres" "git.javil.eu/jacob1123/budgeteer/server" "git.javil.eu/jacob1123/budgeteer/web" ) func main() { cfg, err := config.LoadConfig() if err != nil { log.Fatalf("Could not load config: %v", err) } queries, err := postgres.Connect("pgx", cfg.DatabaseConnection) if err != nil { log.Fatalf("Failed connecting to DB: %v", err) } static, err := fs.Sub(web.Static, "dist") if err != nil { panic("couldn't open static files") } tokenVerifier, err := jwt.NewTokenVerifier(cfg.SessionSecret) if err != nil { panic(fmt.Errorf("couldn't create token verifier: %w", err)) } handler := &server.Handler{ Service: queries, TokenVerifier: tokenVerifier, CredentialsVerifier: &bcrypt.Verifier{}, StaticFS: http.FS(static), } handler.Serve() }