update admin panel

This commit is contained in:
Emily
2025-02-12 16:49:19 +01:00
parent f5882bff9f
commit af6dff57ed
9 changed files with 524 additions and 32 deletions

View File

@@ -16,7 +16,8 @@ type ExtendedProject = {
limit_max: number,
limit_ai_messages: number,
limit_ai_max: number,
limit_total: number
limit_total: number,
last_log_at: string
}
export type TAdminProject = TProject & ExtendedProject;
@@ -37,12 +38,17 @@ export default defineEventHandler(async event => {
if (!userData?.logged) return;
if (!userData.user.roles.includes('ADMIN')) return;
const { page, limit, sortQuery } = getQuery(event);
const { page, limit, sortQuery, filterQuery } = getQuery(event);
const pageNumber = parseInt(page as string);
const limitNumber = parseInt(limit as string);
const count = await ProjectModel.countDocuments(JSON.parse(filterQuery as string));
const projects = await ProjectModel.aggregate([
{
$match: JSON.parse(filterQuery as string)
},
{
$lookup: {
from: "project_limits",
@@ -64,6 +70,7 @@ export default defineEventHandler(async event => {
{ arrayName: 'counts', fieldName: 'visits', projectedName: 'visits' },
{ arrayName: 'counts', fieldName: 'events', projectedName: 'events' },
{ arrayName: 'counts', fieldName: 'session', projectedName: 'session' },
{ arrayName: 'counts', fieldName: 'updated_at', projectedName: 'last_log_at' },
]),
},
{
@@ -92,6 +99,9 @@ export default defineEventHandler(async event => {
{ $limit: limitNumber }
]);
return projects as TAdminProject[];
return {
count,
projects: projects as TAdminProject[]
};
});