github.com/arunkumar7540/cli@v6.45.0+incompatible/api/cloudcontroller/ccv3/query.go (about)

     1  package ccv3
     2  
     3  import (
     4  	"net/url"
     5  	"strings"
     6  )
     7  
     8  // QueryKey is the type of query that is being selected on.
     9  type QueryKey string
    10  
    11  const (
    12  	// AppGUIDFilter is a query parameter for listing objects by app GUID.
    13  	AppGUIDFilter QueryKey = "app_guids"
    14  	// GUIDFilter is a query parameter for listing objects by GUID.
    15  	GUIDFilter QueryKey = "guids"
    16  	// NameFilter is a query parameter for listing objects by name.
    17  	NameFilter QueryKey = "names"
    18  	// NoRouteFilter is a query parameter for skipping route creation and unmapping existing routes.
    19  	NoRouteFilter QueryKey = "no_route"
    20  	// OrganizationGUIDFilter is a query parameter for listing objects by Organization GUID.
    21  	OrganizationGUIDFilter QueryKey = "organization_guids"
    22  	// SequenceIDFilter is a query parameter for listing objects by sequence ID.
    23  	SequenceIDFilter QueryKey = "sequence_ids"
    24  	// SpaceGUIDFilter is a query parameter for listing objects by Space GUID.
    25  	SpaceGUIDFilter QueryKey = "space_guids"
    26  	// StackFilter is a query parameter for listing objects by stack name
    27  	StackFilter QueryKey = "stacks"
    28  
    29  	// OrderBy is a query parameter to specify how to order objects.
    30  	OrderBy QueryKey = "order_by"
    31  	// PerPage is a query parameter for specifying the number of results per page.
    32  	PerPage QueryKey = "per_page"
    33  
    34  	// NameOrder is a query value for ordering by name. This value is used in
    35  	// conjunction with the OrderBy QueryKey.
    36  	NameOrder = "name"
    37  
    38  	// PositionOrder is a query value for ordering by position. This value is
    39  	// used in conjunction with the OrderBy QueryKey.
    40  	PositionOrder = "position"
    41  )
    42  
    43  // Query is additional settings that can be passed to some requests that can
    44  // filter, sort, etc. the results.
    45  type Query struct {
    46  	Key    QueryKey
    47  	Values []string
    48  }
    49  
    50  // FormatQueryParameters converts a Query object into a collection that
    51  // cloudcontroller.Request can accept.
    52  func FormatQueryParameters(queries []Query) url.Values {
    53  	params := url.Values{}
    54  	for _, query := range queries {
    55  		params.Add(string(query.Key), strings.Join(query.Values, ","))
    56  	}
    57  
    58  	return params
    59  }