This commit is contained in:
2025-11-16 10:37:03 +03:30
parent ad4b2e2c89
commit fae765e05a
8 changed files with 45 additions and 30 deletions
+13 -12
View File
@@ -6,24 +6,24 @@ import { CategoryRepository } from '../repositories/category.repository';
import { EntityManager } from '@mikro-orm/postgresql';
import { RequiredEntityData } from '@mikro-orm/core';
import { Food } from '../entities/food.entity';
import { FoodMessage } from 'src/common/enums/message.enum';
// import { RestRepository } from 'src/modules/restaurants/repositories/rest.repository';
import { FoodMessage, RestMessage } from 'src/common/enums/message.enum';
import { RestRepository } from 'src/modules/restaurants/repositories/rest.repository';
@Injectable()
export class FoodService {
constructor(
private readonly foodRepository: FoodRepository,
private readonly categoryRepository: CategoryRepository,
// private readonly restRepository: RestRepository,
private readonly restRepository: RestRepository,
private readonly em: EntityManager,
) {}
async create(createFoodDto: CreateFoodDto): Promise<Food> {
async create(restId: string, createFoodDto: CreateFoodDto): Promise<Food> {
const { categoryIds, ...rest } = createFoodDto;
// const restaurant = await this.restRepository.findOne({ id: createFoodDto.restId });
// if (!restaurant) {
// throw new NotFoundException(RestMessage.NOT_FOUND);
// }
const restaurant = await this.restRepository.findOne({ id: restId });
if (!restaurant) {
throw new NotFoundException(RestMessage.NOT_FOUND);
}
// prepare data with defaults for required fields so repository.create typing is satisfied
const data: RequiredEntityData<Food> = {
// boolean/day flags
@@ -48,9 +48,10 @@ export class FoodService {
points: rest.points ?? 0,
prepareTime: rest.prepareTime ?? 0,
images: rest.images ?? undefined,
} as RequiredEntityData<Food>;
restaurant: restaurant,
};
const food = this.foodRepository.create(data) as Food;
const food = this.foodRepository.create(data);
if (!food) {
throw new Error('Failed to create food entity');
}
@@ -65,8 +66,8 @@ export class FoodService {
return food;
}
findAll(dto: FindFoodsDto) {
return this.foodRepository.findAllPaginated(dto);
findAll(restId: string, dto: FindFoodsDto) {
return this.foodRepository.findAllPaginated(restId, dto);
}
findOne(id: string) {