documenso/packages/lib/server-only/folder/create-folder.ts

39 lines
978 B
TypeScript
Raw Normal View History

2025-05-01 16:46:59 +00:00
import { prisma } from '@documenso/prisma';
import type { TFolderType } from '../../types/folder-type';
import { FolderType } from '../../types/folder-type';
import { determineDocumentVisibility } from '../../utils/document-visibility';
2025-06-10 01:49:52 +00:00
import { getTeamById } from '../team/get-team';
import { getTeamSettings } from '../team/get-team-settings';
2025-05-01 16:46:59 +00:00
export interface CreateFolderOptions {
userId: number;
2025-06-10 01:49:52 +00:00
teamId: number;
2025-05-01 16:46:59 +00:00
name: string;
parentId?: string | null;
type?: TFolderType;
}
export const createFolder = async ({
userId,
teamId,
name,
parentId,
type = FolderType.DOCUMENT,
}: CreateFolderOptions) => {
2025-06-10 01:49:52 +00:00
const team = await getTeamById({ userId, teamId });
2025-05-01 16:46:59 +00:00
2025-06-10 01:49:52 +00:00
const settings = await getTeamSettings({ userId, teamId });
2025-05-01 16:46:59 +00:00
return await prisma.folder.create({
data: {
name,
userId,
teamId,
parentId,
type,
2025-06-10 01:49:52 +00:00
visibility: determineDocumentVisibility(settings.documentVisibility, team.currentTeamRole),
2025-05-01 16:46:59 +00:00
},
});
};