fixed: trade received amount by seller

This commit is contained in:
Kevsl 2024-06-13 12:04:26 +02:00
parent f6dddf8aef
commit ebb017c07c

View File

@ -2,6 +2,7 @@ import { ForbiddenException, Injectable } from '@nestjs/common';
import { PrismaService } from '../prisma/prisma.service';
import { checkUserHasAccount, checkuserIsAdmin } from 'src/utils/checkUser';
import { TradeDto } from './dto';
import { of } from 'rxjs';
@Injectable()
export class TradeService {
constructor(private prisma: PrismaService) {}
@ -73,6 +74,12 @@ export class TradeService {
},
});
const seller = await this.prisma.user.findFirst({
where: {
id: offer.id_user,
},
});
const price = crypto.value * offer.amount;
if (buyer.dollarAvailables < price) {
throw new ForbiddenException(
@ -164,6 +171,18 @@ export class TradeService {
dollarAvailables: prevAmount - price,
},
});
const newBalanceSeller = seller.dollarAvailables + price;
await this.prisma.user.update({
where: {
id: seller.id,
},
data: {
dollarAvailables: newBalanceSeller,
},
});
await this.prisma.offer.delete({
where: {
id: offer.id,