func (repo CloudControllerApplicationRepository) GetApp(appGuid string) (app models.Application, apiErr error) { path := fmt.Sprintf("%s/v2/apps/%s", repo.config.ApiEndpoint(), appGuid) appResources := new(resources.ApplicationResource) apiErr = repo.gateway.GetResource(path, appResources) if apiErr != nil { return } app = appResources.ToModel() return }
func (repo CloudControllerApplicationRepository) Create(params models.AppParams) (models.Application, error) { appResource := resources.NewApplicationEntityFromAppParams(params) data, err := json.Marshal(appResource) if err != nil { return models.Application{}, fmt.Errorf("%s: %s", T("Failed to marshal JSON"), err.Error()) } resource := new(resources.ApplicationResource) err = repo.gateway.CreateResource(repo.config.APIEndpoint(), "/v2/apps", bytes.NewReader(data), resource) if err != nil { return models.Application{}, err } return resource.ToModel(), nil }
func (repo CloudControllerApplicationRepository) Create(params models.AppParams) (createdApp models.Application, apiErr error) { data, err := repo.formatAppJSON(params) if err != nil { apiErr = errors.NewWithError(T("Failed to marshal JSON"), err) return } resource := new(resources.ApplicationResource) apiErr = repo.gateway.CreateResource(repo.config.ApiEndpoint(), "/v2/apps", strings.NewReader(data), resource) if apiErr != nil { return } createdApp = resource.ToModel() return }
func (repo CloudControllerApplicationRepository) Update(appGuid string, params models.AppParams) (updatedApp models.Application, apiErr error) { data, err := repo.formatAppJSON(params) if err != nil { apiErr = errors.NewWithError(T("Failed to marshal JSON"), err) return } path := fmt.Sprintf("/v2/apps/%s?inline-relations-depth=1", appGuid) resource := new(resources.ApplicationResource) apiErr = repo.gateway.UpdateResource(repo.config.ApiEndpoint(), path, strings.NewReader(data), resource) if apiErr != nil { return } updatedApp = resource.ToModel() return }
func (repo CloudControllerApplicationRepository) Update(appGUID string, params models.AppParams) (updatedApp models.Application, apiErr error) { appResource := resources.NewApplicationEntityFromAppParams(params) data, err := json.Marshal(appResource) if err != nil { return models.Application{}, fmt.Errorf("%s: %s", T("Failed to marshal JSON"), err.Error()) } path := fmt.Sprintf("/v2/apps/%s?inline-relations-depth=1", appGUID) resource := new(resources.ApplicationResource) apiErr = repo.gateway.UpdateResource(repo.config.APIEndpoint(), path, bytes.NewReader(data), resource) if apiErr != nil { return } updatedApp = resource.ToModel() return }
package resources_test import ( "encoding/json" "time" "github.com/cloudfoundry/cli/cf/api/resources" "github.com/cloudfoundry/cli/cf/models" testtime "github.com/cloudfoundry/cli/testhelpers/time" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("Application resources", func() { var resource *resources.ApplicationResource Describe("New Application", func() { BeforeEach(func() { resource = new(resources.ApplicationResource) }) It("Adds a packageUpdatedAt timestamp", func() { err := json.Unmarshal([]byte(` { "metadata": { "guid":"application-1-guid" }, "entity": { "package_updated_at": "2013-10-07T16:51:07+00:00" } }`), &resource)