diff --git a/src/modules/restaurants/restaurants.controller.ts b/src/modules/restaurants/restaurants.controller.ts index f9c6a25..273e154 100644 --- a/src/modules/restaurants/restaurants.controller.ts +++ b/src/modules/restaurants/restaurants.controller.ts @@ -24,7 +24,7 @@ export class RestaurantsController { @Patch(':id') update(@Param('id') id: string, @Body() updateRestaurantDto: UpdateRestaurantDto) { - return this.restaurantsService.update(+id, updateRestaurantDto); + return this.restaurantsService.update(id, updateRestaurantDto); } @Delete(':id') diff --git a/src/modules/restaurants/restaurants.service.ts b/src/modules/restaurants/restaurants.service.ts index bcb488a..f89867e 100644 --- a/src/modules/restaurants/restaurants.service.ts +++ b/src/modules/restaurants/restaurants.service.ts @@ -4,13 +4,12 @@ import { UpdateRestaurantDto } from './dto/update-restaurant.dto'; import { Restaurant } from './entities/restaurant.entity'; import { EntityManager } from '@mikro-orm/postgresql'; import { RestRepository } from './repositories/rest.repository'; -import { InjectRepository } from '@mikro-orm/nestjs'; +import { RestMessage } from 'src/common/enums/message.enum'; @Injectable() export class RestaurantsService { constructor( private readonly em: EntityManager, - @InjectRepository(Restaurant) private readonly restRepository: RestRepository, ) {} @@ -38,8 +37,18 @@ export class RestaurantsService { return restaurant; } - update(id: number, updateRestaurantDto: UpdateRestaurantDto) { - return `This action updates a #${id} restaurant`; + async update(id: string, dto: UpdateRestaurantDto): Promise { + const restaurant = await this.restRepository.findOne({ id }); + + if (!restaurant) { + throw new NotFoundException(RestMessage.NOT_FOUND); + } + + this.restRepository.assign(restaurant, dto); + + await this.em.persistAndFlush(restaurant); + + return restaurant; } remove(id: number) {