Added feature for delete user account

This commit is contained in:
Damien Broqua 2024-06-19 11:22:21 +02:00
parent 6ee117b583
commit ad8b8f4767
4 changed files with 78 additions and 1 deletions

View file

@ -1,6 +1,8 @@
import Joi from "joi";
import UsersModel from "../models/users";
import AlbumsModel from "../models/albums";
import WantlistModel from "../models/wantlist";
import Pages from "./Pages";
/**
@ -69,6 +71,23 @@ class Me extends Pages {
return user;
}
/**
* Méthode permettant de supprimer un utilisateur et toutes ses données
*
* @return {Object}
*/
async deleteMe() {
const { _id } = this.req.user;
await AlbumsModel.deleteMany({ User: _id });
await WantlistModel.deleteMany({ User: _id });
await UsersModel.deleteOne({ _id });
return {
deleted: true,
};
}
}
export default Me;

View file

@ -15,6 +15,16 @@ router
const me = new Me(req);
const data = await me.patchMe();
return sendResponse(req, res, data);
} catch (err) {
return next(err);
}
})
.delete(ensureLoggedIn("/connexion"), async (req, res, next) => {
try {
const me = new Me(req);
const data = await me.deleteMe();
return sendResponse(req, res, data);
} catch (err) {
return next(err);