Files
prosapp-migration/backend/src/users/users.controller.ts
T
Lizandro GuarnizoandClaude Sonnet 4.6 abc19505ae feat: edicion de usuarios y profesionales desde el admin
Backend: agrega PATCH /users/:id y PATCH /professionals/:id (protegidos).
Admin: pagina de usuario con edicion de nombre/telefono/ciudad/genero;
pagina de profesional con dos secciones editables independientes
(datos personales y perfil profesional).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-27 08:22:40 -05:00

52 lines
1.3 KiB
TypeScript

import { Controller, Get, Patch, Param, Body, UseGuards, Req } from '@nestjs/common';
import { ApiTags, ApiBearerAuth } from '@nestjs/swagger';
import { UsersService } from './users.service';
import { JwtAuthGuard } from '../auth/jwt-auth.guard';
import { UpdateUserDto, FcmTokenDto } from '../auth/dto/auth.dto';
@ApiTags('Users')
@Controller('users')
export class UsersController {
constructor(private users: UsersService) {}
@Get()
findAll(@Req() req) {
const page = +(req.query.page || 1);
const limit = +(req.query.limit || 20);
return this.users.findAll(page, limit);
}
@Get('me')
@UseGuards(JwtAuthGuard)
@ApiBearerAuth()
findMe(@Req() req) {
return this.users.findById(req.user.sub);
}
@Patch('me')
@UseGuards(JwtAuthGuard)
@ApiBearerAuth()
update(@Req() req, @Body() dto: UpdateUserDto) {
return this.users.update(req.user.sub, dto);
}
@Patch('me/fcm-token')
@UseGuards(JwtAuthGuard)
@ApiBearerAuth()
updateFcmToken(@Req() req, @Body() dto: FcmTokenDto) {
return this.users.updateFcmToken(req.user.sub, dto.token);
}
@Patch(':id')
@UseGuards(JwtAuthGuard)
@ApiBearerAuth()
updateById(@Param('id') id: string, @Body() dto: UpdateUserDto) {
return this.users.update(id, dto);
}
@Get(':id')
findById(@Param('id') id: string) {
return this.users.findById(id);
}
}