Refactor architecture: eliminate auto-discovery and consolidate packages

- Remove auto-discovery entirely (~450 lines)
  * Delete internal/content/discoverer.go
  * Simplify enhancer to single-phase processing
  * Remove duplicate container expansion logic

- Consolidate repository implementations
  * Move internal/content/client.go → internal/db/http_client.go
  * Group all repository implementations in db/ package

- Add file utilities to engine following Go stdlib patterns
  * Add engine.ProcessFile() and ProcessDirectory() methods
  * Engine now handles both content processing AND file operations

- Move site management to dedicated package
  * Move internal/content/site_manager.go → internal/sites/manager.go
  * Clear separation of site lifecycle from content processing

- Preserve container expansion (syntactic sugar)
  * .insertr on containers still auto-applies to viable children
  * Container detection logic consolidated in engine/utils.go

Result: Clean architecture with single source of truth for .insertr processing
This commit is contained in:
2025-10-19 22:37:26 +02:00
parent 87b78a4a69
commit dbdd4361b7
8 changed files with 152 additions and 667 deletions

View File

@@ -9,16 +9,16 @@ import (
"github.com/go-chi/chi/v5"
"github.com/insertr/insertr/internal/auth"
"github.com/insertr/insertr/internal/content"
"github.com/insertr/insertr/internal/db"
"github.com/insertr/insertr/internal/engine"
"github.com/insertr/insertr/internal/sites"
)
// ContentHandler handles all content-related HTTP requests
type ContentHandler struct {
repository db.ContentRepository
authService *auth.AuthService
siteManager *content.SiteManager
siteManager *sites.SiteManager
engine *engine.ContentEngine
}
@@ -36,7 +36,7 @@ func NewContentHandler(database *db.Database, authService *auth.AuthService) *Co
}
// SetSiteManager sets the site manager for file enhancement
func (h *ContentHandler) SetSiteManager(siteManager *content.SiteManager) {
func (h *ContentHandler) SetSiteManager(siteManager *sites.SiteManager) {
h.siteManager = siteManager
}