in bydbctl/internal/cmd/rest.go [161:206]
func parseTimeRangeFromFlagAndYAML(reader io.Reader) (requests []reqBody, err error) {
var startTS, endTS time.Time
if start == "" && end == "" {
startTS = time.Now().Add((-30) * time.Minute)
endTS = time.Now()
} else if start != "" && end != "" {
if startTS, err = parseTime(start); err != nil {
return nil, err
}
if endTS, err = parseTime(end); err != nil {
return nil, err
}
} else if start != "" {
if startTS, err = parseTime(start); err != nil {
return nil, err
}
endTS = startTS.Add(timeRange)
} else {
if endTS, err = parseTime(end); err != nil {
return nil, err
}
startTS = endTS.Add(-timeRange)
}
s := startTS.Format(time.RFC3339)
e := endTS.Format(time.RFC3339)
var rawRequests []reqBody
if rawRequests, err = parseNameAndGroupFromYAML(reader); err != nil {
return nil, err
}
for _, rb := range rawRequests {
if rb.parsedData["timeRange"] != nil {
requests = append(requests, rb)
continue
}
timeRange := make(map[string]interface{})
timeRange["begin"] = s
timeRange["end"] = e
rb.parsedData["timeRange"] = timeRange
rb.data, err = json.Marshal(rb.parsedData)
if err != nil {
return nil, err
}
requests = append(requests, rb)
}
return requests, nil
}