in pulsar/internal/utils.go [50:78]
func ParseRelativeTimeInSeconds(relativeTime string) (time.Duration, error) {
if relativeTime == "" {
return -1, errors.New("time can not be empty")
}
unitTime := relativeTime[len(relativeTime)-1:]
t := relativeTime[:len(relativeTime)-1]
timeValue, err := strconv.ParseInt(t, 10, 64)
if err != nil {
return -1, errors.Errorf("invalid time '%s'", t)
}
switch strings.ToLower(unitTime) {
case "s":
return time.Duration(timeValue) * time.Second, nil
case "m":
return time.Duration(timeValue) * time.Minute, nil
case "h":
return time.Duration(timeValue) * time.Hour, nil
case "d":
return time.Duration(timeValue) * time.Hour * 24, nil
case "w":
return time.Duration(timeValue) * time.Hour * 24 * 7, nil
case "y":
return time.Duration(timeValue) * time.Hour * 24 * 7 * 365, nil
default:
return -1, errors.Errorf("invalid time unit '%s'", unitTime)
}
}