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  }