forked from cloudfoundry/cli
-
Notifications
You must be signed in to change notification settings - Fork 0
/
space.go
61 lines (48 loc) · 1.72 KB
/
space.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
60
61
package ccv3
import (
"code.cloudfoundry.org/cli/api/cloudcontroller/ccv3/internal"
"code.cloudfoundry.org/cli/resources"
)
func (client *Client) CreateSpace(space resources.Space) (resources.Space, Warnings, error) {
var responseBody resources.Space
_, warnings, err := client.MakeRequest(RequestParams{
RequestName: internal.PostSpaceRequest,
RequestBody: space,
ResponseBody: &responseBody,
})
return responseBody, warnings, err
}
func (client *Client) DeleteSpace(spaceGUID string) (JobURL, Warnings, error) {
jobURL, warnings, err := client.MakeRequest(RequestParams{
RequestName: internal.DeleteSpaceRequest,
URIParams: internal.Params{"space_guid": spaceGUID},
})
return jobURL, warnings, err
}
// GetSpaces lists spaces with optional filters.
func (client *Client) GetSpaces(query ...Query) ([]resources.Space, IncludedResources, Warnings, error) {
var returnedResources []resources.Space
includedResources, warnings, err := client.MakeListRequest(RequestParams{
RequestName: internal.GetSpacesRequest,
Query: query,
ResponseBody: resources.Space{},
AppendToList: func(item interface{}) error {
returnedResources = append(returnedResources, item.(resources.Space))
return nil
},
})
return returnedResources, includedResources, warnings, err
}
func (client *Client) UpdateSpace(space resources.Space) (resources.Space, Warnings, error) {
spaceGUID := space.GUID
space.GUID = ""
space.Relationships = nil
var responseBody resources.Space
_, warnings, err := client.MakeRequest(RequestParams{
RequestName: internal.PatchSpaceRequest,
URIParams: internal.Params{"space_guid": spaceGUID},
RequestBody: space,
ResponseBody: &responseBody,
})
return responseBody, warnings, err
}