From 44990c9131292d2eab7b30c63bbef4a1205c37d0 Mon Sep 17 00:00:00 2001 From: Trey t Date: Thu, 4 Dec 2025 15:55:41 -0600 Subject: [PATCH] Make upgrade-triggers endpoint public for app initialization MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move /subscription/upgrade-triggers/ from authenticated routes to public routes so the app can fetch upgrade trigger data at startup before user login. This enables showing subscription benefits during onboarding. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- internal/router/router.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/internal/router/router.go b/internal/router/router.go index 30ee904..4c52818 100644 --- a/internal/router/router.go +++ b/internal/router/router.go @@ -140,7 +140,7 @@ func SetupRouter(deps *Dependencies) *gin.Engine { setupPublicAuthRoutes(api, authHandler) // Public data routes (no auth required) - setupPublicDataRoutes(api, residenceHandler, taskHandler, contractorHandler, staticDataHandler) + setupPublicDataRoutes(api, residenceHandler, taskHandler, contractorHandler, staticDataHandler, subscriptionHandler) // Protected routes (auth required) protected := api.Group("") @@ -220,7 +220,7 @@ func setupProtectedAuthRoutes(api *gin.RouterGroup, authHandler *handlers.AuthHa } // setupPublicDataRoutes configures public data routes (lookups, static data) -func setupPublicDataRoutes(api *gin.RouterGroup, residenceHandler *handlers.ResidenceHandler, taskHandler *handlers.TaskHandler, contractorHandler *handlers.ContractorHandler, staticDataHandler *handlers.StaticDataHandler) { +func setupPublicDataRoutes(api *gin.RouterGroup, residenceHandler *handlers.ResidenceHandler, taskHandler *handlers.TaskHandler, contractorHandler *handlers.ContractorHandler, staticDataHandler *handlers.StaticDataHandler, subscriptionHandler *handlers.SubscriptionHandler) { // Static data routes (public, cached) staticData := api.Group("/static_data") { @@ -228,6 +228,12 @@ func setupPublicDataRoutes(api *gin.RouterGroup, residenceHandler *handlers.Resi staticData.POST("/refresh/", staticDataHandler.RefreshStaticData) } + // Public subscription routes (upgrade triggers needed at app start before login) + subscriptionPublic := api.Group("/subscription") + { + subscriptionPublic.GET("/upgrade-triggers/", subscriptionHandler.GetAllUpgradeTriggers) + } + // Lookup routes (public) api.GET("/residences/types/", residenceHandler.GetResidenceTypes) api.GET("/tasks/categories/", taskHandler.GetCategories) @@ -342,13 +348,13 @@ func setupNotificationRoutes(api *gin.RouterGroup, notificationHandler *handlers } } -// setupSubscriptionRoutes configures subscription routes +// setupSubscriptionRoutes configures subscription routes (authenticated) +// Note: /upgrade-triggers/ is in setupPublicDataRoutes (public, no auth required) func setupSubscriptionRoutes(api *gin.RouterGroup, subscriptionHandler *handlers.SubscriptionHandler) { subscription := api.Group("/subscription") { subscription.GET("/", subscriptionHandler.GetSubscription) subscription.GET("/status/", subscriptionHandler.GetSubscriptionStatus) - subscription.GET("/upgrade-triggers/", subscriptionHandler.GetAllUpgradeTriggers) subscription.GET("/upgrade-trigger/:key/", subscriptionHandler.GetUpgradeTrigger) subscription.GET("/features/", subscriptionHandler.GetFeatureBenefits) subscription.GET("/promotions/", subscriptionHandler.GetPromotions)