src/feature/users/users.controller.ts
        
                users
            
| Methods | 
| 
 | 
| Async deleteUser | ||||||
| deleteUser(id: string) | ||||||
| Decorators : @UseGuards(JwtAuthGuard) | ||||||
| Defined in src/feature/users/users.controller.ts:59 | ||||||
| 
                        Parameters :
                        
                         
 
                        Returns :      Promise<string> | 
| Async getUserById | ||||||
| getUserById(id: string) | ||||||
| Decorators : @UseGuards(JwtAuthGuard) | ||||||
| Defined in src/feature/users/users.controller.ts:46 | ||||||
| 
                        Parameters :
                        
                         
 
                        Returns :          Promise<User> | 
| Async getUsers | 
| getUsers() | 
| Decorators : @UseGuards(JwtAuthGuard) | 
| Defined in src/feature/users/users.controller.ts:20 | 
| 
                        Returns :          Promise<User[]> | 
| Async saveUser | ||||||
| saveUser(body: CreateUserDto) | ||||||
| Decorators : @Post() | ||||||
| Defined in src/feature/users/users.controller.ts:32 | ||||||
| 
                        Parameters :
                        
                         
 
                        Returns :      Promise<string> | 
| Async updateUserById | |||||||||
| updateUserById(body: UpdateUserDto, id: string) | |||||||||
| Decorators : @UseGuards(JwtAuthGuard) | |||||||||
| Defined in src/feature/users/users.controller.ts:73 | |||||||||
| 
                        Parameters :
                        
                         
 
                        Returns :      Promise<string> | 
import { Body, Controller, Delete, Get, Param, Patch, Post, Req, Res, UseGuards } from '@nestjs/common';
import { ApiBearerAuth, ApiBody, ApiCreatedResponse, ApiOkResponse, ApiTags } from '@nestjs/swagger';
import { JwtAuthGuard } from '@app/core/auth/jwt.auth.guard';
import { apiResponse } from '@app/feature/users/constants/api.response.dto';
import { CreateUserDto } from '@app/feature/users/dto/create.user.dto';
import { UpdateUserDto } from '@app/feature/users/dto/update.user.dto';
import { User } from '@app/feature/users/entities/user.entity';
import { UsersService } from '@app/feature/users/services/users.service';
@ApiTags('user_api')
@Controller('users')
export class UsersController {
  constructor(private readonly usersService: UsersService) {}
  @UseGuards(JwtAuthGuard)
  @Get()
  @ApiOkResponse({ description: apiResponse.apiUserGetResponse })
  @ApiBearerAuth('JWT-auth')
  async getUsers(): Promise<User[]> {
    try {
      const users: User[] = await this.usersService.findAll();
      return users;
    } catch (e) {
      throw e;
    }
  }
  @Post()
  @ApiCreatedResponse({ description: apiResponse.apiUserCreatedResponse })
  @ApiBody({ type: CreateUserDto })
  async saveUser(@Body() body: CreateUserDto): Promise<string> {
    try {
      const user: CreateUserDto = body;
      await this.usersService.save(user);
      return 'success';
    } catch (e) {
      throw e;
    }
  }
  @UseGuards(JwtAuthGuard)
  @Get(':id')
  @ApiOkResponse({ description: apiResponse.apiUserGetById })
  @ApiBearerAuth('JWT-auth')
  async getUserById(@Param('id') id: string): Promise<User> {
    try {
      const userById = await this.usersService.findOne(id);
      return userById;
    } catch (e) {
      throw e;
    }
  }
  @UseGuards(JwtAuthGuard)
  @Delete(':id')
  @ApiOkResponse({ description: apiResponse.apiUserDeletedResponse })
  @ApiBearerAuth('JWT-auth')
  async deleteUser(@Param('id') id: string): Promise<string> {
    try {
      await this.usersService.remove(id);
      return 'Deletion Successfull';
    } catch (e) {
      throw e;
    }
  }
  @UseGuards(JwtAuthGuard)
  @Patch(':id')
  @ApiOkResponse({ description: apiResponse.apiUserUpdatedResponse })
  @ApiBody({ type: UpdateUserDto })
  @ApiBearerAuth('JWT-auth')
  async updateUserById(@Body() body: UpdateUserDto, @Param('id') id: string): Promise<string> {
    try {
      const updateUser: UpdateUserDto = body;
      await this.usersService.update(id, updateUser);
      return 'Updation Successfull';
    } catch (e) {
      throw e;
    }
  }
}