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

corrigiendo metodo get para que tambien regrese la traduccion

parent dd73ace9
Loading
Loading
Loading
Loading
+35 −5
Original line number Diff line number Diff line
import { BadRequestException, Injectable } from '@nestjs/common';
import { CreatePlaceDateTradDto } from './dto/create-place-date.dto';
import { UpdatePlaceDto } from './dto/update-place.dto';
import { InjectRepository } from '@nestjs/typeorm';
import { InjectDataSource, InjectRepository } from '@nestjs/typeorm';
import { Place } from './entities/place.entity';
import { Repository } from 'typeorm';
import { DataSource, Repository } from 'typeorm';
import { AvailableDate } from './entities/available-date.entity';
import { CreatePlaceDto } from './dto/create-place.dto';
import { CreateDateDto } from './dto/create-date.dto';
import { PlaceTraduction } from './entities/place-traduction.entity';
import { LANGUAGES } from 'src/shared/enum/languages.enum';
import { Town } from 'src/town/entities/town.entity';
import { GetPlaceDto } from './dto/get-place.dto';
import { ServerConstants } from 'src/constants/server.contants';

@Injectable()
export class PlaceService {
@@ -18,6 +20,7 @@ export class PlaceService {
    @InjectRepository(AvailableDate) private availableDateRepository: Repository<AvailableDate>,
    @InjectRepository(PlaceTraduction) private placeTraductionRepository: Repository<PlaceTraduction>,
    @InjectRepository(Town) private townRepository: Repository<Town>,
    @InjectDataSource() private dataSource: DataSource,
  ) {}

  async create(createPlaceDto: CreatePlaceDateTradDto) {
@@ -58,9 +61,36 @@ export class PlaceService {
    await this.availableDateRepository.insert(createDate);
  }

  async findAllByTown(idTown: number) {
    const town: Town = await this.townRepository.findOneBy({ townId: idTown });
    const places: Place[] = await this.placeRepository.findBy({ idTown: town });
  async findAllByTown(idTown: number, lang: LANGUAGES) {
    const res: GetPlaceDto[] = await this.dataSource
      .getRepository(PlaceTraduction)
      .createQueryBuilder('placeTrad')
      .leftJoin('placeTrad.idPlace', 'place')
      .select([
        'place.idPlace AS idPlace',
        'place.name AS name',
        'place.imageName AS imageName',
        'placeTrad.language AS language',
        'placeTrad.description AS description',
        'place.coords AS coords',
        'place.openAt AS openAt',
        'place.closeAt AS closeAt',
      ])
      .where('place.idTown = :idTown', { idTown })
      .andWhere('placeTrad.language = :language', { language: lang })
      .getRawMany();
    const places: GetPlaceDto[] = res.map((place) => {
      return {
        available: place.available,
        description: place.description,
        coords: place.coords,
        idTown: place.idTown,
        imageName: `${ServerConstants.HOST}/places/${place.imageName}`,
        name: place.name,
        openAt: place.openAt,
        closeAt: place.closeAt,
      };
    });
    return places;
  }