import jwt from "jsonwebtoken"; import Update from "../../models/update.js"; import { connectDB } from "../../utils/mongoose.js"; export default defineEventHandler(async (event) => { await connectDB(); const token = getCookie(event, "auth-token"); if (!token) { throw createError({ statusCode: 401, statusMessage: "Not authenticated", }); } let memberId; try { const decoded = jwt.verify(token, process.env.JWT_SECRET); memberId = decoded.memberId; } catch (err) { throw createError({ statusCode: 401, statusMessage: "Invalid or expired token", }); } const query = getQuery(event); const limit = parseInt(query.limit) || 20; const skip = parseInt(query.skip) || 0; try { const updates = await Update.find({ author: memberId }) .populate("author", "name avatar") .sort({ createdAt: -1 }) .limit(limit) .skip(skip); const total = await Update.countDocuments({ author: memberId }); return { updates, total, hasMore: skip + limit < total, }; } catch (error) { console.error("Get my updates error:", error); throw createError({ statusCode: 500, statusMessage: "Failed to fetch updates", }); } });