Skip to content

Commit

Permalink
Refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
Dariquest committed Jan 9, 2025
1 parent e37621d commit a9162a4
Showing 1 changed file with 36 additions and 17 deletions.
53 changes: 36 additions & 17 deletions cf/commands/route/update_route.go
Original file line number Diff line number Diff line change
Expand Up @@ -91,22 +91,8 @@ func (cmd *UpdateRoute) Execute(c flags.FlagContext) error {
host := strings.ToLower(rawHostNameFromFlag)
path := c.String("path")
domainFields := cmd.domainReq.GetDomain()
option := c.String("o")
removeOption := c.String("r")
port := 0

if option != "" {
err := command.MinimumCCAPIVersionCheck(cmd.config.APIVersion(), ccversion.MinVersionPerRouteOpts)
if err != nil {
cmd.ui.Say(T("Your CC API version ({{.APIVersion}}) does not support per route options."+
"Upgrade to a newer version of the API (minimum version {{.MinSupportedVersion}}). ", map[string]interface{}{
"APIVersion": cmd.config.APIVersion(),
"MinSupportedVersion": ccversion.MinVersionPerRouteOpts,
}))
return err
}
}

url := (&models.RoutePresenter{
Host: host,
Domain: domain,
Expand All @@ -121,7 +107,40 @@ func (cmd *UpdateRoute) Execute(c flags.FlagContext) error {
return err
}

if c.IsSet("o") || c.IsSet("r") {
err := cmd.validateAPIVersionForPerRouteOptions(c)
if err != nil {
return err
}
}

if c.IsSet("o") {
cmd.setPerRouteOptions(c, route, url)
}

if c.IsSet("r") {
cmd.removePerRouteOptions(c, route, url)
}

cmd.ui.Ok()
return nil
}

func (cmd *UpdateRoute) validateAPIVersionForPerRouteOptions(c flags.FlagContext) error {
err := command.MinimumCCAPIVersionCheck(cmd.config.APIVersion(), ccversion.MinVersionPerRouteOpts)
if err != nil {
cmd.ui.Say(T("Your CC API version ({{.APIVersion}}) does not support per route options."+
"Upgrade to a newer version of the API (minimum version {{.MinSupportedVersion}}). ", map[string]interface{}{
"APIVersion": cmd.config.APIVersion(),
"MinSupportedVersion": ccversion.MinVersionPerRouteOpts,
}))
}
return err
}

func (cmd *UpdateRoute) setPerRouteOptions(c flags.FlagContext, route models.Route, url string) {
if c.IsSet("o") {
option := c.String("o")
key, value, found := strings.Cut(option, "=")
if found {
cmd.ui.Say(T("Setting route option {{.Option}} for {{.URL}} to {{.Value}}...", map[string]interface{}{
Expand All @@ -138,8 +157,11 @@ func (cmd *UpdateRoute) Execute(c flags.FlagContext) error {
"URL": terminal.EntityNameColor(url)}))
}
}
}

func (cmd *UpdateRoute) removePerRouteOptions(c flags.FlagContext, route models.Route, url string) {
if c.IsSet("r") {
removeOption := c.String("r")
if _, ok := route.Options[removeOption]; ok {
cmd.ui.Say(T("Removing route option {{.Option}} for {{.URL}}...", map[string]interface{}{
"Option": terminal.EntityNameColor(removeOption),
Expand All @@ -152,7 +174,4 @@ func (cmd *UpdateRoute) Execute(c flags.FlagContext) error {
"URL": terminal.EntityNameColor(url)}))
}
}

cmd.ui.Ok()
return nil
}

0 comments on commit a9162a4

Please sign in to comment.