53 lines
1.1 KiB
TypeScript
53 lines
1.1 KiB
TypeScript
import { db } from '~/db'
|
|
|
|
export default abstract class Query {
|
|
static async listUser() {
|
|
const user = await db.query.users.findMany({
|
|
where: (u, { isNull }) => isNull(u.deletedAt),
|
|
})
|
|
return user
|
|
}
|
|
|
|
static async getUserById(id: number) {
|
|
const user = await db.query.users.findFirst({
|
|
columns: {
|
|
deletedAt: false,
|
|
},
|
|
where: (u, { and, eq, isNull }) => and(
|
|
eq(u.id, id),
|
|
isNull(u.deletedAt),
|
|
),
|
|
})
|
|
|
|
return user
|
|
}
|
|
|
|
static async getUserByEmail(email: string) {
|
|
const user = await db.query.users.findFirst({
|
|
columns: {
|
|
deletedAt: false,
|
|
},
|
|
where: (u, { and, eq, isNull }) => and(
|
|
eq(u.email, email),
|
|
isNull(u.deletedAt),
|
|
),
|
|
})
|
|
|
|
return user
|
|
}
|
|
|
|
static async getUserByName(name: string) {
|
|
const user = await db.query.users.findFirst({
|
|
columns: {
|
|
deletedAt: false,
|
|
},
|
|
where: (u, { and, eq, isNull }) => and(
|
|
eq(u.name, name),
|
|
isNull(u.deletedAt),
|
|
),
|
|
})
|
|
|
|
return user
|
|
}
|
|
}
|