github.com/ablease/cli@v6.37.1-0.20180613014814-3adbb7d7fb19+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 25 // OrderBy is a query parameter to specify how to order objects. 26 OrderBy QueryKey = "order_by" 27 // PerPage is a query parameter for specifying the number of results per page. 28 PerPage QueryKey = "per_page" 29 30 // NameOrder is a query value for ordering by name. This value is used in 31 // conjunction with the OrderBy QueryKey. 32 NameOrder = "name" 33 ) 34 35 // Query is additional settings that can be passed to some requests that can 36 // filter, sort, etc. the results. 37 type Query struct { 38 Key QueryKey 39 Values []string 40 } 41 42 // FormatQueryParameters converts a Query object into a collection that 43 // cloudcontroller.Request can accept. 44 func FormatQueryParameters(queries []Query) url.Values { 45 params := url.Values{} 46 for _, query := range queries { 47 params.Add(string(query.Key), strings.Join(query.Values, ",")) 48 } 49 50 return params 51 }