12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- package sites
- import (
- "net/http"
- "github.com/0xJacky/Nginx-UI/internal/site"
- "github.com/0xJacky/Nginx-UI/query"
- "github.com/gin-gonic/gin"
- "github.com/spf13/cast"
- "github.com/uozi-tech/cosy"
- )
- func GetSiteList(c *gin.Context) {
- // Parse query parameters
- options := &site.ListOptions{
- Search: c.Query("search"),
- Status: c.Query("status"),
- OrderBy: c.Query("sort_by"),
- Sort: c.DefaultQuery("order", "desc"),
- EnvGroupID: cast.ToUint64(c.Query("env_group_id")),
- }
- // Get sites from database
- s := query.Site
- sTx := s.Preload(s.EnvGroup)
- if options.EnvGroupID != 0 {
- sTx = sTx.Where(s.EnvGroupID.Eq(options.EnvGroupID))
- }
- sites, err := sTx.Find()
- if err != nil {
- cosy.ErrHandler(c, err)
- return
- }
- // Get site configurations using the internal logic
- configs, err := site.GetSiteConfigs(c, options, sites)
- if err != nil {
- cosy.ErrHandler(c, err)
- return
- }
- c.JSON(http.StatusOK, gin.H{
- "data": configs,
- })
- }
|