| import traceback | |
| import logging | |
| class DeleteUser: | |
| async def delete_user(self, user_id: int): | |
| try: | |
| user = await self.find(user_id) | |
| if not user: "not exists" | |
| db, cb = self.db, self.cb | |
| await db.update_one({"_id": 1}, {"$pull": {"users": user_id}}) | |
| await db.delete_one({"_id": user_id}) | |
| for x in user.get('projects'): | |
| if x.get('project_id'): | |
| try: await db.delete_one({"_id": f"{user_id}{int(x.get('project_id'))}"}) | |
| except: pass | |
| try: | |
| await cb.update_one({"_id": 1}, {"$pull": {"users": user_id}}) | |
| await cb.delete_one({"_id": user_id}) | |
| except Exception as e: logging.error("Error on deleting user callback data ^_^: {user_id}, {e}") | |
| return True | |
| except Exception as e: | |
| logging.error(traceback.format_exc()) | |
| return f"Error: {e}" | |