fixing ProfileUser CSS and adding delete account button, in progress

This commit is contained in:
Me
2023-01-17 15:41:48 +01:00
parent b7ebdc0b7c
commit 1e215261aa
7 changed files with 128 additions and 15 deletions

View File

@@ -334,6 +334,24 @@ export class FriendshipService {
return this.friendshipRepository.remove(friendship);
}
async deleteAllFriendships(user : User) {
let friendships = await this.friendshipRepository
.createQueryBuilder('friendship')
.leftJoinAndSelect('friendship.sender', 'sender')
.leftJoinAndSelect('friendship.receiver', 'receiver')
.where('friendship.sender = :sender', { sender: user })
.orWhere('friendship.receiver = :receiver', { receiver: user})
.getMany()
// return this.friendshipRepository.remove(friendships);
// return this.friendshipRepository.delete(friendships);
for (const friendship of friendships) {
this.friendshipRepository.remove(friendship);
}
return true;
}
async findIfUserIsBlockedOrHasBlocked(userConnectedId: number, userToFindId: number) {
// console.log("finding if user is blocked")
// console.log('user connected: ' + userConnectedId)

View File

@@ -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 :

View File

@@ -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, Param, Patch, Post, Query, Redirect, Req, Res, UploadedFile, UseGuards, UseInterceptors, Next,
} 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() request, @Res() response, @Next() next) {
this.usersService.remove(request.user.id);
request.logout(function(err) {
if (err) { return next(err); }
response.redirect('/');
});
request.session.cookie.maxAge = 0;
return {msg : 'You have deleted your account'};
}

View File

@@ -113,10 +113,23 @@ export class UsersService {
}
async remove(id: number) {
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);
console.log("deleting a user user.services")
// const user = await this.userRepository.findOneBy({id: id});
// if (!user)
// throw new HttpException(`The user could not be deleted.`,HttpStatus.NOT_FOUND);
let deleting = await this.userRepository
.createQueryBuilder()
.delete()
.from(User)
.where("user.id = :id", { id: id })
.execute();
// this.friendshipService.deleteAllFriendships(user)
// return this.userRepository.remove(user.id);
console.log("done delete user users.service")
// await this.userRepository.delete(user);
}
async enableTwoFactorAuth(id: number) {