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

58 lines
1.7 KiB
TypeScript
Raw Normal View History

2026-03-16 00:33:40 +03:30
import { PasswordUtil } from '@/common/utils/password.util'
import { AccountStatus, AccountType, ProviderRole } from '@/generated/prisma/enums'
import { PrismaService } from '@/prisma/prisma.service'
import { Injectable } from '@nestjs/common'
import { ResponseMapper } from 'common/response/response-mapper'
import { CreateProviderDto, UpdateProviderDto } from './dto/provider.dto'
@Injectable()
export class ProvidersService {
constructor(private readonly prisma: PrismaService) {}
async findAll() {
const providers = await this.prisma.provider.findMany()
return ResponseMapper.list(providers)
}
async findOne(id: string) {
const provider = await this.prisma.provider.findUnique({
where: { id },
2026-03-16 00:33:40 +03:30
include: { pos_list: true },
})
return ResponseMapper.single(provider)
}
async create(data: CreateProviderDto) {
2026-03-16 00:33:40 +03:30
const { username, password, ...rest } = data
const provider = await this.prisma.provider.create({
data: {
...rest,
provider_accounts: {
2026-03-16 00:33:40 +03:30
create: {
role: ProviderRole.OWNER,
account: {
create: {
username,
password: await PasswordUtil.hash(password),
status: AccountStatus.ACTIVE,
type: AccountType.PROVIDER,
},
},
},
},
},
})
return ResponseMapper.create(provider)
}
async update(id: string, data: UpdateProviderDto) {
const provider = await this.prisma.provider.update({ where: { id }, data })
return ResponseMapper.update(provider)
}
2026-03-16 00:33:40 +03:30
// async delete(id: string) {
// await this.prisma.provider.delete({ where: { id } })
// return ResponseMapper.delete()
// }
}