Files
learn-languages/src/modules/auth/auth-repository.ts
2026-02-03 20:29:55 +08:00

71 lines
1.7 KiB
TypeScript

import { prisma } from "@/lib/db";
import {
RepoInputFindUserByEmail,
RepoInputFindUserById,
RepoInputFindUserByUsername,
RepoOutputUserProfile
} from "./auth-repository-dto";
/**
* Find user by username
*/
export async function repoFindUserByUsername(dto: RepoInputFindUserByUsername): Promise<RepoOutputUserProfile> {
const user = await prisma.user.findUnique({
where: { username: dto.username },
select: {
id: true,
email: true,
emailVerified: true,
username: true,
displayUsername: true,
image: true,
createdAt: true,
updatedAt: true,
}
});
return user;
}
/**
* Find user by ID
*/
export async function repoFindUserById(dto: RepoInputFindUserById): Promise<RepoOutputUserProfile> {
const user = await prisma.user.findUnique({
where: { id: dto.id },
select: {
id: true,
email: true,
emailVerified: true,
username: true,
displayUsername: true,
image: true,
createdAt: true,
updatedAt: true,
}
});
return user;
}
/**
* Find user by email
*/
export async function repoFindUserByEmail(dto: RepoInputFindUserByEmail): Promise<RepoOutputUserProfile> {
const user = await prisma.user.findUnique({
where: { email: dto.email },
select: {
id: true,
email: true,
emailVerified: true,
username: true,
displayUsername: true,
image: true,
createdAt: true,
updatedAt: true,
}
});
return user;
}