From f00c674b666213480100e57544829ed41bf1889c Mon Sep 17 00:00:00 2001 From: Alp Emre Elmas Date: Thu, 9 May 2024 22:41:24 +0200 Subject: [PATCH] fix: correction daily order --- src/daily/daily.controller.ts | 13 ++++++++++++- src/daily/daily.service.ts | 12 +++++++++++- src/daily/dto/order-daily.dto.ts | 11 +++++++++++ src/daily/dto/update-daily.dto.ts | 7 +------ 4 files changed, 35 insertions(+), 8 deletions(-) create mode 100644 src/daily/dto/order-daily.dto.ts diff --git a/src/daily/daily.controller.ts b/src/daily/daily.controller.ts index 26018db..7e4d5f4 100644 --- a/src/daily/daily.controller.ts +++ b/src/daily/daily.controller.ts @@ -8,12 +8,14 @@ import { Delete, UseGuards, Req, + ParseArrayPipe, } from '@nestjs/common'; import { DailyService } from './daily.service'; import { CreateDailyDto } from './dto/create-daily.dto'; import { UpdateDailyDto } from './dto/update-daily.dto'; import { AuthGuard } from '../auth/guards/auth.guard'; -import { ApiTags } from '@nestjs/swagger'; +import { ApiResponse, ApiTags } from '@nestjs/swagger'; +import { OrderDailyDto } from './dto/order-daily.dto'; @ApiTags('Daily') @Controller('daily') @@ -31,6 +33,15 @@ export class DailyController { return this.dailyService.findAll(req.user); } + @Post('/order') + order( + @Req() req, + @Body(new ParseArrayPipe({ items: OrderDailyDto })) + orderDailyDtos: OrderDailyDto[], + ) { + return this.dailyService.order(orderDailyDtos, req.user); + } + @Get(':id') findOne(@Param('id') id: string, @Req() req) { return this.dailyService.findOne(id, req.user); diff --git a/src/daily/daily.service.ts b/src/daily/daily.service.ts index 76092ea..b8cbe70 100644 --- a/src/daily/daily.service.ts +++ b/src/daily/daily.service.ts @@ -1,4 +1,4 @@ -import { Injectable, NotFoundException } from '@nestjs/common'; +import { HttpStatus, Injectable, NotFoundException } from '@nestjs/common'; import { CreateDailyDto } from './dto/create-daily.dto'; import { UpdateDailyDto } from './dto/update-daily.dto'; import { InjectModel } from '@nestjs/mongoose'; @@ -6,6 +6,7 @@ import { User, UserDocument } from '../users/entities/user.schema'; import { Model } from 'mongoose'; import { Daily, DailyDocument } from './entities/daily.entity'; import { NotFoundError } from 'rxjs'; +import { OrderDailyDto } from './dto/order-daily.dto'; @Injectable() export class DailyService { @@ -29,6 +30,15 @@ export class DailyService { return res; } + async order(orderDailyDtos: OrderDailyDto[], user: any) { + orderDailyDtos.forEach(async (order) => { + await this.DailyModel.findOneAndUpdate( + { user: user.sub, _id: order.id }, + { orderId: order.orderId }, + ); + }); + } + async update(id: string, updateDailyDto: UpdateDailyDto, user: any) { const res = await this.DailyModel.findOneAndUpdate( { user: user.sub, _id: id }, diff --git a/src/daily/dto/order-daily.dto.ts b/src/daily/dto/order-daily.dto.ts new file mode 100644 index 0000000..1af320e --- /dev/null +++ b/src/daily/dto/order-daily.dto.ts @@ -0,0 +1,11 @@ +import { IsNotEmpty, IsNumber, IsString } from 'class-validator'; + +export class OrderDailyDto { + @IsString() + @IsNotEmpty() + public id: string; + + @IsNumber() + @IsNotEmpty() + public orderId: number; +} diff --git a/src/daily/dto/update-daily.dto.ts b/src/daily/dto/update-daily.dto.ts index 9523186..1d08553 100644 --- a/src/daily/dto/update-daily.dto.ts +++ b/src/daily/dto/update-daily.dto.ts @@ -1,9 +1,4 @@ import { PartialType } from '@nestjs/swagger'; import { CreateDailyDto } from './create-daily.dto'; -import { IsNumber, IsOptional } from 'class-validator'; -export class UpdateDailyDto extends PartialType(CreateDailyDto) { - @IsNumber() - @IsOptional() - public orderId: number; -} +export class UpdateDailyDto extends PartialType(CreateDailyDto) {}