github.com/jenspinney/cli@v6.42.1-0.20190207184520-7450c600020e+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 // OrganizationGUIDFilter is a query parameter for listing objects by Organization GUID. 19 OrganizationGUIDFilter QueryKey = "organization_guids" 20 // SequenceIDFilter is a query parameter for listing objects by sequence ID. 21 SequenceIDFilter QueryKey = "sequence_ids" 22 // SpaceGUIDFilter is a query parameter for listing objects by Space GUID. 23 SpaceGUIDFilter QueryKey = "space_guids" 24 // StackFilter is a query parameter for listing objects by stack name 25 StackFilter QueryKey = "stacks" 26 27 // OrderBy is a query parameter to specify how to order objects. 28 OrderBy QueryKey = "order_by" 29 // PerPage is a query parameter for specifying the number of results per page. 30 PerPage QueryKey = "per_page" 31 32 // NameOrder is a query value for ordering by name. This value is used in 33 // conjunction with the OrderBy QueryKey. 34 NameOrder = "name" 35 36 // PositionOrder is a query value for ordering by posiiton. This value is 37 // used in conjuction with the OrderBy QueryKey. 38 PositionOrder = "position" 39 ) 40 41 // Query is additional settings that can be passed to some requests that can 42 // filter, sort, etc. the results. 43 type Query struct { 44 Key QueryKey 45 Values []string 46 } 47 48 // FormatQueryParameters converts a Query object into a collection that 49 // cloudcontroller.Request can accept. 50 func FormatQueryParameters(queries []Query) url.Values { 51 params := url.Values{} 52 for _, query := range queries { 53 params.Add(string(query.Key), strings.Join(query.Values, ",")) 54 } 55 56 return params 57 }