add app review system with validation pipeline and admin htmx UI
This commit is contained in:
@@ -43,6 +43,7 @@ func NewRouter(cfg *config.Config, db *database.DB) http.Handler {
|
||||
authHandler := handlers.NewAuthHandler(oauthManager, jwtManager, db)
|
||||
appHandler := handlers.NewAppHandler(db, store)
|
||||
storeHandler := handlers.NewStoreHandler(db, store)
|
||||
adminHandler := handlers.NewAdminHandler(db, store)
|
||||
|
||||
// Health check
|
||||
r.Get("/health", func(w http.ResponseWriter, r *http.Request) {
|
||||
@@ -127,14 +128,15 @@ func NewRouter(cfg *config.Config, db *database.DB) http.Handler {
|
||||
})
|
||||
})
|
||||
|
||||
// Admin routes (htmx UI) - requires auth
|
||||
r.Route("/admin", func(r chi.Router) {
|
||||
// Admin API routes (JSON responses)
|
||||
r.Route("/api/admin", func(r chi.Router) {
|
||||
r.Use(authMiddleware.RequireAuth)
|
||||
r.Get("/", handlers.NotImplemented)
|
||||
r.Get("/review-queue", handlers.NotImplemented)
|
||||
r.Get("/review/{versionID}", handlers.NotImplemented)
|
||||
r.Post("/review/{versionID}/approve", handlers.NotImplemented)
|
||||
r.Post("/review/{versionID}/reject", handlers.NotImplemented)
|
||||
r.Get("/stats", adminHandler.Dashboard)
|
||||
r.Get("/review-queue", adminHandler.ReviewQueue)
|
||||
r.Get("/review/{versionID}", adminHandler.ReviewDetail)
|
||||
r.Post("/review/{versionID}/approve", adminHandler.ApproveVersion)
|
||||
r.Post("/review/{versionID}/reject", adminHandler.RejectVersion)
|
||||
r.Get("/review/{versionID}/validate", adminHandler.ValidatePackage)
|
||||
})
|
||||
|
||||
// Web UI routes (htmx + Go templates)
|
||||
@@ -142,6 +144,7 @@ func NewRouter(cfg *config.Config, db *database.DB) http.Handler {
|
||||
if err != nil {
|
||||
log.Printf("Warning: Failed to initialize web handler: %v", err)
|
||||
} else {
|
||||
webHandler.SetStorage(store)
|
||||
sessionMW := web.NewSessionMiddleware(db, cfg.JWTSecret)
|
||||
|
||||
// Public web pages
|
||||
@@ -163,6 +166,14 @@ func NewRouter(cfg *config.Config, db *database.DB) http.Handler {
|
||||
|
||||
// htmx partials
|
||||
r.Get("/partials/apps", webHandler.AppListPartial)
|
||||
|
||||
// Admin pages (htmx UI)
|
||||
r.Get("/admin/review-queue", webHandler.AdminReviewQueue)
|
||||
r.Get("/admin/review/{versionID}", webHandler.AdminReviewDetail)
|
||||
r.Get("/admin/partials/review-queue", webHandler.AdminReviewQueuePartial)
|
||||
r.Post("/admin/review/{versionID}/approve", webHandler.AdminApprove)
|
||||
r.Post("/admin/review/{versionID}/reject", webHandler.AdminReject)
|
||||
r.Get("/admin/review/{versionID}/validate", webHandler.AdminValidate)
|
||||
})
|
||||
|
||||
// Auth callback that sets session (after OAuth)
|
||||
|
||||
Reference in New Issue
Block a user