github.com/taubyte/tau-cli@v0.1.13-0.20240326000942-487f0d57edfc/lib/domain/methods.go (about)

     1  package domainLib
     2  
     3  import (
     4  	"github.com/taubyte/go-project-schema/project"
     5  	structureSpec "github.com/taubyte/go-specs/structure"
     6  )
     7  
     8  func New(domain *structureSpec.Domain) (validator Validator, err error) {
     9  	return set(domain, true)
    10  }
    11  
    12  func Set(domain *structureSpec.Domain) (validator Validator, err error) {
    13  	return set(domain, false)
    14  }
    15  
    16  func Delete(name string) error {
    17  	info, err := get(name)
    18  	if err != nil {
    19  		return err
    20  	}
    21  
    22  	return info.domain.Delete()
    23  }
    24  
    25  func List() ([]string, error) {
    26  	_, _, domains, err := list()
    27  	if err != nil {
    28  		return nil, err
    29  	}
    30  
    31  	return domains, nil
    32  }
    33  
    34  func ListResources() ([]*structureSpec.Domain, error) {
    35  	project, application, relative, err := list()
    36  	if err != nil {
    37  		return nil, err
    38  	}
    39  
    40  	domains := make([]*structureSpec.Domain, len(relative))
    41  	for idx, name := range relative {
    42  		domain, err := project.Domain(name, application)
    43  		if err != nil {
    44  			return nil, err
    45  		}
    46  
    47  		domains[idx], err = domain.Get().Struct()
    48  		if err != nil {
    49  			return nil, err
    50  		}
    51  	}
    52  
    53  	return domains, nil
    54  }
    55  
    56  func ProjectDomainCount(project project.Project) (domainCount int) {
    57  	_, global := project.Get().Domains("")
    58  	domainCount += len(global)
    59  
    60  	for _, app := range project.Get().Applications() {
    61  		local, _ := project.Get().Domains(app)
    62  		domainCount += len(local)
    63  	}
    64  
    65  	return
    66  }