diff --git a/README.md b/README.md index ed020c6..e679d1e 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ -создать виртуальное окружение -""python3 -m venv .venv""" -подключиться к виртуальному окружению -""".\.venv\Scripts\activate""" -Загрузить библиотеки с файла requirements.txt -"""pip install -r requirements.txt""" -в файле .env.template заменить на ваши данные и сохранить в .env -Запустить приложение -"""main.py""" \ No newline at end of file +создать виртуальное окружение \ +```python3 -m venv .venv``` \ +подключиться к виртуальному окружению \ +```.\.venv\Scripts\activate``` \ +Загрузить библиотеки с файла `requirements.txt` \ +```pip install -r requirements.txt``` \ +в файле `.env.template` заменить на ваши данные и сохранить в `.env` \ +Запустить приложение \ +```main.py``` \ No newline at end of file diff --git a/main.py b/main.py index 620e301..e2d7642 100644 --- a/main.py +++ b/main.py @@ -1,4 +1,4 @@ -from fastapi import FastAPI, APIRouter, Request +from fastapi import FastAPI, APIRouter, Request, HTTPException from fastapi.middleware.cors import CORSMiddleware from fastapi.responses import ORJSONResponse, HTMLResponse from sqlmodel import create_engine, Field, SQLModel, UUID, DateTime, func, Column, text, bindparam @@ -72,31 +72,33 @@ async def get_ageement(id_account: Optional[UUID] = None) -> Sequence[Agreement] @router.delete("/") async def delete_pk(acc_list: Sequence[UUID]): - with db_engine.begin() as con: - stmt = text("DELETE agreement WHERE id_account IN :acc_list") - params = {"acc_list":acc_list} - stmt = stmt.bindparams(bindparam('acc_list', expanding=True)) - con.execute(stmt, params) - return {"msg":"has deleted"} - + if acc_list: + with db_engine.begin() as con: + stmt = text("DELETE agreement WHERE id_account IN :acc_list") + params = {"acc_list":acc_list} + stmt = stmt.bindparams(bindparam('acc_list', expanding=True)) + con.execute(stmt, params) + return {"msg":"has deleted"} + raise HTTPException(405,"list is empty") @router.post("/") async def add_agreement(agrees: Sequence[AgreementCreate]): - with db_engine.begin() as con: - dict_list=[] - acc_list = [] - for agree in agrees: - agree_dict = agree.model_dump() - dict_list.append(agree_dict) - acc_id = agree_dict.get("id_account") - if acc_id not in acc_list: - acc_list.append(acc_id) - await delete_pk(acc_list) - stmt = insert(Agreement).values(dict_list) - con.execute(stmt) - con.commit() - return {"msg": "added succesfully"} - + if acc_list: + with db_engine.begin() as con: + dict_list=[] + acc_list = [] + for agree in agrees: + agree_dict = agree.model_dump() + dict_list.append(agree_dict) + acc_id = agree_dict.get("id_account") + if acc_id not in acc_list: + acc_list.append(acc_id) + await delete_pk(acc_list) + stmt = insert(Agreement).values(dict_list) + con.execute(stmt) + con.commit() + return {"msg": "added succesfully"} + raise HTTPException(405,"list is empty") app.include_router(router) if __name__ == "__main__":