Loading backend/src/place/place.service.ts +14 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ import { ServerConstants } from 'src/constants/server.contants'; import { Available } from 'src/pointOfInterest/enum/available.enum'; import { UpdatePlaceReqDto } from './dto/update-place.req.dto'; import { Category } from 'src/category/entities/category.entity'; import { Visited } from 'src/visited/entities/visited.entity'; @Injectable() export class PlaceService { Loading Loading @@ -206,4 +207,17 @@ export class PlaceService { ); } } async findPlacesNotVisitedByUser(email: string, lang: LANGUAGES, idTown: number): Promise<GetPlaceDto[]> { const places: GetPlaceDto[] = await this.findAllByTown(idTown, lang); const visited: any[] = await this.dataSource .getRepository(Visited) .createQueryBuilder('visited') .leftJoinAndSelect('visited.place', 'place') .where('visited.user = :email', { email }) .getMany(); const visitedIds: number[] = visited.map((visit) => visit.place.idPlace); // podemos hacerlo en la query return places.filter((place) => !visitedIds.includes(place.idPlace)); } } Loading
backend/src/place/place.service.ts +14 −0 Original line number Diff line number Diff line Loading @@ -14,6 +14,7 @@ import { ServerConstants } from 'src/constants/server.contants'; import { Available } from 'src/pointOfInterest/enum/available.enum'; import { UpdatePlaceReqDto } from './dto/update-place.req.dto'; import { Category } from 'src/category/entities/category.entity'; import { Visited } from 'src/visited/entities/visited.entity'; @Injectable() export class PlaceService { Loading Loading @@ -206,4 +207,17 @@ export class PlaceService { ); } } async findPlacesNotVisitedByUser(email: string, lang: LANGUAGES, idTown: number): Promise<GetPlaceDto[]> { const places: GetPlaceDto[] = await this.findAllByTown(idTown, lang); const visited: any[] = await this.dataSource .getRepository(Visited) .createQueryBuilder('visited') .leftJoinAndSelect('visited.place', 'place') .where('visited.user = :email', { email }) .getMany(); const visitedIds: number[] = visited.map((visit) => visit.place.idPlace); // podemos hacerlo en la query return places.filter((place) => !visitedIds.includes(place.idPlace)); } }