api and lib fixes (#1643)

This commit is contained in:
Brian Cao 2022-11-08 11:55:02 -08:00 committed by GitHub
parent 168283bf11
commit 13fd3ccd16
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 30 additions and 29 deletions

View File

@ -52,7 +52,7 @@ export function isValidToken(token, validation) {
export async function allowQuery(req, type) {
const { id } = req.query;
const { id: userId, isAdmin, shareToken } = req.auth ?? {};
const { userId, isAdmin, shareToken } = req.auth ?? {};
if (isAdmin) {
return true;

View File

@ -10,7 +10,7 @@ export default async (req, res) => {
if (req.method === 'GET') {
const { userId } = req.auth;
const websites = await getUserWebsites({ userId });
const websites = await getUserWebsites(userId);
const ids = websites.map(({ id }) => id);
const token = createToken({ websites: ids }, secret());
const data = await getRealtimeData(ids, subMinutes(new Date(), 30));

View File

@ -7,12 +7,13 @@ export default async (req, res) => {
await useCors(req, res);
await useAuth(req, res);
const { id, isAdmin } = req.auth;
const { userId, isAdmin } = req.auth;
if (req.method === 'GET') {
const { include_all } = req.query;
const websites = isAdmin && include_all ? await getAllWebsites() : await getUserWebsites(id);
const websites =
isAdmin && include_all ? await getAllWebsites() : await getUserWebsites(userId);
return ok(res, websites);
}
@ -21,7 +22,7 @@ export default async (req, res) => {
const { name, domain, enableShareUrl } = req.body;
const shareId = enableShareUrl ? getRandomChars(8) : null;
const website = await createWebsite(id, { id: uuid(), name, domain, shareId });
const website = await createWebsite(userId, { id: uuid(), name, domain, shareId });
return ok(res, website);
}

View File

@ -8,19 +8,25 @@ export async function deleteUser(userId) {
where: { userId },
});
let websiteIds = [];
if (websites.length > 0) {
websiteIds = websites.map(a => a.id);
}
return client
.$transaction([
client.pageview.deleteMany({
where: { session: { website: { userId } } },
where: { websiteId: { in: websiteIds } },
}),
client.eventData.deleteMany({
where: { event: { session: { website: { userId } } } },
where: { event: { websiteId: { in: websiteIds } } },
}),
client.event.deleteMany({
where: { session: { website: { userId } } },
where: { websiteId: { in: websiteIds } },
}),
client.session.deleteMany({
where: { website: { userId } },
where: { websiteId: { in: websiteIds } },
}),
client.website.deleteMany({
where: { userId },

View File

@ -6,16 +6,16 @@ export async function deleteWebsite(id) {
return transaction([
client.pageview.deleteMany({
where: { session: { website: { id } } },
where: { websiteId: id },
}),
client.eventData.deleteMany({
where: { event: { session: { website: { id } } } },
where: { event: { websiteId: id } },
}),
client.event.deleteMany({
where: { session: { website: { id } } },
where: { websiteId: id },
}),
client.session.deleteMany({
where: { website: { id } },
where: { websiteId: id },
}),
client.website.delete({
where: { id },

View File

@ -5,16 +5,16 @@ export async function resetWebsite(id) {
return transaction([
client.pageview.deleteMany({
where: { session: { website: { id } } },
where: { websiteId: id },
}),
client.eventData.deleteMany({
where: { event: { session: { website: { id } } } },
where: { event: { websiteId: id } },
}),
client.event.deleteMany({
where: { session: { website: { id } } },
where: { websiteId: id },
}),
client.session.deleteMany({
where: { website: { id } },
where: { websiteId: id },
}),
]);
}

View File

@ -12,10 +12,8 @@ export function getEvents(...args) {
function relationalQuery(websites, start_at) {
return prisma.client.event.findMany({
where: {
website: {
id: {
in: websites,
},
websiteId: {
in: websites,
},
createdAt: {
gte: start_at,

View File

@ -12,10 +12,8 @@ export async function getPageviews(...args) {
async function relationalQuery(websites, start_at) {
return prisma.client.pageview.findMany({
where: {
website: {
id: {
in: websites,
},
websiteId: {
in: websites,
},
createdAt: {
gte: start_at,

View File

@ -14,10 +14,8 @@ async function relationalQuery(websites, start_at) {
where: {
...(websites && websites.length > 0
? {
website: {
id: {
in: websites,
},
websiteId: {
in: websites,
},
}
: {}),