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

delete place

parent c619b586
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -64,4 +64,7 @@ export class Place {

  @Column({ nullable: false })
  closeAt: number;

  @Column({ nullable: false, default: true })
  active: boolean;
}
+15 −0
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ import {
  Req,
  Patch,
  UseGuards,
  Delete,
} from '@nestjs/common';
import { PlaceService } from './place.service';
import { CreatePlaceDateTradDto } from './dto/create-place-date.dto';
@@ -107,4 +108,18 @@ export class PlaceController {
  async findOpenPlaces(@Param('idTown') idTown: number, @Param('lang') lang: string, @Req() req: CustomUserRequest) {
    return await this.placeService.findPlacesNotVisitedByUserAndOpenResponse(req.user.email, lang as LANGUAGES, idTown);
  }

  @Delete(':idPlace')
  @UseGuards(AuthAdminGuard)
  @Roles([ALL_ROLES.ADMIN])
  @ApiBearerAuth('jwt')
  @ApiParam({ name: 'idPlace', type: Number })
  async remove(@Param('idPlace') idPlace: number) {
    try {
      await this.placeService.remove(idPlace);
      return { message: 'Place removed successfully' };
    } catch (e) {
      throw e;
    }
  }
}
+9 −0
Original line number Diff line number Diff line
@@ -96,6 +96,7 @@ export class PlaceService {
      .where('place.idTown = :idTown', { idTown: idTown })
      .andWhere('placeTrad.language = :language', { language: lang })
      .andWhere('category.language = :language', { language: lang })
      .andWhere('place.active = :active', { active: true })
      .getMany();
    const places: GetPlaceDto[] = res.map((place): GetPlaceDto => {
      return {
@@ -226,6 +227,7 @@ export class PlaceService {
      .createQueryBuilder('visited')
      .leftJoinAndSelect('visited.place', 'place')
      .where('visited.user = :email', { email })
      .andWhere('place.active = :active', { active: true })
      .getMany();
    const visitedIds: number[] = visited.map((visit) => visit.place.idPlace);
    // podemos hacerlo en la query
@@ -261,6 +263,7 @@ export class PlaceService {
        .leftJoinAndSelect('visited.place', 'place')
        .where('visited.user = :email', { email })
        .andWhere('place.idPlace = :idPlace', { idPlace: place.idPlace })
        .andWhere('place.active = :active', { active: true })
        .getOne();

      placesResponse.push({
@@ -270,4 +273,10 @@ export class PlaceService {
    }
    return placesResponse;
  }

  async remove(id: number) {
    const place = await this.placeRepository.findOneByOrFail({ idPlace: id });
    place.active = false;
    await this.placeRepository.save(place);
  }
}