From 161ee39828e22a625cf02761d8bd5059739ec5e7 Mon Sep 17 00:00:00 2001 From: Kevsl Date: Wed, 19 Jun 2024 13:54:24 +0200 Subject: [PATCH] added offers by crypto id --- src/offer/offer.controller.ts | 6 +++++- src/offer/offer.service.ts | 28 ++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/offer/offer.controller.ts b/src/offer/offer.controller.ts index 65eb13f..e8109cb 100644 --- a/src/offer/offer.controller.ts +++ b/src/offer/offer.controller.ts @@ -26,9 +26,13 @@ export class OfferController { constructor(private offerService: OfferService) {} @Get('/all') - getAllRoles(@GetUser() user: User) { + getAllOffers(@GetUser() user: User) { return this.offerService.getOffers(user.id); } + @Get('/search/:id') + searchOfferByCryptoId(@GetUser() user: User, @Param('id') cryptoId: string) { + return this.offerService.getOffersByCryptoId(user.id, cryptoId); + } @HttpCode(HttpStatus.CREATED) @Post('/create') diff --git a/src/offer/offer.service.ts b/src/offer/offer.service.ts index 3d5bb1c..1c8cc1e 100644 --- a/src/offer/offer.service.ts +++ b/src/offer/offer.service.ts @@ -27,6 +27,34 @@ export class OfferService { }); } + async getOffersByCryptoId(userId: string, cryptoId: string) { + await checkUserHasAccount(userId); + + return this.prisma.offer.findMany({ + where: { + Crypto: { + id: cryptoId, + }, + }, + + orderBy: { + amount: 'desc', + }, + select: { + id: true, + User: { + select: { + pseudo: true, + }, + }, + amount: true, + created_at: true, + id_user: true, + Crypto: true, + }, + }); + } + async createOffer(userId: string, dto: OfferDto) { await checkUserHasAccount(userId);