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

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