+
By continuing you are accepting
our
diff --git a/dashboard/server/api/admin/counts.ts b/dashboard/server/api/admin/counts.ts
index d28586d..def3b13 100644
--- a/dashboard/server/api/admin/counts.ts
+++ b/dashboard/server/api/admin/counts.ts
@@ -8,9 +8,16 @@ export default defineEventHandler(async event => {
if (!userData?.logged) return;
if (!userData.user.roles.includes('ADMIN')) return;
+ const { from } = getQuery(event);
- const projectsCount = await ProjectModel.countDocuments({});
- const usersCount = await UserModel.countDocuments({});
+ const date = new Date(parseInt(from as any));
+
+ const projectsCount = await ProjectModel.countDocuments({
+ created_at: { $gte: date }
+ });
+ const usersCount = await UserModel.countDocuments({
+ created_at: { $gte: date }
+ });
return { users: usersCount, projects: projectsCount }
diff --git a/dashboard/server/api/settings/delete_all.delete.ts b/dashboard/server/api/settings/delete_all.delete.ts
new file mode 100644
index 0000000..eeda25c
--- /dev/null
+++ b/dashboard/server/api/settings/delete_all.delete.ts
@@ -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`);
+
+}
\ No newline at end of file
diff --git a/dashboard/server/api/settings/delete_domain.delete.ts b/dashboard/server/api/settings/delete_domain.delete.ts
index 7b903e3..3ec39cb 100644
--- a/dashboard/server/api/settings/delete_domain.delete.ts
+++ b/dashboard/server/api/settings/delete_domain.delete.ts
@@ -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 } });
}
}