tasko/lib/create-audit-log.ts
2024-02-14 21:30:10 -05:00

37 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);
}
};