in api/internal/handler/service/service.go [132:165]
func (h *Handler) List(c droplet.Context) (interface{}, error) {
input := c.Input().(*ListInput)
ret, err := h.serviceStore.List(c.Context(), store.ListInput{
Predicate: func(obj interface{}) bool {
if input.Name != "" {
return strings.Contains(obj.(*entity.Service).Name, input.Name)
}
if input.Desc != "" {
return strings.Contains(obj.(*entity.Service).Desc, input.Desc)
}
if input.ID != "" {
return strings.Contains(utils.InterfaceToString(obj.(*entity.Service).ID), input.ID)
}
return true
},
Format: func(obj interface{}) interface{} {
service := obj.(*entity.Service)
if service.Upstream != nil && service.Upstream.Nodes != nil {
service.Upstream.Nodes = entity.NodesFormat(service.Upstream.Nodes)
}
return service
},
PageSize: input.PageSize,
PageNumber: input.PageNumber,
})
if err != nil {
return nil, err
}
return ret, nil
}