feat: add update password functionality and DTO for partner service
This commit is contained in:
@@ -1,10 +1,11 @@
|
||||
import { UploadedFileTypes } from '@/common/enums/enums'
|
||||
import { ResponseMapper } from '@/common/response/response-mapper'
|
||||
import { PartnerAccountSelect } from '@/generated/prisma/models'
|
||||
import { PasswordUtil } from '@/common/utils'
|
||||
import { UploaderService } from '@/modules/uploader/uploader.service'
|
||||
import { PrismaService } from '@/prisma/prisma.service'
|
||||
import { Injectable } from '@nestjs/common'
|
||||
import { UpdatePartnerProfileDto } from './dto/partner.dto'
|
||||
import { UpdatePartnerPasswordDto } from './dto/update-password-request.dto'
|
||||
|
||||
@Injectable()
|
||||
export class PartnerService {
|
||||
@@ -13,10 +14,8 @@ export class PartnerService {
|
||||
private readonly uploaderService: UploaderService,
|
||||
) {}
|
||||
|
||||
private readonly defaultSelect: PartnerAccountSelect = {}
|
||||
|
||||
async me(partner_id: string, account_id: string) {
|
||||
const partner = await this.prisma.partnerAccount.findUniqueOrThrow({
|
||||
const partnerAccount = await this.prisma.partnerAccount.findUniqueOrThrow({
|
||||
where: {
|
||||
id: account_id,
|
||||
partner_id,
|
||||
@@ -33,12 +32,21 @@ export class PartnerService {
|
||||
select: {
|
||||
id: true,
|
||||
name: true,
|
||||
code: true,
|
||||
logo_url: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
return ResponseMapper.single(partner)
|
||||
return ResponseMapper.single({
|
||||
...partnerAccount.partner,
|
||||
account: {
|
||||
role: partnerAccount.role,
|
||||
id: partnerAccount.id,
|
||||
username: partnerAccount.account.username,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
async getInfo(partner_id: string) {
|
||||
@@ -234,10 +242,31 @@ export class PartnerService {
|
||||
...rest,
|
||||
...(logo_url ? { logo_url } : {}),
|
||||
},
|
||||
select: this.defaultSelect,
|
||||
})
|
||||
})
|
||||
|
||||
return ResponseMapper.single(updatedPartner)
|
||||
}
|
||||
|
||||
async updatePassword(
|
||||
partner_id: string,
|
||||
accountId: string,
|
||||
data: UpdatePartnerPasswordDto,
|
||||
) {
|
||||
const partnerAccount = await this.prisma.partnerAccount.update({
|
||||
where: {
|
||||
id: accountId,
|
||||
partner_id,
|
||||
},
|
||||
data: {
|
||||
account: {
|
||||
update: {
|
||||
password: await PasswordUtil.hash(data.password),
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
return ResponseMapper.update(partnerAccount)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user