in api/internal/handler/stream_route/stream_route.go [85:115]
func (h *Handler) List(c droplet.Context) (interface{}, error) {
input := c.Input().(*ListInput)
ret, err := h.streamRouteStore.List(c.Context(), store.ListInput{
Predicate: func(obj interface{}) bool {
if input.RemoteAddr != "" && !strings.Contains(obj.(*entity.StreamRoute).RemoteAddr, input.RemoteAddr) {
return false
}
if input.ServerAddr != "" && !strings.Contains(obj.(*entity.StreamRoute).ServerAddr, input.ServerAddr) {
return false
}
if input.ServerPort != 0 && obj.(*entity.StreamRoute).ServerPort != input.ServerPort {
return false
}
if input.SNI != "" && !strings.Contains(obj.(*entity.StreamRoute).SNI, input.SNI) {
return false
}
return true
},
PageSize: input.PageSize,
PageNumber: input.PageNumber,
})
if err != nil {
return nil, err
}
return ret, nil
}