( websiteId: string, filters: WebsiteQueryFilters )
| 667 | } |
| 668 | |
| 669 | export async function getWorkspaceWebsitePageview( |
| 670 | websiteId: string, |
| 671 | filters: WebsiteQueryFilters |
| 672 | ) { |
| 673 | const { timezone = 'utc', unit = 'day' } = filters; |
| 674 | const { filterQuery, joinSession, params } = await parseWebsiteFilters( |
| 675 | websiteId, |
| 676 | { |
| 677 | ...filters, |
| 678 | } |
| 679 | ); |
| 680 | |
| 681 | return prisma.$queryRaw<{ x: string; y: number }[]>` |
| 682 | select |
| 683 | ${getDateQuery('"WebsiteEvent"."createdAt"', unit, timezone)} x, |
| 684 | count(1) y |
| 685 | from "WebsiteEvent" |
| 686 | ${joinSession} |
| 687 | where "WebsiteEvent"."websiteId" = ${params.websiteId} |
| 688 | and "WebsiteEvent"."createdAt" between ${ |
| 689 | params.startDate |
| 690 | }::timestamptz and ${params.endDate}::timestamptz |
| 691 | and "WebsiteEvent"."eventType" = ${EVENT_TYPE.pageView} |
| 692 | ${filterQuery} |
| 693 | group by 1 |
| 694 | `; |
| 695 | } |
| 696 | |
| 697 | export async function getWorkspaceWebsiteSession( |
| 698 | websiteId: string, |
no test coverage detected