feat: update payer function to accept string ID and ensure proper type handling

This commit is contained in:
Astrian Zheng 2025-01-12 14:08:28 +11:00
parent f0856b048a
commit 83f53a46ea
Signed by: Astrian
SSH Key Fingerprint: SHA256:rVnhx3DAKjujCwWE13aDl7uV6+9U1MvydLkNRXJrBiA

View File

@ -1,22 +1,19 @@
import { PrismaClient } from '@prisma/client'
import { ErrorDescEnum, HttpError } from '../classes/HttpError'
export default async function updatePayer(prisma: PrismaClient, id: number, name: string, address: string[], email: string, abn?: string) {
export default async function updatePayer(prisma: PrismaClient, id: string, name: string, address: string[], email: string, abn?: string) {
// 验证 ABN 是否已存在
const existingPayer = await prisma.payer.findFirst({
where: {
payer_abn: abn
}
})
if (existingPayer && existingPayer.payer_id !== id) {
// 验证 abn 是否已经是当前付款人的 abn
if (existingPayer.payer_id !== id) throw new HttpError(ErrorDescEnum.item_exists, 400, ['abn'])
}
if (existingPayer && existingPayer.payer_id !== parseInt(id)) throw new HttpError(ErrorDescEnum.item_exists, 400, ['abn'])
// 验证付款人是否存在
const payerExists = await prisma.payer.findFirst({
where: {
payer_id: id
payer_id: parseInt(id)
}
})
if (!payerExists) throw new HttpError(ErrorDescEnum.item_not_found, 404, ['payer'])
@ -24,7 +21,7 @@ export default async function updatePayer(prisma: PrismaClient, id: number, name
// 更新付款人
const payer = await prisma.payer.update({
where: {
payer_id: id
payer_id: parseInt(id)
},
data: {
payer_name: name,