add a partial user to be returned
This commit is contained in:
@@ -1,5 +1,4 @@
|
||||
import { IsBoolean, IsEmail, IsOptional, IsString } from 'class-validator';
|
||||
import { Unique } from 'typeorm';
|
||||
|
||||
export class CreateUsersDto {
|
||||
@IsString()
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
import { OmitType, PartialType } from "@nestjs/mapped-types";
|
||||
import { CreateUsersDto } from "./create-users.dto";
|
||||
|
||||
export class PartialUsersDto extends OmitType(CreateUsersDto, ['fortyTwoId'] as const){}
|
||||
@@ -2,7 +2,7 @@
|
||||
// et de les mettre comme optionnelles. De plus on peut hériter
|
||||
// des décorateurs de la classe parente (par exemple @IsString()).
|
||||
|
||||
import { PartialType } from "@nestjs/mapped-types";
|
||||
import { OmitType, PartialType } from "@nestjs/mapped-types";
|
||||
import { CreateUsersDto } from "./create-users.dto";
|
||||
|
||||
export class UpdateUsersDto extends PartialType(CreateUsersDto){}
|
||||
export class UpdateUsersDto extends OmitType(CreateUsersDto, ['fortyTwoId', 'email'] as const){}
|
||||
|
||||
@@ -31,11 +31,11 @@ export class UsersController {
|
||||
* car un utilisateur est crée à la première connexion avec l'Oauth de 42.
|
||||
*/
|
||||
|
||||
// @UseGuards(AuthenticateGuard)
|
||||
// @Get()
|
||||
// findOne(@Req() req) {
|
||||
// return this.usersService.findOne(req.user.id);
|
||||
// }
|
||||
@UseGuards(AuthenticateGuard)
|
||||
@Get()
|
||||
findOne(@Req() req) {
|
||||
return this.usersService.findOne(req.user.id);
|
||||
}
|
||||
|
||||
// @UseGuards(AuthenticateGuard)
|
||||
// @Post()
|
||||
@@ -47,6 +47,7 @@ export class UsersController {
|
||||
@UseGuards(AuthenticateGuard)
|
||||
@Patch()
|
||||
update(@Req() req, @Body() usersUpdateDto: UpdateUsersDto) {
|
||||
console.log("DANS PATCH USERS");
|
||||
return this.usersService.update(req.user.id, usersUpdateDto);
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ import { UpdateUsersDto } from './dto/update-users.dto';
|
||||
import { Friendship } from '../friendship/entities/friendship.entity';
|
||||
import { isNumberString } from 'class-validator';
|
||||
import { PaginationQueryDto } from 'src/common/dto/pagination-query.dto';
|
||||
import { PartialUsersDto } from './dto/partial-users.dto';
|
||||
|
||||
// On va devoir sûrement trouver un moyen plus simple pour passer l'id, sûrement via des pipes
|
||||
// ou des interceptors, mais pour l'instant on va faire comme ça.
|
||||
@@ -36,7 +37,13 @@ export class UsersService {
|
||||
const user = await this.userRepository.findOneBy({id: +id});
|
||||
if (!user)
|
||||
throw new NotFoundException(`The requested user not found.`);
|
||||
return user;
|
||||
const partialUser : Partial<User> = {
|
||||
username: user.username,
|
||||
email: user.email,
|
||||
image_url: user.image_url,
|
||||
isEnabledTwoFactorAuth: user.isEnabledTwoFactorAuth,
|
||||
};
|
||||
return partialUser;
|
||||
}
|
||||
|
||||
// Example : http://localhost:3000/users?limit=10&offset=20
|
||||
@@ -68,7 +75,7 @@ export class UsersService {
|
||||
}
|
||||
|
||||
async remove(id: string) {
|
||||
const user = await this.findOne(id);
|
||||
const user = await this.userRepository.findOneBy({id: +id});
|
||||
if (!user)
|
||||
throw new HttpException(`The user could not be deleted.`,HttpStatus.NOT_FOUND);
|
||||
return this.userRepository.remove(user);
|
||||
|
||||
Reference in New Issue
Block a user