package checker import ( "math" "time" "gitnet.fr/deblan/expiration-check/pkg/extractor" "gitnet.fr/deblan/expiration-check/pkg/logger" "gitnet.fr/deblan/expiration-check/pkg/model" "gitnet.fr/deblan/expiration-check/pkg/rdap" "gitnet.fr/deblan/expiration-check/pkg/whois" ) func CheckDomains(domains []string) []*model.Result { var err error var date *time.Time var values []*model.Result services, err := rdap.GetRdapServices() if err != nil { logger.Get().Logf("GetRdapServices failed: error=%v", err) return values } for _, domain := range domains { tld := extractor.ExtractTld(domain) service, ok := services[tld] if ok { date, err = rdap.GetExpiration(domain, service) } else { date, err = whois.GetExpiration(domain) } if err != nil { logger.Get().Logf("CheckDomain: domain=%s error=%s", domain, err) values = append(values, model.NewResultFailed(domain)) } else { daysLeft := math.Floor(date.Sub(time.Now()).Hours() / 24) values = append(values, model.NewResult( domain, daysLeft, date.Format(time.DateTime), )) } } return values }