async applyRequest(id: string, admin: AdminDTO): Promise<InfluencerRequest> {
// Tx: 하나의 작업 단위로 묶기
return this.prismaService.$transaction(async (tx) => { // create 가 실패한 경우 중괄호 내부 요소 전부 rollback
const created = await tx.influencerRequest.update({
data: {
status: InfluencerRequestStatus.COMPLETED,
adminId: admin.id,
},
where: { id },
});
// 위 입력이 성공할 경우 로그 입력
await tx.log.create({
data: {
content: '승인 처리',
influencerRequest: { connect: { id: created.id } },
admin: { connect: { id: admin.id } },
},
});
return created;
});
}