import { collections } from '$lib/server/database.js'; import { error } from '@sveltejs/kit'; import { ObjectId } from 'mongodb'; import { nanoid } from 'nanoid'; export async function POST({ params, url, locals }) { const conversation = await collections.conversations.findOne({ _id: new ObjectId(params.id), sessionId: locals.sessionId }); if (!conversation) { throw error(404, 'Conversation not found'); } const shares = conversation.shares || []; const existingShare = shares.find((share) => share.msgCount === conversation.messages.length); if (existingShare) { return new Response( JSON.stringify({ url: url.origin + `/r/${existingShare.id}` }), { headers: { 'Content-Type': 'application/json' } } ); } const share = { id: nanoid(7), msgCount: conversation.messages.length }; await collections.conversations.updateOne( { _id: conversation._id }, { $set: { shares: [...shares, share], updatedAt: new Date() } } ); return new Response( JSON.stringify({ url: url.origin.replace('huggingface.co', 'hf.co') + `/r/${share.id}` }), { headers: { 'Content-Type': 'application/json' } } ); }