Skip to content

Commit

Permalink
Merge pull request #56 from TeamHSE/feat/delete-user
Browse files Browse the repository at this point in the history
feat(backend): add new endpoint "delete user"
  • Loading branch information
AleksanderNekr authored Jun 19, 2024
2 parents 826748c + f51b3b8 commit c7ac3c2
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 0 deletions.
34 changes: 34 additions & 0 deletions backend/src/controllers/UserDeleteAccountController.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import { Request, Response } from "express";
import { verifyToken } from "../middlewares/verifyToken";
import { AppDataSource } from "../db";
import { User } from "../entity/User";

export const UserControllerDeleteUser = [
verifyToken,
async (req: Request, res: Response) => {
const login = req.user?.login;

if (!login) {
return res.status(403).json({ message: "Не удалось идентифицировать пользователя" });
}

try {
const userRepository = AppDataSource.getRepository(User);
const user = await userRepository.findOne({ where: { email: login } });

if (!user) {
return res.status(404).json({ message: "Пользователь не найден" });
}

await userRepository.remove(user);

res.clearCookie("token", { httpOnly: true, maxAge: 0 });
return res
.status(204)
.json({ message: "Сессия завершена" });
} catch (error) {
console.error("Ошибка при удалении пользователя:", error);
return res.status(500).json({ message: "Произошла ошибка сервера при удалении пользователя" });
}
}
];
2 changes: 2 additions & 0 deletions backend/src/routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { AuthControllerLogin } from "./controllers/AuthControllerLogin";
import { AuthControllerRegister } from "./controllers/AuthControllerRegister";
import { UserControllerGetUserInfo } from "./controllers/UserInfoController";
import { UserControllerLogout } from "./controllers/AuthControllerLogout";
import { UserControllerDeleteUser } from "./controllers/UserDeleteAccountController";

export const registerControllers = () => {
app.get("/helloWorld", HelloWorldController);
Expand All @@ -16,4 +17,5 @@ export const registerControllers = () => {
app.post("/user", UserController);
app.get("/api/users", UserControllerGetUserInfo);
app.post("/api/auth/logout", UserControllerLogout);
app.delete("/api/users",UserControllerDeleteUser)
};

0 comments on commit c7ac3c2

Please sign in to comment.