github.com/rakutentech/cli@v6.12.5-0.20151006231303-24468b65536e+incompatible/cf/requirements/organization.go (about)

     1  package requirements
     2  
     3  import (
     4  	"github.com/cloudfoundry/cli/cf/api/organizations"
     5  	"github.com/cloudfoundry/cli/cf/models"
     6  	"github.com/cloudfoundry/cli/cf/terminal"
     7  )
     8  
     9  type OrganizationRequirement interface {
    10  	Requirement
    11  	SetOrganizationName(string)
    12  	GetOrganization() models.Organization
    13  }
    14  
    15  type organizationApiRequirement struct {
    16  	name    string
    17  	ui      terminal.UI
    18  	orgRepo organizations.OrganizationRepository
    19  	org     models.Organization
    20  }
    21  
    22  func NewOrganizationRequirement(name string, ui terminal.UI, sR organizations.OrganizationRepository) *organizationApiRequirement {
    23  	req := &organizationApiRequirement{}
    24  	req.name = name
    25  	req.ui = ui
    26  	req.orgRepo = sR
    27  	return req
    28  }
    29  
    30  func (req *organizationApiRequirement) Execute() (success bool) {
    31  	var apiErr error
    32  	req.org, apiErr = req.orgRepo.FindByName(req.name)
    33  
    34  	if apiErr != nil {
    35  		req.ui.Failed(apiErr.Error())
    36  		return false
    37  	}
    38  
    39  	return true
    40  }
    41  
    42  func (req *organizationApiRequirement) SetOrganizationName(name string) {
    43  	req.name = name
    44  }
    45  
    46  func (req *organizationApiRequirement) GetOrganization() models.Organization {
    47  	return req.org
    48  }