Skip to content

Commit ce63d51

Browse files
committed
90 day new member report
1 parent 22705a1 commit ce63d51

File tree

3 files changed

+20
-0
lines changed

3 files changed

+20
-0
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
SELECT
2+
COUNT(*) AS "user.count"
3+
FROM identity."user" AS "user"
4+
WHERE "user".status ILIKE 'A'
5+
AND "user".create_date >= (DATE_TRUNC('day', CURRENT_TIMESTAMP) - INTERVAL '89 days')
6+
AND "user".create_date < (DATE_TRUNC('day', CURRENT_TIMESTAMP) + INTERVAL '1 day')
7+
LIMIT 500;

src/reports/topcoder/topcoder-reports.controller.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,10 @@ export class TopcoderReportsController {
1818
get90DayMemberSpend() {
1919
return this.reports.get90DayMemberSpend();
2020
}
21+
22+
@Get("/90-day-new-members")
23+
@ApiOperation({ summary: "Total number of new active members created in the last 90 days" })
24+
get90DayNewMembers() {
25+
return this.reports.get90DayNewMembers();
26+
}
2127
}

src/reports/topcoder/topcoder-reports.service.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,11 @@ export class TopcoderReportsService {
2424
const value = rows?.[0]?.["user_payment.gross_amount"];
2525
return { "user_payment.gross_amount": Number(value ?? 0) };
2626
}
27+
28+
async get90DayNewMembers() {
29+
const query = this.sql.load("reports/topcoder/90-day-new-members.sql");
30+
const rows = await this.db.query<{ "user.count": string | number }>(query);
31+
const value = rows?.[0]?.["user.count"];
32+
return { "user.count": Number(value ?? 0) };
33+
}
2734
}

0 commit comments

Comments
 (0)