github.com/loggregator/cli@v6.33.1-0.20180224010324-82334f081791+incompatible/cf/requirements/targeted_organization.go (about) 1 package requirements 2 3 import ( 4 "errors" 5 "fmt" 6 7 "code.cloudfoundry.org/cli/cf" 8 "code.cloudfoundry.org/cli/cf/configuration/coreconfig" 9 . "code.cloudfoundry.org/cli/cf/i18n" 10 "code.cloudfoundry.org/cli/cf/models" 11 "code.cloudfoundry.org/cli/cf/terminal" 12 ) 13 14 //go:generate counterfeiter . TargetedOrgRequirement 15 16 type TargetedOrgRequirement interface { 17 Requirement 18 GetOrganizationFields() models.OrganizationFields 19 } 20 21 type targetedOrgAPIRequirement struct { 22 config coreconfig.Reader 23 } 24 25 func NewTargetedOrgRequirement(config coreconfig.Reader) TargetedOrgRequirement { 26 return targetedOrgAPIRequirement{config} 27 } 28 29 func (req targetedOrgAPIRequirement) Execute() error { 30 if !req.config.HasOrganization() { 31 message := fmt.Sprintf(T("No org targeted, use '{{.Command}}' to target an org.", map[string]interface{}{"Command": terminal.CommandColor(cf.Name + " target -o ORG")})) 32 return errors.New(message) 33 } 34 35 return nil 36 } 37 38 func (req targetedOrgAPIRequirement) GetOrganizationFields() (org models.OrganizationFields) { 39 return req.config.OrganizationFields() 40 }