Files
fullstack-fuware/src/service/repository.ts
2026-01-20 22:21:06 +07:00

55 lines
1.1 KiB
TypeScript

import { prisma } from '@/db';
import { Audit, Setting } from '@/generated/prisma/client';
type AdminSettingValue = Pick<Setting, 'id' | 'key' | 'value'>;
type AdminSettingValueOnly = {
[key: string]: string;
};
type AdminSettingFull = {
[key: string]: AdminSettingValue;
};
export async function getAllAdminSettings(
valueOnly: true,
): Promise<AdminSettingValueOnly>;
export async function getAllAdminSettings(
valueOnly?: false,
): Promise<AdminSettingFull>;
export async function getAllAdminSettings(valueOnly = false) {
const settings = await prisma.setting.findMany({
where: {
relation: 'admin',
},
select: {
id: true,
key: true,
value: true,
},
});
const results: Record<string, string | AdminSettingValue> = {};
settings.forEach((setting) => {
results[setting.key] = valueOnly ? setting.value : setting;
});
return results;
}
export const createAuditLog = async (data: Omit<Audit, 'id' | 'createdAt'>) => {
try {
await prisma.audit.create({
data: {
...data,
},
});
} catch (error) {
console.log(error);
throw error;
}
};