Spaces:
Build error
Build error
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' } } | |
); | |
} | |