el.xwx.moe/lib/api/controllers/users/userId/getUserById.ts

49 lines
1.0 KiB
TypeScript
Raw Normal View History

import { prisma } from "@/lib/api/db";
2023-10-23 14:24:22 -05:00
export default async function getUserById(userId: number) {
const user = await prisma.user.findUnique({
where: {
id: userId,
},
include: {
whitelistedUsers: {
select: {
username: true,
},
},
subscriptions: true,
2024-10-26 08:42:21 -05:00
parentSubscription: {
include: {
user: true,
},
},
},
});
if (!user)
return { response: "User not found or profile is private.", status: 404 };
const whitelistedUsernames = user.whitelistedUsers?.map(
(usernames) => usernames.username
);
2024-10-26 08:42:21 -05:00
const { password, subscriptions, parentSubscription, ...lessSensitiveInfo } =
user;
const data = {
...lessSensitiveInfo,
whitelistedUsers: whitelistedUsernames,
subscription: {
active: subscriptions?.active,
},
2024-10-26 08:42:21 -05:00
parentSubscription: {
active: parentSubscription?.active,
user: {
email: parentSubscription?.user.email,
},
},
};
return { response: data, status: 200 };
}