( websiteId: string, filters: WebsiteQueryFilters )
| 695 | } |
| 696 | |
| 697 | export async function getWorkspaceWebsiteSession( |
| 698 | websiteId: string, |
| 699 | filters: WebsiteQueryFilters |
| 700 | ) { |
| 701 | const { timezone = 'utc', unit = 'day' } = filters; |
| 702 | const { filterQuery, joinSession, params } = await parseWebsiteFilters( |
| 703 | websiteId, |
| 704 | { |
| 705 | ...filters, |
| 706 | } |
| 707 | ); |
| 708 | |
| 709 | return prisma.$queryRaw` |
| 710 | select |
| 711 | ${getDateQuery('"WebsiteEvent"."createdAt"', unit, timezone)} x, |
| 712 | count(distinct "WebsiteEvent"."sessionId") y |
| 713 | from "WebsiteEvent" |
| 714 | ${joinSession} |
| 715 | where "WebsiteEvent"."websiteId" = ${params.websiteId} |
| 716 | and "WebsiteEvent"."createdAt" between ${ |
| 717 | params.startDate |
| 718 | }::timestamptz and ${params.endDate}::timestamptz |
| 719 | and "WebsiteEvent"."eventType" = ${EVENT_TYPE.pageView} |
| 720 | ${filterQuery} |
| 721 | group by 1 |
| 722 | `; |
| 723 | } |
| 724 | |
| 725 | export async function getWorkspaceWebsiteStats( |
| 726 | websiteId: string, |
no test coverage detected