Files
psp_api/src/modules/admin/users/users.service.ts
T

47 lines
1.2 KiB
TypeScript
Raw Normal View History

import { PrismaService } from '@/prisma/prisma.service'
2026-03-11 20:42:34 +03:30
import { Injectable, NotFoundException } from '@nestjs/common'
import { ResponseMapper } from 'common/response/response-mapper'
import { CreateUserDto, UpdateUserDto } from './dto/user.dto'
@Injectable()
export class AdminUsersService {
constructor(private readonly prisma: PrismaService) {}
async findAll() {
const [users, count] = await this.prisma.$transaction([
this.prisma.user.findMany(),
this.prisma.user.count(),
])
return ResponseMapper.paginate(
users.map(user => ({ ...user, fullname: `${user.first_name} ${user.last_name}` })),
{ count },
)
}
async findOne(id: string) {
const user = await this.prisma.user.findUnique({
where: { id },
})
2026-03-11 20:42:34 +03:30
if (!user) {
throw new NotFoundException('کاربری یافت نشد')
}
return ResponseMapper.single({
...user,
fullname: `${user?.first_name} ${user?.last_name}`,
})
}
async create(data: CreateUserDto) {
return this.prisma.user.create({ data })
}
async update(id: string, data: UpdateUserDto) {
2026-03-11 20:42:34 +03:30
return this.prisma.user.update({ where: { id }, data })
}
async delete(id: string) {
return this.prisma.user.delete({ where: { id } })
}
}