Commit d472be00 authored by Diego Iván's avatar Diego Iván
Browse files

agregando metodo findPlacesNotVisitedByUser

parent 5f4e87b1
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -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 {
@@ -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));
  }
}