From 6ab79b3c0592f71a718b1e2f314b5bd1f11c2866 Mon Sep 17 00:00:00 2001 From: Aaron Date: Thu, 15 Aug 2024 08:50:40 -0500 Subject: [PATCH] [LG-12819] Optimized proofing query (#11083) * updated proofing query \n changelog Internal, Proofing Metrics, optimized proofing query * Update spec/lib/reporting/fraud_metrics_lg99_report_spec.rb Co-authored-by: Zach Margolis * changelog Internal, Proofing Metrics, optimized proofing query * changelog: Internal, Proofing Metrics, optimized proofing query --------- Co-authored-by: Zach Margolis --- lib/reporting/fraud_metrics_lg99_report.rb | 9 ++++----- spec/lib/reporting/fraud_metrics_lg99_report_spec.rb | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/lib/reporting/fraud_metrics_lg99_report.rb b/lib/reporting/fraud_metrics_lg99_report.rb index 96ec7399b8c..7e136e36dec 100644 --- a/lib/reporting/fraud_metrics_lg99_report.rb +++ b/lib/reporting/fraud_metrics_lg99_report.rb @@ -145,17 +145,16 @@ def user_days_to_suspension_avg end def user_days_proofed_to_suspension_avg - user_data = User.where(uuid: data[Events::SUSPENDED_USERS]).joins(:profiles). - where.not(profiles: { verified_at: nil }). - group('users.id'). + user_data = User.where(uuid: data[Events::SUSPENDED_USERS]).includes(:profiles). + merge(Profile.active). pluck( - 'MAX(profiles.verified_at)', + :activated_at, :suspended_at, ) return 'n/a' if user_data.empty? - difference = user_data.map { |profiled_at, suspended_at| suspended_at - profiled_at } + difference = user_data.map { |activated_at, suspended_at| suspended_at - activated_at } (difference.sum / difference.size).seconds.in_days.round(2) end diff --git a/spec/lib/reporting/fraud_metrics_lg99_report_spec.rb b/spec/lib/reporting/fraud_metrics_lg99_report_spec.rb index 530d4813e84..ae8b241c3fe 100644 --- a/spec/lib/reporting/fraud_metrics_lg99_report_spec.rb +++ b/spec/lib/reporting/fraud_metrics_lg99_report_spec.rb @@ -52,7 +52,7 @@ { 'user_id' => 'user7', 'name' => 'User Suspension: Suspended' }, ], ) - user7&.profiles&.verified&.last&.update(created_at: 1.day.ago, verified_at: 1.day.ago) + user7.profiles.verified.last.update(created_at: 1.day.ago, activated_at: 1.day.ago) if user7 end describe '#lg99_metrics_table' do