Skip to content

Commit

Permalink
Ticket CV2-5389: Implementing 4 more data points
Browse files Browse the repository at this point in the history
  • Loading branch information
caiosba committed Oct 22, 2024
1 parent f98d43b commit 7702acb
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 19 deletions.
25 changes: 15 additions & 10 deletions lib/check_data_points.rb
Original file line number Diff line number Diff line change
Expand Up @@ -78,26 +78,31 @@ def articles_sent(team_id, start_date, end_date)
end

# Average response time
def average_response_time(team_id, start_date, end_date)
TiplineRequest
.where(team_id: team_id, smooch_report_received_at: start_date.to_datetime.to_i..end_date.to_datetime.to_i)
.average("smooch_report_received_at - CAST(DATE_PART('EPOCH', created_at::timestamp) AS INTEGER)").to_f
def average_response_time(team_id, start_date, end_date, platform = nil, language = nil)
query = TiplineRequest.where(team_id: team_id, smooch_report_received_at: start_date.to_datetime.to_i..end_date.to_datetime.to_i)
query = query.where(platform: platform) unless platform.blank?
query = query.where(language: language) unless language.blank?
query.average("smooch_report_received_at - CAST(DATE_PART('EPOCH', created_at::timestamp) AS INTEGER)").to_f
end

# All users
def all_users(team_id, start_date, end_date)
def all_users(team_id, start_date, end_date, platform = nil, language = nil)
start_date, end_date = parse_start_end_dates(start_date, end_date)
TiplineRequest.where(team_id: team_id, created_at: start_date..end_date)
.count('DISTINCT(tipline_user_uid)')
query = TiplineRequest.where(team_id: team_id, created_at: start_date..end_date)
query = query.where(platform: platform) unless platform.blank?
query = query.where(language: language) unless language.blank?
query.count('DISTINCT(tipline_user_uid)')
end

# Returning users
def returning_users(team_id, start_date, end_date)
def returning_users(team_id, start_date, end_date, platform = nil, language = nil)
# Number of returning users (at least one session in the current month, and at least one session in the last previous 2 months)
start_date, end_date = parse_start_end_dates(start_date, end_date)
uids = TiplineRequest.where(team_id: team_id, created_at: start_date.ago(2.months)..start_date).map(&:tipline_user_uid).uniq
TiplineRequest.where(team_id: team_id, tipline_user_uid: uids, created_at: start_date..end_date)
.count('DISTINCT(tipline_user_uid)')
query = TiplineRequest.where(team_id: team_id, tipline_user_uid: uids, created_at: start_date..end_date)
query = query.where(platform: platform) unless platform.blank?
query = query.where(language: language) unless language.blank?
query.count('DISTINCT(tipline_user_uid)')
end

# New users
Expand Down
12 changes: 4 additions & 8 deletions lib/team_statistics.rb
Original file line number Diff line number Diff line change
Expand Up @@ -133,24 +133,20 @@ def number_of_search_results_by_type
data
end

# TODO
def average_response_time
24.hours
CheckDataPoints.average_response_time(@team.id, @start_date, @end_date, @platform, @language)
end

# TODO
def number_of_unique_users
rand(1000)
number_of_total_users - number_of_returning_users
end

# TODO
def number_of_total_users
rand(1000)
CheckDataPoints.all_users(@team.id, @start_date_str, @end_date_str, @platform, @language)
end

# TODO
def number_of_returning_users
rand(1000)
CheckDataPoints.returning_users(@team.id, @start_date_str, @end_date_str, @platform, @language)
end

# TODO
Expand Down
2 changes: 1 addition & 1 deletion test/controllers/graphql_controller_11_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@ def teardown
query = <<~GRAPHQL
query {
team(slug: "#{team.slug}") {
statistics(period: "past_week") {
statistics(period: "past_week", platform: "whatsapp", language: "en") {
number_of_articles_created_by_date
number_of_articles_updated_by_date
number_of_explainers_created
Expand Down

0 comments on commit 7702acb

Please sign in to comment.