@@ -200,20 +200,7 @@ pub async fn into_query(
200200 return Err ( QueryError :: EmptyEndTime ) ;
201201 }
202202
203- let start: DateTime < Utc > ;
204- let end: DateTime < Utc > ;
205-
206- if query. end_time == "now" {
207- end = Utc :: now ( ) ;
208- start = end - chrono:: Duration :: from_std ( humantime:: parse_duration ( & query. start_time ) ?) ?;
209- } else {
210- start = DateTime :: parse_from_rfc3339 ( & query. start_time )
211- . map_err ( |_| QueryError :: StartTimeParse ) ?
212- . into ( ) ;
213- end = DateTime :: parse_from_rfc3339 ( & query. end_time )
214- . map_err ( |_| QueryError :: EndTimeParse ) ?
215- . into ( ) ;
216- } ;
203+ let ( start, end) = parse_human_time ( & query. start_time , & query. end_time ) ?;
217204
218205 if start. timestamp ( ) > end. timestamp ( ) {
219206 return Err ( QueryError :: StartTimeAfterEndTime ) ;
@@ -227,6 +214,28 @@ pub async fn into_query(
227214 } )
228215}
229216
217+ fn parse_human_time (
218+ start_time : & str ,
219+ end_time : & str ,
220+ ) -> Result < ( DateTime < Utc > , DateTime < Utc > ) , QueryError > {
221+ let start: DateTime < Utc > ;
222+ let end: DateTime < Utc > ;
223+
224+ if end_time == "now" {
225+ end = Utc :: now ( ) ;
226+ start = end - chrono:: Duration :: from_std ( humantime:: parse_duration ( start_time) ?) ?;
227+ } else {
228+ start = DateTime :: parse_from_rfc3339 ( start_time)
229+ . map_err ( |_| QueryError :: StartTimeParse ) ?
230+ . into ( ) ;
231+ end = DateTime :: parse_from_rfc3339 ( end_time)
232+ . map_err ( |_| QueryError :: EndTimeParse ) ?
233+ . into ( ) ;
234+ } ;
235+
236+ Ok ( ( start, end) )
237+ }
238+
230239/// unused for now, might need it in the future
231240#[ allow( unused) ]
232241fn transform_query_for_ingestor ( query : & Query ) -> Option < Query > {
0 commit comments