github.com/arunkumar7540/cli@v6.45.0+incompatible/actor/v7action/organization.go (about) 1 package v7action 2 3 import ( 4 "code.cloudfoundry.org/cli/actor/actionerror" 5 "code.cloudfoundry.org/cli/api/cloudcontroller/ccv3" 6 ) 7 8 // Organization represents a V3 actor organization. 9 type Organization struct { 10 // GUID is the unique organization identifier. 11 GUID string 12 // Name is the name of the organization. 13 Name string 14 15 // Metadata is used for custom tagging of API resources 16 Metadata *Metadata 17 } 18 19 // GetOrganizationByName returns the organization with the given name. 20 func (actor Actor) GetOrganizationByName(name string) (Organization, Warnings, error) { 21 orgs, warnings, err := actor.CloudControllerClient.GetOrganizations( 22 ccv3.Query{Key: ccv3.NameFilter, Values: []string{name}}, 23 ) 24 if err != nil { 25 return Organization{}, Warnings(warnings), err 26 } 27 28 if len(orgs) == 0 { 29 return Organization{}, Warnings(warnings), actionerror.OrganizationNotFoundError{Name: name} 30 } 31 32 return actor.convertCCToActorOrganization(orgs[0]), Warnings(warnings), nil 33 } 34 35 // UpdateOrganization updates the name and/or labels of an organization 36 func (actor Actor) UpdateOrganization(org Organization) (Organization, Warnings, error) { 37 ccOrg := ccv3.Organization{ 38 GUID: org.GUID, 39 Name: org.Name, 40 Metadata: (*ccv3.Metadata)(org.Metadata), 41 } 42 43 updatedOrg, warnings, err := actor.CloudControllerClient.UpdateOrganization(ccOrg) 44 if err != nil { 45 return Organization{}, Warnings(warnings), err 46 } 47 48 return actor.convertCCToActorOrganization(updatedOrg), Warnings(warnings), nil 49 } 50 51 func (actor Actor) convertCCToActorOrganization(org ccv3.Organization) Organization { 52 return Organization{ 53 GUID: org.GUID, 54 Name: org.Name, 55 Metadata: (*Metadata)(org.Metadata), 56 } 57 } 58 59 func (actor Actor) GetDefaultDomain(orgGUID string) (Domain, Warnings, error) { 60 domain, warnings, err := actor.CloudControllerClient.GetDefaultDomain(orgGUID) 61 62 return Domain(domain), Warnings(warnings), err 63 }