github.com/rakutentech/cli@v6.12.5-0.20151006231303-24468b65536e+incompatible/cf/commands/route/check_route.go (about) 1 package route 2 3 import ( 4 "github.com/cloudfoundry/cli/cf/api" 5 "github.com/cloudfoundry/cli/cf/command_registry" 6 "github.com/cloudfoundry/cli/cf/configuration/core_config" 7 . "github.com/cloudfoundry/cli/cf/i18n" 8 "github.com/cloudfoundry/cli/cf/requirements" 9 "github.com/cloudfoundry/cli/cf/terminal" 10 "github.com/cloudfoundry/cli/flags" 11 ) 12 13 type CheckRoute struct { 14 ui terminal.UI 15 config core_config.Reader 16 routeRepo api.RouteRepository 17 domainRepo api.DomainRepository 18 } 19 20 func init() { 21 command_registry.Register(&CheckRoute{}) 22 } 23 24 func (cmd *CheckRoute) MetaData() command_registry.CommandMetadata { 25 return command_registry.CommandMetadata{ 26 Name: "check-route", 27 Description: T("Perform a simple check to determine whether a route currently exists or not."), 28 Usage: T("CF_NAME check-route HOST DOMAIN"), 29 } 30 } 31 32 func (cmd *CheckRoute) Requirements(requirementsFactory requirements.Factory, fc flags.FlagContext) (reqs []requirements.Requirement, err error) { 33 if len(fc.Args()) != 2 { 34 cmd.ui.Failed(T("Incorrect Usage. Requires host and domain as arguments\n\n") + command_registry.Commands.CommandUsage("check-route")) 35 } 36 37 reqs = []requirements.Requirement{ 38 requirementsFactory.NewTargetedOrgRequirement(), 39 requirementsFactory.NewLoginRequirement(), 40 } 41 return 42 } 43 44 func (cmd *CheckRoute) SetDependency(deps command_registry.Dependency, pluginCall bool) command_registry.Command { 45 cmd.ui = deps.Ui 46 cmd.config = deps.Config 47 cmd.routeRepo = deps.RepoLocator.GetRouteRepository() 48 cmd.domainRepo = deps.RepoLocator.GetDomainRepository() 49 return cmd 50 } 51 52 func (cmd *CheckRoute) Execute(c flags.FlagContext) { 53 hostName := c.Args()[0] 54 domainName := c.Args()[1] 55 56 cmd.ui.Say(T("Checking for route...")) 57 58 exists, err := cmd.CheckRoute(hostName, domainName) 59 if err != nil { 60 cmd.ui.Failed(err.Error()) 61 } 62 63 cmd.ui.Ok() 64 65 if exists { 66 cmd.ui.Say(T("Route {{.HostName}}.{{.DomainName}} does exist", 67 map[string]interface{}{"HostName": hostName, "DomainName": domainName}, 68 )) 69 } else { 70 cmd.ui.Say(T("Route {{.HostName}}.{{.DomainName}} does not exist", 71 map[string]interface{}{"HostName": hostName, "DomainName": domainName}, 72 )) 73 } 74 } 75 76 func (cmd *CheckRoute) CheckRoute(hostName, domainName string) (bool, error) { 77 orgGuid := cmd.config.OrganizationFields().Guid 78 domain, err := cmd.domainRepo.FindByNameInOrg(domainName, orgGuid) 79 if err != nil { 80 return false, err 81 } 82 83 found, err := cmd.routeRepo.CheckIfExists(hostName, domain) 84 if err != nil { 85 return false, err 86 } 87 88 return found, nil 89 }