add app CRUD and public store API endpoints

This commit is contained in:
2026-01-18 21:05:41 +01:00
parent 8601bb5ba3
commit 1bc112047d
4 changed files with 1158 additions and 14 deletions

View File

@@ -32,6 +32,8 @@ func NewRouter(cfg *config.Config, db *database.DB) http.Handler {
)
authMiddleware := middleware.NewAuthMiddleware(jwtManager, db)
authHandler := handlers.NewAuthHandler(oauthManager, jwtManager, db)
appHandler := handlers.NewAppHandler(db)
storeHandler := handlers.NewStoreHandler(db)
// Health check
r.Get("/health", func(w http.ResponseWriter, r *http.Request) {
@@ -63,19 +65,19 @@ func NewRouter(cfg *config.Config, db *database.DB) http.Handler {
// Developer apps
r.Route("/apps", func(r chi.Router) {
r.Get("/", handlers.NotImplemented)
r.Post("/", handlers.NotImplemented)
r.Get("/{appID}", handlers.NotImplemented)
r.Patch("/{appID}", handlers.NotImplemented)
r.Delete("/{appID}", handlers.NotImplemented)
r.Get("/", appHandler.List)
r.Post("/", appHandler.Create)
r.Get("/{appID}", appHandler.Get)
r.Patch("/{appID}", appHandler.Update)
r.Delete("/{appID}", appHandler.Delete)
// Versions
r.Route("/{appID}/versions", func(r chi.Router) {
r.Get("/", handlers.NotImplemented)
r.Post("/", handlers.NotImplemented)
r.Get("/{versionID}", handlers.NotImplemented)
r.Post("/{versionID}/submit", handlers.NotImplemented)
r.Post("/{versionID}/publish", handlers.NotImplemented)
r.Get("/", appHandler.ListVersions)
r.Post("/", appHandler.CreateVersion)
r.Get("/{versionID}", appHandler.GetVersion)
r.Post("/{versionID}/submit", appHandler.SubmitVersion)
r.Post("/{versionID}/publish", appHandler.PublishVersion)
})
})
@@ -96,10 +98,11 @@ func NewRouter(cfg *config.Config, db *database.DB) http.Handler {
// Public store endpoints
r.Route("/store", func(r chi.Router) {
r.Get("/apps", handlers.NotImplemented)
r.Get("/apps/{appID}", handlers.NotImplemented)
r.Get("/apps/{appID}/download", handlers.NotImplemented)
r.Get("/apps/updates", handlers.NotImplemented)
r.Get("/apps", storeHandler.ListApps)
r.Get("/apps/updates", storeHandler.CheckUpdates)
r.Get("/apps/{packageID}", storeHandler.GetApp)
r.Get("/apps/{packageID}/download", storeHandler.Download)
r.Get("/apps/{packageID}/versions/{versionCode}/download", storeHandler.DownloadVersion)
})
// Telemetry (API key auth preferred, but can work without for initial setup)