feat: refactor for using app config

This commit is contained in:
2025-05-25 16:22:28 +02:00
parent b95dcc6230
commit 07b9b94143
10 changed files with 120 additions and 153 deletions

View File

@ -7,6 +7,7 @@ import (
"os"
"gitea.local/admin/hspguard/internal/auth"
"gitea.local/admin/hspguard/internal/config"
imiddleware "gitea.local/admin/hspguard/internal/middleware"
"gitea.local/admin/hspguard/internal/oauth"
"gitea.local/admin/hspguard/internal/repository"
@ -20,9 +21,10 @@ type APIServer struct {
addr string
repo *repository.Queries
storage *storage.FileStorage
cfg *config.AppConfig
}
func NewAPIServer(addr string, db *repository.Queries, minio *storage.FileStorage) *APIServer {
func NewAPIServer(addr string, db *repository.Queries, minio *storage.FileStorage, cfg *config.AppConfig) *APIServer {
return &APIServer{
addr: addr,
repo: db,
@ -38,10 +40,10 @@ func (s *APIServer) Run() error {
// staticDir := http.Dir(filepath.Join(workDir, "static"))
// FileServer(router, "/static", staticDir)
oauthHandler := oauth.NewOAuthHandler(s.repo)
oauthHandler := oauth.NewOAuthHandler(s.repo, s.cfg)
router.Route("/api/v1", func(r chi.Router) {
r.Use(imiddleware.WithSkipper(imiddleware.AuthMiddleware, "/api/v1/login", "/api/v1/register", "/api/v1/oauth/token"))
r.Use(imiddleware.WithSkipper(imiddleware.AuthMiddleware(s.cfg), "/api/v1/login", "/api/v1/register", "/api/v1/oauth/token"))
userHandler := user.NewUserHandler(s.repo, s.storage)
userHandler.RegisterRoutes(r)
@ -52,8 +54,8 @@ func (s *APIServer) Run() error {
oauthHandler.RegisterRoutes(r)
})
router.Get("/.well-known/jwks.json", auth.WriteJWKS)
router.Get("/.well-known/openid-configuration", auth.OpenIdConfiguration)
router.Get("/.well-known/jwks.json", oauthHandler.WriteJWKS)
router.Get("/.well-known/openid-configuration", oauth.OpenIdConfiguration)
router.Get("/*", func(w http.ResponseWriter, r *http.Request) {
path := "./dist" + r.URL.Path

View File

@ -4,9 +4,9 @@ import (
"context"
"fmt"
"log"
"os"
"gitea.local/admin/hspguard/cmd/hspguard/api"
"gitea.local/admin/hspguard/internal/config"
"gitea.local/admin/hspguard/internal/repository"
"gitea.local/admin/hspguard/internal/storage"
"gitea.local/admin/hspguard/internal/user"
@ -21,9 +21,17 @@ func main() {
return
}
var cfg config.AppConfig
err = config.LoadEnv(&cfg)
if err != nil {
log.Fatal(err)
return
}
ctx := context.Background()
conn, err := pgx.Connect(ctx, os.Getenv("DATABASE_URL"))
conn, err := pgx.Connect(ctx, cfg.DatabaseURL)
if err != nil {
log.Fatalln("ERR: Failed to connect to db:", err)
return
@ -31,21 +39,11 @@ func main() {
repo := repository.New(conn)
fStorage := storage.New()
fStorage := storage.New(&cfg)
user.EnsureAdminUser(ctx, repo)
user.EnsureAdminUser(ctx, &cfg, repo)
host := os.Getenv("HOST")
if host == "" {
host = "127.0.0.1"
}
port := os.Getenv("PORT")
if port == "" {
port = "3000"
}
server := api.NewAPIServer(fmt.Sprintf("%s:%s", host, port), repo, fStorage)
server := api.NewAPIServer(fmt.Sprintf("%s:%s", cfg.Host, cfg.Port), repo, fStorage, &cfg)
if err := server.Run(); err != nil {
log.Fatalln("ERR: Failed to start server:", err)
}