From c2812c05343ab3dd1672221e4a709999b727229f Mon Sep 17 00:00:00 2001 From: cherif Date: Tue, 17 Jan 2023 15:57:43 +0100 Subject: [PATCH] fucking DELETE method for account is now working and existing --- .../nestjs/api_back/src/chat/chat.service.ts | 3 ++- .../api_back/src/users/entities/user.entity.ts | 6 +++--- .../api_back/src/users/users.controller.ts | 12 +++++++++--- .../src/pages/profile/ProfileSettings.svelte | 18 ++++++++++++++++++ 4 files changed, 32 insertions(+), 7 deletions(-) diff --git a/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts b/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts index 8313583b..dc314cc2 100644 --- a/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts +++ b/srcs/requirements/nestjs/api_back/src/chat/chat.service.ts @@ -146,7 +146,8 @@ export class ChatService { const user_db = await this.getUserByName(username); printCaller("-- out "); - return user_db.currentRoom; + if (user_db) + return user_db.currentRoom; } async getRoomByName(room_name: string, fieldsToReturn: string[] = null): Promise diff --git a/srcs/requirements/nestjs/api_back/src/users/entities/user.entity.ts b/srcs/requirements/nestjs/api_back/src/users/entities/user.entity.ts index c25401cf..24a268be 100644 --- a/srcs/requirements/nestjs/api_back/src/users/entities/user.entity.ts +++ b/srcs/requirements/nestjs/api_back/src/users/entities/user.entity.ts @@ -43,14 +43,14 @@ export class User { @Column({ nullable: true }) secretTwoFactorAuth: string; - @OneToMany(type => Friendship , (friendship) => friendship.sender) + @OneToMany(type => Friendship , (friendship) => friendship.sender, {onDelete: 'CASCADE'}) sentFriendRequest: Friendship[]; - @OneToMany(type => Friendship , (friendship) => friendship.receiver) + @OneToMany(type => Friendship , (friendship) => friendship.receiver, {onDelete: 'CASCADE'}) receivedFriendRequest: Friendship[]; @JoinColumn() - @OneToOne(() => UserStats, { cascade: true }) + @OneToOne(() => UserStats, { cascade: true, onDelete: 'CASCADE' }) stats: UserStats; // ROOMS : diff --git a/srcs/requirements/nestjs/api_back/src/users/users.controller.ts b/srcs/requirements/nestjs/api_back/src/users/users.controller.ts index 0db08095..a1b91bc3 100644 --- a/srcs/requirements/nestjs/api_back/src/users/users.controller.ts +++ b/srcs/requirements/nestjs/api_back/src/users/users.controller.ts @@ -1,5 +1,5 @@ import { - Body, Controller, Delete, Get, NotFoundException,HttpStatus, Param, Patch, Post, Query, Redirect, Req, Res, UploadedFile, UseGuards, UseInterceptors + Body, Controller, Delete, Get, NotFoundException,HttpStatus, Next, Patch, Post, Query, Redirect, Req, Res, UploadedFile, UseGuards, UseInterceptors } from '@nestjs/common'; import { FileInterceptor } from '@nestjs/platform-express'; import { Response } from 'express'; @@ -73,8 +73,14 @@ export class UsersController { @UseGuards(AuthenticateGuard) @UseGuards(TwoFactorGuard) @Delete() - remove(@Req() req) { - return this.usersService.remove(req.user.id); + remove(@Req() req, @Res() response, @Next() next) { + this.usersService.remove(req.user.id); + req.logout(function(err) { + if (err) { return next(err); } + response.redirect('/'); + }); + req.session.cookie.maxAge = 0; + return {msg : 'Your account has been deleted'}; } diff --git a/srcs/requirements/svelte/api_front/src/pages/profile/ProfileSettings.svelte b/srcs/requirements/svelte/api_front/src/pages/profile/ProfileSettings.svelte index 97f25816..eb7e226e 100644 --- a/srcs/requirements/svelte/api_front/src/pages/profile/ProfileSettings.svelte +++ b/srcs/requirements/svelte/api_front/src/pages/profile/ProfileSettings.svelte @@ -108,6 +108,23 @@ avatar = await fetchAvatar(user.username); } + const deleteAccount = async() => { + console.log("deleting account") + await fetch(`http://${process.env.WEBSITE_HOST}:${process.env.WEBSITE_PORT}/api/v2/user`, { + method: "DELETE", + }) + .then((response) => { + if (!response.ok) { + throw new Error("HTTP " + response.status); + } + console.log("account deleted") + push('/'); + }) + .catch((error) => { + console.log("catch unable to delete: ", error); + }); + } + @@ -152,6 +169,7 @@ +