mirror of
https://github.com/Litlyx/litlyx
synced 2025-12-12 08:38:38 +01:00
new selfhosted version
This commit is contained in:
25
dashboard/server/api/share/create.post.ts
Normal file
25
dashboard/server/api/share/create.post.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
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
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user