Files
litlyx/dashboard/server/api/share/create.post.ts
2025-11-28 16:49:20 +01:00

25 lines
799 B
TypeScript

import { ProjectShareModel, TProjectShare } from "~/shared/schema/project/ProjectShareSchema";
import crypto from 'crypto';
async function createNewShareableLink() {
const link = crypto.randomBytes(16).toString('hex');
const exists = await ProjectShareModel.findOne({ link });
if (exists) return await createNewShareableLink();
return link;
}
export default defineEventHandler(async event => {
const ctx = await getRequestContext(event, 'pid');
const { project_id } = ctx;
const { isPublic, password, description, domain } = await readBody(event);
const link = await createNewShareableLink();
await ProjectShareModel.create({
project_id,
link,
domain,
password: isPublic ? undefined : password,
description
});
});