From abe0987ac615a261424bc8bfd09426a87fb36e39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20Iv=C3=A1n?= <80365304+Diego-lvan@users.noreply.github.com> Date: Sat, 22 Jun 2024 17:21:18 -0600 Subject: [PATCH 1/2] se agrego endpoint para obtener los datos del admin actual --- backend/src/admin/admin.controller.ts | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/backend/src/admin/admin.controller.ts b/backend/src/admin/admin.controller.ts index 70a9d117..072625aa 100644 --- a/backend/src/admin/admin.controller.ts +++ b/backend/src/admin/admin.controller.ts @@ -1,7 +1,25 @@ -import { Controller } from '@nestjs/common'; +import { Controller, Get, Req } from '@nestjs/common'; import { AdminService } from './admin.service'; +import { ApiBearerAuth, ApiTags } from '@nestjs/swagger'; +import { ADMIN_ROLES } from 'src/shared/enum/admin-role.enum'; +import { Roles } from 'src/auth/role.decorator'; +import { CustomAdminRequest } from 'src/auth/admin/interface/customAdminReq'; -@Controller('admin') +@Controller('') +@ApiTags('Admin') export class AdminController { constructor(private readonly adminService: AdminService) {} + + @Roles(ADMIN_ROLES) + @ApiBearerAuth('jwt') + @Get('admin/whoami') + async whoAmI(@Req() req: CustomAdminRequest) { + return { + email: req.admin.email, + name: req.admin.name, + lastName: req.admin.lastName, + role: req.admin.role, + idTown: req.admin?.idTown?.townId || null, + }; + } } -- GitLab From a611b6cf4baa3ce4abecefe3f3fe5b85ca864de4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Diego=20Iv=C3=A1n?= <80365304+Diego-lvan@users.noreply.github.com> Date: Sat, 22 Jun 2024 17:33:48 -0600 Subject: [PATCH 2/2] agregando endpoint para obtener un solo pueblo --- backend/src/town/entities/town.entity.ts | 2 +- backend/src/town/town.controller.ts | 9 +++++++++ backend/src/town/town.service.ts | 15 +++++++++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/backend/src/town/entities/town.entity.ts b/backend/src/town/entities/town.entity.ts index bfe8a378..4b6a569f 100644 --- a/backend/src/town/entities/town.entity.ts +++ b/backend/src/town/entities/town.entity.ts @@ -6,7 +6,7 @@ export class Town { @PrimaryGeneratedColumn() townId: number; - @ManyToOne(() => State, (state) => state.stateId, { nullable: false }) + @ManyToOne(() => State, (state) => state.stateId, { nullable: false, eager: true }) state: State; @OneToMany(() => Place, (place) => place.idTown) diff --git a/backend/src/town/town.controller.ts b/backend/src/town/town.controller.ts index 79a81737..34a17eef 100644 --- a/backend/src/town/town.controller.ts +++ b/backend/src/town/town.controller.ts @@ -88,4 +88,13 @@ export class TownController { throw error; } } + + @Get('town/:idTown') + async findOne(@Param('idTown') idTown: number) { + try { + return await this.townService.findOne(idTown); + } catch (error) { + throw error; + } + } } diff --git a/backend/src/town/town.service.ts b/backend/src/town/town.service.ts index 59fc928b..4ec2d9f6 100644 --- a/backend/src/town/town.service.ts +++ b/backend/src/town/town.service.ts @@ -93,4 +93,19 @@ export class TownService { await this.townTradRepository.update({ townId, language: LANGUAGES.ES }, createTownTradDtoES); await this.townTradRepository.update({ townId, language: LANGUAGES.EN }, createTownTradDtoEN); } + + async findOne(idTown: number) { + const town = await this.townRepository.findOneByOrFail({ townId: idTown }); + const tradEN = await this.townTradRepository.findOneByOrFail({ townId: idTown, language: LANGUAGES.EN }); + const tradES = await this.townTradRepository.findOneByOrFail({ townId: idTown, language: LANGUAGES.ES }); + console.log(town); + return { + townId: town.townId, + name: town.name, + descriptionEN: tradEN.description, + descriptionES: tradES.description, + imageName: `${ServerConstants.HOST}/towns/${town.imageName}`, + stateId: town.state.stateId, + }; + } } -- GitLab