github.com/liamawhite/cli-with-i18n@v6.32.1-0.20171122084555-dede0a5c3448+incompatible/actor/pushaction/domain.go (about) 1 package pushaction 2 3 import ( 4 "fmt" 5 6 "github.com/liamawhite/cli-with-i18n/actor/v2action" 7 log "github.com/Sirupsen/logrus" 8 ) 9 10 // NoDomainsFoundError is returned when there are no private or shared domains 11 // accessible to an organization. 12 type NoDomainsFoundError struct { 13 OrganizationGUID string 14 } 15 16 func (e NoDomainsFoundError) Error() string { 17 return fmt.Sprintf("No private or shared domains found for organization (GUID: %s)", e.OrganizationGUID) 18 } 19 20 // DefaultDomain looks up the shared and then private domains and returns back 21 // the first one in the list as the default. 22 func (actor Actor) DefaultDomain(orgGUID string) (v2action.Domain, Warnings, error) { 23 log.Infoln("getting org domains for org GUID:", orgGUID) 24 domains, warnings, err := actor.V2Actor.GetOrganizationDomains(orgGUID) 25 if err != nil { 26 log.Errorln("searching for domains in org:", err) 27 return v2action.Domain{}, Warnings(warnings), err 28 } 29 30 if len(domains) == 0 { 31 log.Error("no domains found") 32 return v2action.Domain{}, Warnings(warnings), NoDomainsFoundError{OrganizationGUID: orgGUID} 33 } 34 35 log.Debugf("selecting first domain as default domain: %#v", domains) 36 return domains[0], Warnings(warnings), nil 37 }