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 }