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

     1  package requirements
     2  
     3  import (
     4  	"github.com/cloudfoundry/cli/cf/api"
     5  	"github.com/cloudfoundry/cli/cf/configuration/core_config"
     6  	"github.com/cloudfoundry/cli/cf/models"
     7  	"github.com/cloudfoundry/cli/cf/terminal"
     8  )
     9  
    10  type DomainRequirement interface {
    11  	Requirement
    12  	GetDomain() models.DomainFields
    13  }
    14  
    15  type domainApiRequirement struct {
    16  	name       string
    17  	ui         terminal.UI
    18  	config     core_config.Reader
    19  	domainRepo api.DomainRepository
    20  	domain     models.DomainFields
    21  }
    22  
    23  func NewDomainRequirement(name string, ui terminal.UI, config core_config.Reader, domainRepo api.DomainRepository) (req *domainApiRequirement) {
    24  	req = new(domainApiRequirement)
    25  	req.name = name
    26  	req.ui = ui
    27  	req.config = config
    28  	req.domainRepo = domainRepo
    29  	return
    30  }
    31  
    32  func (req *domainApiRequirement) Execute() bool {
    33  	var apiErr error
    34  	req.domain, apiErr = req.domainRepo.FindByNameInOrg(req.name, req.config.OrganizationFields().Guid)
    35  
    36  	if apiErr != nil {
    37  		req.ui.Failed(apiErr.Error())
    38  		return false
    39  	}
    40  
    41  	return true
    42  }
    43  
    44  func (req *domainApiRequirement) GetDomain() models.DomainFields {
    45  	return req.domain
    46  }