package routes import ( "github.com/gin-gonic/gin" "backend/server" "os" // os is used by ensureUploadsDir ) func SetupRoutes() *gin.Engine { r := gin.Default() // Create uploads directory if it doesn't exist if err := ensureUploadsDir(); err != nil { panic("Failed to create uploads directory: " + err.Error()) } // Health r.GET("/health", server.HealthCheck) // Reviews r.GET("/reviews/query", server.QueryReviews) r.POST("/reviews/new", server.SaveReview) // Places r.GET("/places/query", server.QueryPlaces) r.POST("/places/new", server.SavePlace) r.PUT("/places/:id/website", server.UpdatePlaceWebsite) // NEW: Route for updating website // Place Images r.GET("/place_images/query", server.QueryImages) r.GET("/place_images/query/:place_id", server.QueryImagesForPlace) r.GET("/place_images/folder", server.ListEndpoints) // New Image Upload Endpoint r.POST("/images/upload", server.UploadImage) // Serve static files from uploads directory r.Static("/uploads", "./uploads") return r } // ensureUploadsDir creates the uploads directory if it doesn't exist func ensureUploadsDir() error { uploadDir := "./uploads" if _, err := os.Stat(uploadDir); os.IsNotExist(err) { return os.Mkdir(uploadDir, 0755) } return nil }