mirror of
https://github.com/kremalicious/umami.git
synced 2024-11-15 17:55:08 +01:00
api and lib fixes (#1643)
This commit is contained in:
parent
168283bf11
commit
13fd3ccd16
@ -52,7 +52,7 @@ export function isValidToken(token, validation) {
|
|||||||
export async function allowQuery(req, type) {
|
export async function allowQuery(req, type) {
|
||||||
const { id } = req.query;
|
const { id } = req.query;
|
||||||
|
|
||||||
const { id: userId, isAdmin, shareToken } = req.auth ?? {};
|
const { userId, isAdmin, shareToken } = req.auth ?? {};
|
||||||
|
|
||||||
if (isAdmin) {
|
if (isAdmin) {
|
||||||
return true;
|
return true;
|
||||||
|
@ -10,7 +10,7 @@ export default async (req, res) => {
|
|||||||
if (req.method === 'GET') {
|
if (req.method === 'GET') {
|
||||||
const { userId } = req.auth;
|
const { userId } = req.auth;
|
||||||
|
|
||||||
const websites = await getUserWebsites({ userId });
|
const websites = await getUserWebsites(userId);
|
||||||
const ids = websites.map(({ id }) => id);
|
const ids = websites.map(({ id }) => id);
|
||||||
const token = createToken({ websites: ids }, secret());
|
const token = createToken({ websites: ids }, secret());
|
||||||
const data = await getRealtimeData(ids, subMinutes(new Date(), 30));
|
const data = await getRealtimeData(ids, subMinutes(new Date(), 30));
|
||||||
|
@ -7,12 +7,13 @@ export default async (req, res) => {
|
|||||||
await useCors(req, res);
|
await useCors(req, res);
|
||||||
await useAuth(req, res);
|
await useAuth(req, res);
|
||||||
|
|
||||||
const { id, isAdmin } = req.auth;
|
const { userId, isAdmin } = req.auth;
|
||||||
|
|
||||||
if (req.method === 'GET') {
|
if (req.method === 'GET') {
|
||||||
const { include_all } = req.query;
|
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);
|
return ok(res, websites);
|
||||||
}
|
}
|
||||||
@ -21,7 +22,7 @@ export default async (req, res) => {
|
|||||||
const { name, domain, enableShareUrl } = req.body;
|
const { name, domain, enableShareUrl } = req.body;
|
||||||
|
|
||||||
const shareId = enableShareUrl ? getRandomChars(8) : null;
|
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);
|
return ok(res, website);
|
||||||
}
|
}
|
||||||
|
@ -8,19 +8,25 @@ export async function deleteUser(userId) {
|
|||||||
where: { userId },
|
where: { userId },
|
||||||
});
|
});
|
||||||
|
|
||||||
|
let websiteIds = [];
|
||||||
|
|
||||||
|
if (websites.length > 0) {
|
||||||
|
websiteIds = websites.map(a => a.id);
|
||||||
|
}
|
||||||
|
|
||||||
return client
|
return client
|
||||||
.$transaction([
|
.$transaction([
|
||||||
client.pageview.deleteMany({
|
client.pageview.deleteMany({
|
||||||
where: { session: { website: { userId } } },
|
where: { websiteId: { in: websiteIds } },
|
||||||
}),
|
}),
|
||||||
client.eventData.deleteMany({
|
client.eventData.deleteMany({
|
||||||
where: { event: { session: { website: { userId } } } },
|
where: { event: { websiteId: { in: websiteIds } } },
|
||||||
}),
|
}),
|
||||||
client.event.deleteMany({
|
client.event.deleteMany({
|
||||||
where: { session: { website: { userId } } },
|
where: { websiteId: { in: websiteIds } },
|
||||||
}),
|
}),
|
||||||
client.session.deleteMany({
|
client.session.deleteMany({
|
||||||
where: { website: { userId } },
|
where: { websiteId: { in: websiteIds } },
|
||||||
}),
|
}),
|
||||||
client.website.deleteMany({
|
client.website.deleteMany({
|
||||||
where: { userId },
|
where: { userId },
|
||||||
|
@ -6,16 +6,16 @@ export async function deleteWebsite(id) {
|
|||||||
|
|
||||||
return transaction([
|
return transaction([
|
||||||
client.pageview.deleteMany({
|
client.pageview.deleteMany({
|
||||||
where: { session: { website: { id } } },
|
where: { websiteId: id },
|
||||||
}),
|
}),
|
||||||
client.eventData.deleteMany({
|
client.eventData.deleteMany({
|
||||||
where: { event: { session: { website: { id } } } },
|
where: { event: { websiteId: id } },
|
||||||
}),
|
}),
|
||||||
client.event.deleteMany({
|
client.event.deleteMany({
|
||||||
where: { session: { website: { id } } },
|
where: { websiteId: id },
|
||||||
}),
|
}),
|
||||||
client.session.deleteMany({
|
client.session.deleteMany({
|
||||||
where: { website: { id } },
|
where: { websiteId: id },
|
||||||
}),
|
}),
|
||||||
client.website.delete({
|
client.website.delete({
|
||||||
where: { id },
|
where: { id },
|
||||||
|
@ -5,16 +5,16 @@ export async function resetWebsite(id) {
|
|||||||
|
|
||||||
return transaction([
|
return transaction([
|
||||||
client.pageview.deleteMany({
|
client.pageview.deleteMany({
|
||||||
where: { session: { website: { id } } },
|
where: { websiteId: id },
|
||||||
}),
|
}),
|
||||||
client.eventData.deleteMany({
|
client.eventData.deleteMany({
|
||||||
where: { event: { session: { website: { id } } } },
|
where: { event: { websiteId: id } },
|
||||||
}),
|
}),
|
||||||
client.event.deleteMany({
|
client.event.deleteMany({
|
||||||
where: { session: { website: { id } } },
|
where: { websiteId: id },
|
||||||
}),
|
}),
|
||||||
client.session.deleteMany({
|
client.session.deleteMany({
|
||||||
where: { website: { id } },
|
where: { websiteId: id },
|
||||||
}),
|
}),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
@ -12,11 +12,9 @@ export function getEvents(...args) {
|
|||||||
function relationalQuery(websites, start_at) {
|
function relationalQuery(websites, start_at) {
|
||||||
return prisma.client.event.findMany({
|
return prisma.client.event.findMany({
|
||||||
where: {
|
where: {
|
||||||
website: {
|
websiteId: {
|
||||||
id: {
|
|
||||||
in: websites,
|
in: websites,
|
||||||
},
|
},
|
||||||
},
|
|
||||||
createdAt: {
|
createdAt: {
|
||||||
gte: start_at,
|
gte: start_at,
|
||||||
},
|
},
|
||||||
|
@ -12,11 +12,9 @@ export async function getPageviews(...args) {
|
|||||||
async function relationalQuery(websites, start_at) {
|
async function relationalQuery(websites, start_at) {
|
||||||
return prisma.client.pageview.findMany({
|
return prisma.client.pageview.findMany({
|
||||||
where: {
|
where: {
|
||||||
website: {
|
websiteId: {
|
||||||
id: {
|
|
||||||
in: websites,
|
in: websites,
|
||||||
},
|
},
|
||||||
},
|
|
||||||
createdAt: {
|
createdAt: {
|
||||||
gte: start_at,
|
gte: start_at,
|
||||||
},
|
},
|
||||||
|
@ -14,11 +14,9 @@ async function relationalQuery(websites, start_at) {
|
|||||||
where: {
|
where: {
|
||||||
...(websites && websites.length > 0
|
...(websites && websites.length > 0
|
||||||
? {
|
? {
|
||||||
website: {
|
websiteId: {
|
||||||
id: {
|
|
||||||
in: websites,
|
in: websites,
|
||||||
},
|
},
|
||||||
},
|
|
||||||
}
|
}
|
||||||
: {}),
|
: {}),
|
||||||
createdAt: {
|
createdAt: {
|
||||||
|
Loading…
Reference in New Issue
Block a user