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) {
|
||||
const { id } = req.query;
|
||||
|
||||
const { id: userId, isAdmin, shareToken } = req.auth ?? {};
|
||||
const { userId, isAdmin, shareToken } = req.auth ?? {};
|
||||
|
||||
if (isAdmin) {
|
||||
return true;
|
||||
|
@ -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));
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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 },
|
||||
|
@ -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 },
|
||||
|
@ -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 },
|
||||
}),
|
||||
]);
|
||||
}
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
|
@ -14,10 +14,8 @@ async function relationalQuery(websites, start_at) {
|
||||
where: {
|
||||
...(websites && websites.length > 0
|
||||
? {
|
||||
website: {
|
||||
id: {
|
||||
in: websites,
|
||||
},
|
||||
websiteId: {
|
||||
in: websites,
|
||||
},
|
||||
}
|
||||
: {}),
|
||||
|
Loading…
Reference in New Issue
Block a user