Fix time range value filter [SCI-6580] (#3896)

This commit is contained in:
artoscinote 2022-02-25 14:29:39 +01:00 committed by GitHub
parent 7b4968a7a3
commit 69964aae7b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -23,16 +23,16 @@ class RepositoryTimeRangeValue < RepositoryDateTimeRangeValueBase
repository_rows.where.not("#{join_alias}.start_time::time = ? AND #{join_alias}.end_time::time = ?", repository_rows.where.not("#{join_alias}.start_time::time = ? AND #{join_alias}.end_time::time = ?",
Time.zone.parse(parameters['start_time']), Time.zone.parse(parameters['end_time'])) Time.zone.parse(parameters['start_time']), Time.zone.parse(parameters['end_time']))
when 'greater_than' when 'greater_than'
repository_rows.where("#{join_alias}.start_time::time > ?", Time.zone.parse(parameters['end_datetime'])) repository_rows.where("#{join_alias}.start_time::time > ?", Time.zone.parse(parameters['end_time']))
when 'greater_than_or_equal_to' when 'greater_than_or_equal_to'
repository_rows.where("#{join_alias}.start_time::time >= ?", Time.zone.parse(parameters['end_datetime'])) repository_rows.where("#{join_alias}.start_time::time >= ?", Time.zone.parse(parameters['end_time']))
when 'less_than' when 'less_than'
repository_rows.where("#{join_alias}.end_time::time < ?", Time.zone.parse(parameters['start_datetime'])) repository_rows.where("#{join_alias}.end_time::time < ?", Time.zone.parse(parameters['start_time']))
when 'less_than_or_equal_to' when 'less_than_or_equal_to'
repository_rows.where("#{join_alias}.end_time::time <= ?", Time.zone.parse(parameters['start_datetime'])) repository_rows.where("#{join_alias}.end_time::time <= ?", Time.zone.parse(parameters['start_time']))
when 'between' when 'between'
repository_rows.where("#{join_alias}.start_time::time > ? AND #{join_alias}.end_time::time < ?", repository_rows.where("#{join_alias}.start_time::time > ? AND #{join_alias}.end_time::time < ?",
Time.zone.parse(parameters['start_datetime']), Time.zone.parse(parameters['end_datetime'])) Time.zone.parse(parameters['start_time']), Time.zone.parse(parameters['end_time']))
else else
raise ArgumentError, 'Wrong operator for RepositoryTimeRangeValue!' raise ArgumentError, 'Wrong operator for RepositoryTimeRangeValue!'
end end