github.com/infraboard/keyauth@v0.8.1/apps/endpoint/impl/resource.go (about)

     1  package impl
     2  
     3  import (
     4  	"context"
     5  
     6  	"github.com/infraboard/keyauth/apps/endpoint"
     7  	"github.com/infraboard/mcube/http/request"
     8  )
     9  
    10  const (
    11  	// MaxQueryEndpoints todo
    12  	MaxQueryEndpoints = 1000
    13  )
    14  
    15  func (s *service) QueryResources(ctx context.Context, req *endpoint.QueryResourceRequest) (
    16  	*endpoint.ResourceSet, error) {
    17  	if err := req.Validate(); err != nil {
    18  		return nil, err
    19  	}
    20  
    21  	rs := endpoint.NewResourceSet()
    22  	queryE := endpoint.NewQueryEndpointRequest(request.NewPageRequest(MaxQueryEndpoints, 1))
    23  	queryE.PermissionEnable = req.PermissionEnable
    24  	queryE.Resources = req.Resources
    25  	queryE.ServiceIds = req.ServiceIds
    26  	eps, err := s.QueryEndpoints(ctx, queryE)
    27  	if err != nil {
    28  		return nil, err
    29  	}
    30  	if eps.Total > MaxQueryEndpoints {
    31  		s.log.Warnf("service %s total endpoints > %d", req.ServiceIds, eps.Total)
    32  	}
    33  
    34  	rs.AddEndpointSet(eps)
    35  	return rs, nil
    36  }