Skip to content

Commit

Permalink
FIX: CSV Exports were throwing errors with invalid dates
Browse files Browse the repository at this point in the history
This fix will consider any invalid dates to be non-existant.
  • Loading branch information
eviltrout committed Apr 7, 2020
1 parent e8fad7a commit ce663d6
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 2 deletions.
10 changes: 8 additions & 2 deletions app/jobs/regular/export_csv_file.rb
Expand Up @@ -182,8 +182,14 @@ def screened_url_export
def report_export
return enum_for(:report_export) unless block_given?

@extra[:start_date] = @extra[:start_date].to_date.beginning_of_day if @extra[:start_date].is_a?(String)
@extra[:end_date] = @extra[:end_date].to_date.end_of_day if @extra[:end_date].is_a?(String)
# If dates are invalid consider then `nil`
if @extra[:start_date].is_a?(String)
@extra[:start_date] = @extra[:start_date].to_date.beginning_of_day rescue nil
end
if @extra[:end_date].is_a?(String)
@extra[:end_date] = @extra[:end_date].to_date.end_of_day rescue nil
end

@extra[:filters] = {}
if @extra[:category_id].present?
@extra[:filters][:category] = @extra[:category_id].to_i
Expand Down
8 changes: 8 additions & 0 deletions spec/jobs/export_csv_file_spec.rb
Expand Up @@ -85,6 +85,14 @@
exporter
end

it "does not throw an error when the dates are invalid" do
Jobs::ExportCsvFile.new.execute(
entity: 'report',
user_id: user.id,
args: { start_date: 'asdfasdf', end_date: 'not-a-date', name: 'dau_by_mau' }
)
end

it 'works with single-column reports' do
user.user_visits.create!(visited_at: '2010-01-01', posts_read: 42)
Fabricate(:user).user_visits.create!(visited_at: '2010-01-03', posts_read: 420)
Expand Down

0 comments on commit ce663d6

Please sign in to comment.