russ_react/server/services/userService.ts
2024-12-09 16:06:47 +03:00

44 lines
1.1 KiB
TypeScript

import { PrismaClient } from '@prisma/client';
import { User } from '../../src/types/auth';
const prisma = new PrismaClient();
export const userService = {
getUsers: async (): Promise<User[]> => {
try {
const users = await prisma.user.findMany({
select: {
id: true,
email: true,
displayName: true,
permissions: true
}
});
return users as User[];
} catch (error) {
console.error('Error fetching users:', error);
throw new Error('Failed to fetch users');
}
},
updateUserPermissions: async (userId: string, permissions: User['permissions']): Promise<User> => {
try {
const updatedUser = await prisma.user.update({
where: { id: userId },
data: {
permissions: permissions as any
},
select: {
id: true,
email: true,
displayName: true,
permissions: true
}
});
return updatedUser as User;
} catch (error) {
console.error('Error updating user permissions:', error);
throw new Error('Failed to update user permissions');
}
}
};