func()

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
}