From 5f26b48c040e0b5992d8e53bab7274b7bb03449a Mon Sep 17 00:00:00 2001 From: kosh Date: Sun, 1 Sep 2024 14:17:17 +0530 Subject: [PATCH] Add delete member --- backend/data/sqlite-database.db | Bin 32768 -> 32768 bytes backend/src/rest_api.py | 15 +++++++++++++++ backend/src/utils/user.py | 13 +++++++++++-- 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/backend/data/sqlite-database.db b/backend/data/sqlite-database.db index e06b1f694771c35dbd189d11286e38e7542d0a9d..a45b3fa06b4cf645285a93523ef3a25d7f1cc4e5 100644 GIT binary patch delta 322 zcmZo@U}|V!njpl?)c1sNJy%o!zxMP(Ib znOQ_R8C8suR1A$&yqp|;oGb&2i}g(N^?Y5-&D;wLb4m-HeR9eRoN{~vll3iK0+LEI zLy}8UN;CXQN(0TpowM_cGcxlsQqxmX9ny0XGjsHk^K*I9vNBVOi_=olvhve1L7c3# zd?1~YuT~5sGxM|3fb#iSnHcEn=@iH zUvQJbD}E&*P9|n?#*);;++rP|UXXq$#mN7if&V-I8=x_-`2{$bSr|dK2=W4@b@=2a gvj>DT@yP)t_wjOb>aZ|~b7Z9E flask.Response: return flask.Response("Mail taken") return flask.Response("Phone/ pin code wrong", 400) return flask.Response() + + +@app.post("/delete-member") +def delete_member() -> flask.Response: + try: + user_id = flask.session["user_id"] + except KeyError: + return flask.Response("Not logged in", 428) + try: + utils.UserHandler.delete_member(flask.request.form["mail"], user_id) + except AssertionError: + return flask.Response("User doesn't exist", 404) + except KeyError as e: + return flask.Response("mail doesn't exist", 422) + return flask.Response() diff --git a/backend/src/utils/user.py b/backend/src/utils/user.py index f1fecc4..cdca8a8 100644 --- a/backend/src/utils/user.py +++ b/backend/src/utils/user.py @@ -121,8 +121,7 @@ class UserHandler: """, (user_id, ) ).fetchall() - if not users: - raise KeyError(f"{user_id} does not exist!") + assert users, f"{user_id} does not exist!" user = users[0] return User( user[0], @@ -187,3 +186,13 @@ class UserHandler: password.encode("utf-8"), users[0][0] ) + + @classmethod + def delete_member(cls, mail: str, leader_id: int) -> None: + assert cls.get_user_by_id(leader_id).team_id == cls.get_user_by_mail(mail).team_id + cls.__cursor.execute( + f""" + DELETE FROM users WHERE mail=? + """, (mail, ) + ) + cls.__connection.commit()