mirror of
https://github.com/ahmadk953/tasko.git
synced 2025-02-07 03:32:51 +00:00
38 lines
851 B
TypeScript
38 lines
851 B
TypeScript
|
import { auth, currentUser } from "@clerk/nextjs";
|
||
|
import { ACTION, ENTITY_TYPE } from "@prisma/client";
|
||
|
|
||
|
import { db } from "@/lib/db";
|
||
|
|
||
|
interface Props {
|
||
|
entityId: string;
|
||
|
entityType: ENTITY_TYPE;
|
||
|
entityTitle: string;
|
||
|
action: ACTION;
|
||
|
}
|
||
|
|
||
|
export const createAuditLog = async (props: Props) => {
|
||
|
try {
|
||
|
const { orgId } = auth();
|
||
|
const user = await currentUser();
|
||
|
|
||
|
if (!orgId || !user) throw new Error("User not found");
|
||
|
|
||
|
const { entityId, entityType, entityTitle, action } = props;
|
||
|
|
||
|
await db.auditLog.create({
|
||
|
data: {
|
||
|
orgId,
|
||
|
entityId,
|
||
|
entityType,
|
||
|
entityTitle,
|
||
|
action,
|
||
|
userId: user.id,
|
||
|
userImage: user?.imageUrl,
|
||
|
userName: user?.firstName + " " + user?.lastName,
|
||
|
},
|
||
|
});
|
||
|
} catch (error) {
|
||
|
console.error("[AUDIT_LOG_ERROR]", error);
|
||
|
}
|
||
|
};
|