Skip to content

Commit

Permalink
feat(chalice): table of referrers CH
Browse files Browse the repository at this point in the history
  • Loading branch information
tahayk committed Aug 12, 2024
1 parent 7d4b121 commit 02dbc8a
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 11 deletions.
3 changes: 2 additions & 1 deletion api/chalicelib/core/custom_metrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -538,7 +538,8 @@ def delete_card(project_id, metric_id, user_id):
SET deleted_at = timezone('utc'::text, now()), edited_at = timezone('utc'::text, now())
WHERE project_id = %(project_id)s
AND metric_id = %(metric_id)s
AND (user_id = %(user_id)s OR is_public);""",
AND (user_id = %(user_id)s OR is_public)
RETURNING data;""",
{"metric_id": metric_id, "project_id": project_id, "user_id": user_id})
)

Expand Down
7 changes: 6 additions & 1 deletion ee/api/chalicelib/core/custom_metrics.py
Original file line number Diff line number Diff line change
Expand Up @@ -157,16 +157,21 @@ def __get_table_of_urls(project_id: int, data: schemas.CardTable, user_id: int =
return __get_table_of_series(project_id=project_id, data=data)


def __get_table_of_referrers(project_id: int, data: schemas.CardTable, user_id: int = None):
return __get_table_of_series(project_id=project_id, data=data)


def __get_table_chart(project_id: int, data: schemas.CardTable, user_id: int):
supported = {
schemas.MetricOfTable.SESSIONS: __get_table_of_sessions,
schemas.MetricOfTable.ERRORS: __get_table_of_errors,
schemas.MetricOfTable.USER_ID: __get_table_of_user_ids,
schemas.MetricOfTable.ISSUES: __get_table_of_issues,
schemas.MetricOfTable.user_browser: __get_table_of_browsers,
schemas.MetricOfTable.USER_BROWSER: __get_table_of_browsers,
schemas.MetricOfTable.USER_DEVICE: __get_table_of_devises,
schemas.MetricOfTable.USER_COUNTRY: __get_table_of_countries,
schemas.MetricOfTable.VISITED_URL: __get_table_of_urls,
schemas.MetricOfTable.REFERRER: __get_table_of_referrers,
}
return supported.get(data.metric_of, not_supported)(project_id=project_id, data=data, user_id=user_id)

Expand Down
20 changes: 11 additions & 9 deletions ee/api/chalicelib/core/sessions_exp.py
Original file line number Diff line number Diff line change
Expand Up @@ -400,20 +400,20 @@ def search2_table(data: schemas.SessionsSearchPayloadSchema, project_id: int, de
full_args["limit_e"] = data.page * data.limit

main_col = "user_id"
extra_col = "s.user_id"
extra_col = ", s.user_id"
extra_where = ""
if metric_of == schemas.MetricOfTable.USER_COUNTRY:
main_col = "user_country"
extra_col = "s.user_country"
extra_col = ", s.user_country"
elif metric_of == schemas.MetricOfTable.USER_DEVICE:
main_col = "user_device"
extra_col = "s.user_device"
elif metric_of == schemas.MetricOfTable.user_browser:
extra_col = ", s.user_device"
elif metric_of == schemas.MetricOfTable.USER_BROWSER:
main_col = "user_browser"
extra_col = "s.user_browser"
extra_col = ", s.user_browser"
elif metric_of == schemas.MetricOfTable.ISSUES:
main_col = "issue"
extra_col = f"arrayJoin(s.issue_types) AS {main_col}"
extra_col = f", arrayJoin(s.issue_types) AS {main_col}"
if len(metric_value) > 0:
extra_where = []
for i in range(len(metric_value)):
Expand All @@ -423,15 +423,17 @@ def search2_table(data: schemas.SessionsSearchPayloadSchema, project_id: int, de
extra_where = f"WHERE ({' OR '.join(extra_where)})"
elif metric_of == schemas.MetricOfTable.VISITED_URL:
main_col = "url_path"
extra_col = "s.url_path"
extra_col = ", s.url_path"
elif metric_of == schemas.MetricOfTable.REFERRER:
main_col = "referrer"
extra_col = ", referrer"

if metric_format == schemas.MetricExtendedFormatType.SESSION_COUNT:
main_query = f"""SELECT COUNT(DISTINCT {main_col}) OVER () AS main_count,
{main_col} AS name,
count(DISTINCT session_id) AS session_count,
COALESCE(SUM(count(DISTINCT session_id)) OVER (), 0) AS total_sessions
FROM (SELECT s.session_id AS session_id,
{extra_col}
FROM (SELECT s.session_id AS session_id {extra_col}
{query_part}) AS filtred_sessions
{extra_where}
GROUP BY {main_col}
Expand Down

0 comments on commit 02dbc8a

Please sign in to comment.