mirror of
https://github.com/yusing/godoxy.git
synced 2026-01-15 06:43:35 +01:00
43 lines
1.0 KiB
Go
43 lines
1.0 KiB
Go
package statequery
|
|
|
|
import (
|
|
config "github.com/yusing/godoxy/internal/config/types"
|
|
"github.com/yusing/godoxy/internal/types"
|
|
)
|
|
|
|
type RouteProviderListResponse struct {
|
|
ShortName string `json:"short_name"`
|
|
FullName string `json:"full_name"`
|
|
} // @name RouteProvider
|
|
|
|
func DumpRouteProviders() map[string]types.RouteProvider {
|
|
state := config.ActiveState.Load()
|
|
entries := make(map[string]types.RouteProvider, state.NumProviders())
|
|
for _, p := range state.IterProviders() {
|
|
entries[p.ShortName()] = p
|
|
}
|
|
return entries
|
|
}
|
|
|
|
func RouteProviderList() []RouteProviderListResponse {
|
|
state := config.ActiveState.Load()
|
|
list := make([]RouteProviderListResponse, 0, state.NumProviders())
|
|
for _, p := range state.IterProviders() {
|
|
list = append(list, RouteProviderListResponse{
|
|
ShortName: p.ShortName(),
|
|
FullName: p.String(),
|
|
})
|
|
}
|
|
return list
|
|
}
|
|
|
|
func SearchRoute(alias string) types.Route {
|
|
state := config.ActiveState.Load()
|
|
for _, p := range state.IterProviders() {
|
|
if r, ok := p.GetRoute(alias); ok {
|
|
return r
|
|
}
|
|
}
|
|
return nil
|
|
}
|