Feat/um 49 query builder api (#1573)

* add uuid to event. add indexes

* eventdata api

* add event data

* remove test data

* update list
This commit is contained in:
Brian Cao 2022-10-21 21:33:23 -07:00 committed by GitHub
parent 9c36dc485e
commit ba31f48f1a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
32 changed files with 690 additions and 64 deletions

View file

@ -58,13 +58,11 @@ export default async (req, res) => {
await useSession(req, res);
const {
session: { website, session },
} = req;
const { website, session } = req.session;
const { type, payload } = getJsonBody(req);
let { url, referrer, eventName, eventData } = payload;
let { url, referrer, event_name: eventName, event_data: eventData } = payload;
if (process.env.REMOVE_TRAILING_SLASH) {
url = url.replace(/\/$/, '');
@ -88,9 +86,8 @@ export default async (req, res) => {
const token = createToken(
{
websiteId: website.websiteUuid,
sessionId: session.sessionId,
sessionUuid: session.sessionUuid,
website,
session,
},
secret(),
);

View file

@ -0,0 +1,40 @@
import moment from 'moment-timezone';
import { getEventData } from 'queries';
import { ok, badRequest, methodNotAllowed, unauthorized } from 'next-basics';
import { allowQuery } from 'lib/auth';
import { useAuth, useCors } from 'lib/middleware';
export default async (req, res) => {
await useCors(req, res);
await useAuth(req, res);
if (req.method === 'POST') {
if (!(await allowQuery(req))) {
return unauthorized(res);
}
const { id: websiteId } = req.query;
const { start_at, end_at, timezone, event_name: eventName, columns, filters } = req.body;
if (!moment.tz.zone(timezone)) {
return badRequest(res);
}
const startDate = new Date(+start_at);
const endDate = new Date(+end_at);
const events = await getEventData(websiteId, {
startDate,
endDate,
timezone,
eventName,
columns,
filters,
});
return ok(res, events);
}
return methodNotAllowed(res);
};

View file

@ -18,3 +18,9 @@ export default function ConsolePage({ enabled }) {
</Layout>
);
}
export async function getServerSideProps() {
return {
props: { enabled: !!process.env.ENABLE_TEST_CONSOLE },
};
}

View file

@ -16,6 +16,6 @@ export default function LoginPage({ loginDisabled }) {
export async function getServerSideProps() {
return {
props: { loginDisabled: !!process.env.DISABLE_LOGIN || process.env.isCloudMode },
props: { loginDisabled: !!process.env.DISABLE_LOGIN || !!process.env.isCloudMode },
};
}