Files
litlyx/dashboard/server/api/members/pending.ts
2025-11-28 16:49:20 +01:00

53 lines
1.2 KiB
TypeScript

import { TeamMemberModel } from "@schema/TeamMemberSchema";
import { Types } from "mongoose";
export type TPendingInvite = {
_id: string,
project_id: string,
user_id: string,
role: string,
pending: boolean,
creted_at: string,
project_name: string
};
export default defineEventHandler(async event => {
const ctx = await getRequestContext(event, 'pid');
const { user_id, user_email } = ctx;
const members = await TeamMemberModel.aggregate([
{
$match:
{
$or: [
{ user_id: new Types.ObjectId(user_id) },
{ email: user_email }
],
pending: true
}
},
{
$lookup: {
from: 'projects',
as: 'project',
foreignField: '_id',
localField: 'project_id',
}
},
{
$addFields: {
project_name: { $arrayElemAt: ["$project.name", 0] }
}
},
{
$project: {
project: 0
}
}
]);
return members;
});