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

     1  package cmd
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/drycc/controller-sdk-go/domains"
     7  )
     8  
     9  // DomainsList lists domains registered with an app.
    10  func (d *DryccCmd) DomainsList(appID string, results int) error {
    11  	s, appID, err := load(d.ConfigFile, appID)
    12  
    13  	if err != nil {
    14  		return err
    15  	}
    16  
    17  	if results == defaultLimit {
    18  		results = s.Limit
    19  	}
    20  
    21  	domains, count, err := domains.List(s.Client, appID, results)
    22  	if d.checkAPICompatibility(s.Client, err) != nil {
    23  		return err
    24  	}
    25  	if count > 0 {
    26  		table := d.getDefaultFormatTable([]string{"APP", "OWNER", "CREATED", "UPDATED", "DOMAIN"})
    27  		for _, domain := range domains {
    28  			table.Append([]string{
    29  				domain.App,
    30  				domain.Owner,
    31  				domain.Created,
    32  				domain.Updated,
    33  				domain.Domain,
    34  			})
    35  		}
    36  		table.Render()
    37  	} else {
    38  		d.Println(fmt.Sprintf("No domains found in %s app.", appID))
    39  	}
    40  	return nil
    41  }
    42  
    43  // DomainsAdd adds a domain to an app.
    44  func (d *DryccCmd) DomainsAdd(appID, domain string) error {
    45  	s, appID, err := load(d.ConfigFile, appID)
    46  
    47  	if err != nil {
    48  		return err
    49  	}
    50  
    51  	d.Printf("Adding %s to %s... ", domain, appID)
    52  
    53  	quit := progress(d.WOut)
    54  	_, err = domains.New(s.Client, appID, domain)
    55  	quit <- true
    56  	<-quit
    57  	if d.checkAPICompatibility(s.Client, err) != nil {
    58  		return err
    59  	}
    60  
    61  	d.Println("done")
    62  	return nil
    63  }
    64  
    65  // DomainsRemove removes a domain registered with an app.
    66  func (d *DryccCmd) DomainsRemove(appID, domain string) error {
    67  	s, appID, err := load(d.ConfigFile, appID)
    68  
    69  	if err != nil {
    70  		return err
    71  	}
    72  
    73  	d.Printf("Removing %s from %s... ", domain, appID)
    74  
    75  	quit := progress(d.WOut)
    76  	err = domains.Delete(s.Client, appID, domain)
    77  	quit <- true
    78  	<-quit
    79  	if d.checkAPICompatibility(s.Client, err) != nil {
    80  		return err
    81  	}
    82  
    83  	d.Println("done")
    84  	return nil
    85  }