github.com/swisscom/cloudfoundry-cli@v7.1.0+incompatible/api/cloudcontroller/ccv3/route.go (about) 1 package ccv3 2 3 import ( 4 "code.cloudfoundry.org/cli/api/cloudcontroller/ccv3/internal" 5 "code.cloudfoundry.org/cli/resources" 6 ) 7 8 func (client Client) CreateRoute(route resources.Route) (resources.Route, Warnings, error) { 9 var responseBody resources.Route 10 11 _, warnings, err := client.MakeRequest(RequestParams{ 12 RequestName: internal.PostRouteRequest, 13 RequestBody: route, 14 ResponseBody: &responseBody, 15 }) 16 17 return responseBody, warnings, err 18 } 19 20 func (client Client) DeleteOrphanedRoutes(spaceGUID string) (JobURL, Warnings, error) { 21 jobURL, warnings, err := client.MakeRequest(RequestParams{ 22 RequestName: internal.DeleteOrphanedRoutesRequest, 23 URIParams: internal.Params{"space_guid": spaceGUID}, 24 Query: []Query{{Key: UnmappedFilter, Values: []string{"true"}}}, 25 }) 26 27 return jobURL, warnings, err 28 } 29 30 func (client Client) DeleteRoute(routeGUID string) (JobURL, Warnings, error) { 31 jobURL, warnings, err := client.MakeRequest(RequestParams{ 32 RequestName: internal.DeleteRouteRequest, 33 URIParams: internal.Params{"route_guid": routeGUID}, 34 }) 35 36 return jobURL, warnings, err 37 } 38 39 func (client Client) GetApplicationRoutes(appGUID string) ([]resources.Route, Warnings, error) { 40 var routes []resources.Route 41 42 _, warnings, err := client.MakeListRequest(RequestParams{ 43 RequestName: internal.GetApplicationRoutesRequest, 44 URIParams: internal.Params{"app_guid": appGUID}, 45 ResponseBody: resources.Route{}, 46 AppendToList: func(item interface{}) error { 47 routes = append(routes, item.(resources.Route)) 48 return nil 49 }, 50 }) 51 52 return routes, warnings, err 53 } 54 55 func (client Client) GetRouteDestinations(routeGUID string) ([]resources.RouteDestination, Warnings, error) { 56 var responseBody struct { 57 Destinations []resources.RouteDestination `json:"destinations"` 58 } 59 60 _, warnings, err := client.MakeRequest(RequestParams{ 61 RequestName: internal.GetRouteDestinationsRequest, 62 URIParams: internal.Params{"route_guid": routeGUID}, 63 ResponseBody: &responseBody, 64 }) 65 66 return responseBody.Destinations, warnings, err 67 } 68 69 func (client Client) GetRoutes(query ...Query) ([]resources.Route, Warnings, error) { 70 var routes []resources.Route 71 72 _, warnings, err := client.MakeListRequest(RequestParams{ 73 RequestName: internal.GetRoutesRequest, 74 Query: query, 75 ResponseBody: resources.Route{}, 76 AppendToList: func(item interface{}) error { 77 routes = append(routes, item.(resources.Route)) 78 return nil 79 }, 80 }) 81 82 return routes, warnings, err 83 } 84 85 func (client Client) MapRoute(routeGUID string, appGUID string) (Warnings, error) { 86 type destinationProcess struct { 87 ProcessType string `json:"process_type"` 88 } 89 90 type destinationApp struct { 91 GUID string `json:"guid"` 92 Process *destinationProcess `json:"process,omitempty"` 93 } 94 type destination struct { 95 App destinationApp `json:"app"` 96 } 97 98 type body struct { 99 Destinations []destination `json:"destinations"` 100 } 101 102 requestBody := body{ 103 Destinations: []destination{ 104 {App: destinationApp{GUID: appGUID}}, 105 }, 106 } 107 108 _, warnings, err := client.MakeRequest(RequestParams{ 109 RequestName: internal.MapRouteRequest, 110 URIParams: internal.Params{"route_guid": routeGUID}, 111 RequestBody: &requestBody, 112 }) 113 114 return warnings, err 115 } 116 117 func (client Client) UnmapRoute(routeGUID string, destinationGUID string) (Warnings, error) { 118 var responseBody Build 119 120 _, warnings, err := client.MakeRequest(RequestParams{ 121 RequestName: internal.UnmapRouteRequest, 122 URIParams: internal.Params{"route_guid": routeGUID, "destination_guid": destinationGUID}, 123 ResponseBody: &responseBody, 124 }) 125 126 return warnings, err 127 }