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 }