diff --git a/backend/textsouls/main.py b/backend/textsouls/main.py index cbfbfb5..3c514a3 100644 --- a/backend/textsouls/main.py +++ b/backend/textsouls/main.py @@ -21,14 +21,20 @@ def registration(): last_name = data.get("last_name") username = data.get("username") - new_user = User( - tg_id=tg_id, - first_name=first_name, - last_name=last_name, - username=username, - ) + existed_user = User.query.filter_by(tg_id=tg_id).first() - db.session.add(new_user) - db.session.commit() + if not existed_user: + new_user = User( + tg_id=tg_id, + first_name=first_name, + last_name=last_name, + username=username, + ) - return "Nice!", 200 + db.session.add(new_user) + db.session.commit() + + return {"created": True, "id": new_user.id} + + else: + return {"created": False, "id": existed_user.id} diff --git a/telegram/textsouls/common.py b/telegram/textsouls/common.py index ae53b8e..1ca4f5a 100644 --- a/telegram/textsouls/common.py +++ b/telegram/textsouls/common.py @@ -9,7 +9,13 @@ class Backend: base_url = config_data["backend_settings"]["base_url"] def post(self, relative_url, data): - requests.post(f"{self.base_url}{relative_url}", json=data) + try: + response = requests.post( + f"{self.base_url}{relative_url}", json=data + ) + return {"error": None, "response": response} + except Exception as err: + return {"error": err} backend = Backend() diff --git a/telegram/textsouls/main.py b/telegram/textsouls/main.py index 1eaf048..abbccd3 100755 --- a/telegram/textsouls/main.py +++ b/telegram/textsouls/main.py @@ -22,8 +22,15 @@ async def start(message): "last_name": tg_user.last_name, "username": tg_user.username, } - backend.post("/registration", ts_user) - await message.reply("Nice!") + result = backend.post("/registration", ts_user) + if not result["error"] and result["response"].ok: + data = json.loads(result["response"].text) + if data["created"]: + await message.reply("Добро пожаловать!") + else: + await message.reply("Добро пожаловать! Снова") + else: + await message.reply("Упс! Что-то пошло не так") if __name__ == "__main__":