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