update ui

This commit is contained in:
Emily
2025-02-14 16:13:06 +01:00
parent af6dff57ed
commit b2303468a4
27 changed files with 641 additions and 224 deletions

View File

@@ -0,0 +1,18 @@
export default defineEventHandler(async event => {
const userData = getRequestUser(event);
if (!userData?.logged) return;
if (!userData.user.roles.includes('ADMIN')) return;
const queueRes = await fetch("http://94.130.182.52:3031/metrics/queue");
const queue = await queueRes.json();
const durationsRes = await fetch("http://94.130.182.52:3031/metrics/durations");
const durations = await durationsRes.json();
return { queue, durations: durations }
});

View File

@@ -0,0 +1,31 @@
import { FeedbackModel } from '@schema/FeedbackSchema';
export default defineEventHandler(async event => {
const userData = getRequestUser(event);
if (!userData?.logged) return;
if (!userData.user.roles.includes('ADMIN')) return;
const feedbacks = await FeedbackModel.aggregate([
{
$lookup: {
from: 'users',
localField: 'user_id',
foreignField: '_id',
as: 'user'
}
},
{
$lookup: {
from: 'projects',
localField: 'project_id',
foreignField: '_id',
as: 'project'
}
},
])
return feedbacks;
});

View File

@@ -0,0 +1,30 @@
import { OnboardingModel } from '~/shared/schema/OnboardingSchema';
export default defineEventHandler(async event => {
const userData = getRequestUser(event);
if (!userData?.logged) return;
if (!userData.user.roles.includes('ADMIN')) return;
const analytics = await OnboardingModel.aggregate([
{
$group: {
_id: '$analytics',
count: { $sum: 1 }
}
},
]);
const jobs = await OnboardingModel.aggregate([
{
$group: {
_id: '$job',
count: { $sum: 1 }
}
},
])
return { analytics, jobs };
});

View File

@@ -38,17 +38,25 @@ export default defineEventHandler(async event => {
if (!userData?.logged) return;
if (!userData.user.roles.includes('ADMIN')) return;
const { page, limit, sortQuery, filterQuery } = getQuery(event);
const { page, limit, sortQuery, filterQuery, filterFrom, filterTo } = 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 matchQuery = {
...JSON.parse(filterQuery as string),
created_at: {
$gte: new Date(filterFrom as string),
$lte: new Date(filterTo as string)
}
}
const count = await ProjectModel.countDocuments(matchQuery);
const projects = await ProjectModel.aggregate([
{
$match: JSON.parse(filterQuery as string)
},
{
$match: matchQuery
},
{
$lookup: {
from: "project_limits",