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 }