From 43f5854f157c3e356cb6f9ad8b5722fdd536545a Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Tue, 30 May 2023 16:49:22 -0700 Subject: [PATCH] Update report parameters. --- components/pages/reports/Report.js | 2 ++ components/pages/reports/ReportHeader.js | 11 ++++++----- hooks/useReport.js | 10 +++------- pages/api/reports/[id].ts | 4 ++++ pages/api/reports/funnel.ts | 20 ++++++++++++-------- 5 files changed, 27 insertions(+), 20 deletions(-) diff --git a/components/pages/reports/Report.js b/components/pages/reports/Report.js index 0a98ef75..0239e64f 100644 --- a/components/pages/reports/Report.js +++ b/components/pages/reports/Report.js @@ -8,6 +8,8 @@ export const ReportContext = createContext(null); export function Report({ reportId, defaultParameters, children, ...props }) { const report = useReport(reportId, defaultParameters); + //console.log(report); + return ( diff --git a/components/pages/reports/ReportHeader.js b/components/pages/reports/ReportHeader.js index bf2c7fa8..42d78e75 100644 --- a/components/pages/reports/ReportHeader.js +++ b/components/pages/reports/ReportHeader.js @@ -20,15 +20,16 @@ export function ReportHeader({ icon }) { post(`/reports/${data.id}`, data), ); - const { websiteId, name, dateRange } = report || {}; + const { name, parameters } = report || {}; + const { websiteId, dateRange } = parameters || {}; const { value, startDate, endDate } = dateRange || {}; - const handleSelect = websiteId => { - updateReport({ websiteId }); + const handleWebsiteSelect = websiteId => { + updateReport({ parameters: { websiteId } }); }; const handleDateChange = value => { - updateReport({ dateRange: { ...parseDateRange(value) } }); + updateReport({ parameters: { dateRange: { ...parseDateRange(value) } } }); }; const handleSave = async () => { @@ -71,7 +72,7 @@ export function ReportHeader({ icon }) { onChange={handleDateChange} showAllTime /> - + { - const { websiteId, type, dateRange } = report; setIsRunning(true); - const data = await post(`/reports/${type}`, { - websiteId: websiteId, - ...parameters, - startAt: +dateRange?.startDate, - endAt: +dateRange?.endDate, - }); + const { type } = report; + + const data = await post(`/reports/${type}`, parameters); setReport( produce(state => { diff --git a/pages/api/reports/[id].ts b/pages/api/reports/[id].ts index d1c6c89a..bcd22b4e 100644 --- a/pages/api/reports/[id].ts +++ b/pages/api/reports/[id].ts @@ -40,6 +40,9 @@ export default async ( if (req.method === 'POST') { const { id: reportId } = req.query; + const { + user: { id: userId }, + } = req.auth; const { websiteId, type, name, description, parameters } = req.body; @@ -52,6 +55,7 @@ export default async ( const result = await updateReport( { websiteId, + userId, type, name, description, diff --git a/pages/api/reports/funnel.ts b/pages/api/reports/funnel.ts index 4308c09d..1e121326 100644 --- a/pages/api/reports/funnel.ts +++ b/pages/api/reports/funnel.ts @@ -9,8 +9,10 @@ export interface FunnelRequestBody { websiteId: string; urls: string[]; window: number; - startAt: number; - endAt: number; + dateRange: { + startDate: string; + endDate: string; + }; } export interface FunnelResponse { @@ -28,18 +30,20 @@ export default async ( await useAuth(req, res); if (req.method === 'POST') { - const { websiteId, urls, window, startAt, endAt } = req.body; + const { + websiteId, + urls, + window, + dateRange: { startDate, endDate }, + } = req.body; if (!(await canViewWebsite(req.auth, websiteId))) { return unauthorized(res); } - const startDate = new Date(+startAt); - const endDate = new Date(+endAt); - const data = await getPageviewFunnel(websiteId, { - startDate, - endDate, + startDate: new Date(startDate), + endDate: new Date(endDate), urls, windowMinutes: +window, });