github.com/LukasHeimann/cloudfoundrycli@v7.1.0+incompatible/api/cloudcontroller/ccv3/application.go (about)

     1  package ccv3
     2  
     3  import (
     4  	"code.cloudfoundry.org/cli/api/cloudcontroller/ccerror"
     5  	"code.cloudfoundry.org/cli/api/cloudcontroller/ccv3/internal"
     6  	"code.cloudfoundry.org/cli/resources"
     7  )
     8  
     9  // CreateApplication creates an application with the given settings.
    10  func (client *Client) CreateApplication(app resources.Application) (resources.Application, Warnings, error) {
    11  	var responseBody resources.Application
    12  
    13  	_, warnings, err := client.MakeRequest(RequestParams{
    14  		RequestName:  internal.PostApplicationRequest,
    15  		RequestBody:  app,
    16  		ResponseBody: &responseBody,
    17  	})
    18  
    19  	return responseBody, warnings, err
    20  }
    21  
    22  func (client *Client) GetApplicationByNameAndSpace(appName string, spaceGUID string) (resources.Application, Warnings, error) {
    23  	apps, warnings, err := client.GetApplications(
    24  		Query{Key: NameFilter, Values: []string{appName}},
    25  		Query{Key: SpaceGUIDFilter, Values: []string{spaceGUID}},
    26  	)
    27  	if err != nil {
    28  		return resources.Application{}, warnings, err
    29  	}
    30  
    31  	if len(apps) == 0 {
    32  		return resources.Application{}, warnings, ccerror.ApplicationNotFoundError{Name: appName}
    33  	}
    34  
    35  	return apps[0], warnings, nil
    36  }
    37  
    38  // GetApplications lists applications with optional queries.
    39  func (client *Client) GetApplications(query ...Query) ([]resources.Application, Warnings, error) {
    40  	var apps []resources.Application
    41  
    42  	_, warnings, err := client.MakeListRequest(RequestParams{
    43  		RequestName:  internal.GetApplicationsRequest,
    44  		Query:        query,
    45  		ResponseBody: resources.Application{},
    46  		AppendToList: func(item interface{}) error {
    47  			apps = append(apps, item.(resources.Application))
    48  			return nil
    49  		},
    50  	})
    51  
    52  	return apps, warnings, err
    53  }
    54  
    55  // UpdateApplication updates an application with the given settings.
    56  func (client *Client) UpdateApplication(app resources.Application) (resources.Application, Warnings, error) {
    57  	var responseBody resources.Application
    58  
    59  	_, warnings, err := client.MakeRequest(RequestParams{
    60  		RequestName:  internal.PatchApplicationRequest,
    61  		URIParams:    internal.Params{"app_guid": app.GUID},
    62  		RequestBody:  app,
    63  		ResponseBody: &responseBody,
    64  	})
    65  
    66  	return responseBody, warnings, err
    67  }
    68  
    69  // UpdateApplicationRestart restarts the given application.
    70  func (client *Client) UpdateApplicationRestart(appGUID string) (resources.Application, Warnings, error) {
    71  	var responseBody resources.Application
    72  
    73  	_, warnings, err := client.MakeRequest(RequestParams{
    74  		RequestName:  internal.PostApplicationActionRestartRequest,
    75  		URIParams:    internal.Params{"app_guid": appGUID},
    76  		ResponseBody: &responseBody,
    77  	})
    78  
    79  	return responseBody, warnings, err
    80  }
    81  
    82  // UpdateApplicationStart starts the given application.
    83  func (client *Client) UpdateApplicationStart(appGUID string) (resources.Application, Warnings, error) {
    84  	var responseBody resources.Application
    85  
    86  	_, warnings, err := client.MakeRequest(RequestParams{
    87  		RequestName:  internal.PostApplicationActionStartRequest,
    88  		URIParams:    internal.Params{"app_guid": appGUID},
    89  		ResponseBody: &responseBody,
    90  	})
    91  
    92  	return responseBody, warnings, err
    93  }
    94  
    95  // UpdateApplicationStop stops the given application.
    96  func (client *Client) UpdateApplicationStop(appGUID string) (resources.Application, Warnings, error) {
    97  	var responseBody resources.Application
    98  
    99  	_, warnings, err := client.MakeRequest(RequestParams{
   100  		RequestName:  internal.PostApplicationActionStopRequest,
   101  		URIParams:    internal.Params{"app_guid": appGUID},
   102  		ResponseBody: &responseBody,
   103  	})
   104  
   105  	return responseBody, warnings, err
   106  }