mirror of
https://github.com/Litlyx/litlyx
synced 2025-12-10 07:48:37 +01:00
adjust dashboard
This commit is contained in:
36
dashboard/server/api/settings/delete_all.delete.ts
Normal file
36
dashboard/server/api/settings/delete_all.delete.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
|
||||
import { EventModel } from "@schema/metrics/EventSchema";
|
||||
import { SessionModel } from "@schema/metrics/SessionSchema";
|
||||
import { VisitModel } from "@schema/metrics/VisitSchema";
|
||||
import { Types } from "mongoose";
|
||||
import { getRequestData } from "~/server/utils/getRequestData";
|
||||
|
||||
export default defineEventHandler(async event => {
|
||||
|
||||
const data = await getRequestData(event, { requireSchema: false });
|
||||
if (!data) return;
|
||||
|
||||
const { project_id } = data;
|
||||
|
||||
taskDeleteAll(project_id);
|
||||
|
||||
return { ok: true }
|
||||
|
||||
});
|
||||
|
||||
|
||||
async function taskDeleteAll(project_id: Types.ObjectId) {
|
||||
|
||||
console.log('Deletation all started');
|
||||
|
||||
const start = Date.now();
|
||||
|
||||
await VisitModel.deleteMany({ project_id });
|
||||
await SessionModel.deleteMany({ project_id });
|
||||
await EventModel.deleteMany({ project_id });
|
||||
|
||||
const s = (Date.now() - start) / 1000;
|
||||
|
||||
console.log(`Deletation all done in ${s.toFixed(2)} seconds`);
|
||||
|
||||
}
|
||||
@@ -85,10 +85,10 @@ async function taskDeleteDomain(project_id: Types.ObjectId, domain: string, dele
|
||||
}
|
||||
|
||||
if (deleteEvents === true) {
|
||||
const sessions = data.flatMap(e => e.sessions).map(e => e._id.toString());
|
||||
const events = data.flatMap(e => e.events).map(e => e._id.toString());
|
||||
const batchSize = 1000;
|
||||
for (let i = 0; i < sessions.length; i += batchSize) {
|
||||
const batch = sessions.slice(i, i + batchSize);
|
||||
for (let i = 0; i < events.length; i += batchSize) {
|
||||
const batch = events.slice(i, i + batchSize);
|
||||
await EventModel.deleteMany({ _id: { $in: batch } });
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user