refactor(routes): replace route retrieval with GetIncludeExcluded

- Updated route retrieval in the API and idle watcher to use GetIncludeExcluded, allowing for the inclusion of excluded routes.
- Simplified the route status aggregation logic by directly using GetIncludeExcluded for display name resolution.
- Removed redundant code that separately handled excluded routes, streamlining the route management process.
This commit is contained in:
yusing
2026-01-24 01:40:24 +08:00
parent e48c3f57dd
commit 80a6b21ff9
4 changed files with 16 additions and 20 deletions

View File

@@ -4,7 +4,6 @@ import (
"net/http"
"github.com/gin-gonic/gin"
statequery "github.com/yusing/godoxy/internal/config/query"
"github.com/yusing/godoxy/internal/route/routes"
apitypes "github.com/yusing/goutils/apitypes"
)
@@ -33,17 +32,10 @@ func Route(c *gin.Context) {
return
}
route, ok := routes.Get(request.Which)
route, ok := routes.GetIncludeExcluded(request.Which)
if ok {
c.JSON(http.StatusOK, route)
return
}
// also search for excluded routes
route = statequery.SearchRoute(request.Which)
if route != nil {
c.JSON(http.StatusOK, route)
return
}
c.JSON(http.StatusNotFound, nil)
}

View File

@@ -173,7 +173,7 @@ func NewWatcher(parent task.Parent, r types.Route, cfg *types.IdlewatcherConfig)
}
if !ok {
depRoute, ok = routes.Get(dep)
depRoute, ok = routes.GetIncludeExcluded(dep)
if !ok {
depErrors.Addf("dependency %q not found", dep)
continue

View File

@@ -130,17 +130,10 @@ func (rs RouteStatuses) aggregate(limit int, offset int) Aggregated {
up, down, idle, latency := rs.calculateInfo(statuses)
displayName := alias
r, ok := routes.Get(alias)
if !ok {
// also search for excluded routes
r, ok = routes.Excluded.Get(alias)
}
if r != nil {
displayName = r.DisplayName()
}
status := types.StatusUnknown
if r != nil {
r, ok := routes.GetIncludeExcluded(alias)
if ok {
displayName = r.DisplayName()
mon := r.HealthMonitor()
if mon != nil {
status = mon.Status()

View File

@@ -78,3 +78,14 @@ func Get(alias string) (types.Route, bool) {
}
return nil, false
}
// GetIncludeExcluded returns the route with the given alias, including excluded routes.
func GetIncludeExcluded(alias string) (types.Route, bool) {
if r, ok := HTTP.Get(alias); ok {
return r, true
}
if r, ok := Stream.Get(alias); ok {
return r, true
}
return Excluded.Get(alias)
}