migrate to app dir and ssr
This commit is contained in:
@@ -1 +1,40 @@
|
||||
import { slug } from '@/utils/slug';
|
||||
|
||||
import { db } from '@mixan/db';
|
||||
|
||||
export { db } from '@mixan/db';
|
||||
|
||||
export async function getId(
|
||||
tableName: 'project' | 'organization' | 'dashboard',
|
||||
name: string
|
||||
) {
|
||||
const newId = slug(name);
|
||||
if (!db[tableName]) {
|
||||
throw new Error('Table does not exists');
|
||||
}
|
||||
|
||||
if (!('findUnique' in db[tableName])) {
|
||||
throw new Error('findUnique does not exists');
|
||||
}
|
||||
|
||||
// @ts-expect-error
|
||||
const existingProject = await db[tableName]!.findUnique({
|
||||
where: {
|
||||
id: newId,
|
||||
},
|
||||
});
|
||||
|
||||
function random(str: string) {
|
||||
const numbers = Math.floor(1000 + Math.random() * 9000);
|
||||
if (str.match(/-\d{4}$/g)) {
|
||||
return str.replace(/-\d{4}$/g, `-${numbers}`);
|
||||
}
|
||||
return `${str}-${numbers}`;
|
||||
}
|
||||
|
||||
if (existingProject) {
|
||||
return getId(tableName, random(name));
|
||||
}
|
||||
|
||||
return newId;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user