github.com/LukasHeimann/cloudfoundrycli@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  }