github.com/drycc/workflow-cli@v1.5.3-0.20240322092846-d4ee25983af9/cmd/routing.go (about)

     1  package cmd
     2  
     3  import (
     4  	"github.com/drycc/controller-sdk-go/api"
     5  	"github.com/drycc/controller-sdk-go/appsettings"
     6  )
     7  
     8  // RoutingInfo provides information about the status of app routing.
     9  func (d *DryccCmd) RoutingInfo(appID string) error {
    10  	s, appID, err := load(d.ConfigFile, appID)
    11  
    12  	if err != nil {
    13  		return err
    14  	}
    15  
    16  	appSettings, err := appsettings.List(s.Client, appID)
    17  	if d.checkAPICompatibility(s.Client, err) != nil {
    18  		return err
    19  	}
    20  
    21  	if appSettings.Routable == nil || *appSettings.Routable {
    22  		d.Println("Routing is enabled.")
    23  	} else {
    24  		d.Println("Routing is disabled.")
    25  	}
    26  	return nil
    27  }
    28  
    29  // RoutingEnable enables an app from being exposed by the router.
    30  func (d *DryccCmd) RoutingEnable(appID string) error {
    31  	s, appID, err := load(d.ConfigFile, appID)
    32  
    33  	if err != nil {
    34  		return err
    35  	}
    36  
    37  	d.Printf("Enabling routing for %s... ", appID)
    38  
    39  	quit := progress(d.WOut)
    40  	appSettings := api.AppSettings{Routable: api.NewRoutable()}
    41  	_, err = appsettings.Set(s.Client, appID, appSettings)
    42  
    43  	quit <- true
    44  	<-quit
    45  
    46  	if err != nil {
    47  		return err
    48  	}
    49  
    50  	d.Println("done")
    51  	return nil
    52  }
    53  
    54  // RoutingDisable disables an app from being exposed by the router.
    55  func (d *DryccCmd) RoutingDisable(appID string) error {
    56  	s, appID, err := load(d.ConfigFile, appID)
    57  
    58  	if err != nil {
    59  		return err
    60  	}
    61  
    62  	d.Printf("Disabling routing for %s... ", appID)
    63  
    64  	quit := progress(d.WOut)
    65  	appSettings := api.AppSettings{Routable: api.NewRoutable()}
    66  	*appSettings.Routable = false
    67  	_, err = appsettings.Set(s.Client, appID, appSettings)
    68  
    69  	quit <- true
    70  	<-quit
    71  
    72  	if err != nil {
    73  		return err
    74  	}
    75  
    76  	d.Println("done")
    77  	return nil
    78  }