modules.go 964 B

123456789101112131415161718192021222324252627282930313233343536
  1. package nginx
  2. import (
  3. "net/http"
  4. "github.com/0xJacky/Nginx-UI/internal/nginx"
  5. "github.com/gin-gonic/gin"
  6. )
  7. func GetModules(c *gin.Context) {
  8. modules := nginx.GetModules()
  9. modulesList := make([]*nginx.Module, 0, modules.Len())
  10. for _, module := range modules.AllFromFront() {
  11. modulesList = append(modulesList, module)
  12. }
  13. c.JSON(http.StatusOK, modulesList)
  14. }
  15. // RefreshModulesCache clears and rebuilds the nginx modules cache on demand.
  16. // It returns the refreshed modules list for immediate use by the frontend.
  17. func RefreshModulesCache(c *gin.Context) {
  18. // Clear cached modules to force re-parsing
  19. nginx.ClearModulesCache()
  20. // Rebuild modules cache immediately
  21. modules := nginx.GetModules()
  22. modulesList := make([]*nginx.Module, 0, modules.Len())
  23. for _, module := range modules.AllFromFront() {
  24. modulesList = append(modulesList, module)
  25. }
  26. c.JSON(http.StatusOK, gin.H{
  27. "message": "modules cache refreshed",
  28. "modules": modulesList,
  29. })
  30. }