From 83e2fff0caa64f05573ce69f6592f8e02ee46130 Mon Sep 17 00:00:00 2001 From: Banx17 Date: Fri, 1 May 2026 15:40:07 +0100 Subject: [PATCH] feat: add user profile management endpoints (#306) --- src/users/dto/user.dto.ts | 14 ++++++++++++++ src/users/users.controller.ts | 18 +++++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/src/users/dto/user.dto.ts b/src/users/dto/user.dto.ts index 9062589..ace6814 100644 --- a/src/users/dto/user.dto.ts +++ b/src/users/dto/user.dto.ts @@ -40,3 +40,17 @@ export class UpdateUserDto { @IsString() avatar?: string; } + +export class UpdateUserProfileDto { + @IsOptional() + @IsString() + firstName?: string; + + @IsOptional() + @IsString() + lastName?: string; + + @IsOptional() + @IsString() + phone?: string; +} diff --git a/src/users/users.controller.ts b/src/users/users.controller.ts index 14fec11..1280b18 100644 --- a/src/users/users.controller.ts +++ b/src/users/users.controller.ts @@ -1,6 +1,6 @@ import { Controller, Get, Post, Body, Param, Put, Delete, UseGuards } from '@nestjs/common'; import { UsersService } from './users.service'; -import { CreateUserDto, UpdateUserDto } from './dto/user.dto'; +import { CreateUserDto, UpdateUserDto, UpdateUserProfileDto } from './dto/user.dto'; import { DeactivateAccountDto, ReactivateAccountDto } from './dto/deactivation.dto'; import { JwtAuthGuard } from '../auth/guards/jwt-auth.guard'; import { RolesGuard } from '../auth/guards/roles.guard'; @@ -62,6 +62,22 @@ export class UsersController { return this.usersService.remove(id); } + // User profile management + @UseGuards(JwtAuthGuard) + @Get('me/profile') + getProfile(@CurrentUser() user: AuthUserPayload) { + return this.usersService.findOne(user.sub); + } + + @UseGuards(JwtAuthGuard) + @Put('me/profile') + updateProfile( + @CurrentUser() user: AuthUserPayload, + @Body() updateProfileDto: UpdateUserProfileDto, + ) { + return this.usersService.update(user.sub, updateProfileDto); + } + // User self-service deactivation @UseGuards(JwtAuthGuard) @Post('me/deactivate')