mirror of
https://github.com/Litlyx/litlyx
synced 2025-12-10 15:58:38 +01:00
25 lines
799 B
TypeScript
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
|
|
});
|
|
});
|