HTTP exceptions added (intead of just True or False answers)
This commit is contained in:
parent
7453a60eee
commit
60e5463028
18
back/api.py
18
back/api.py
@ -68,12 +68,11 @@ async def announcements_list(db: Annotated[Session, Depends(auth_utils.get_sessi
|
|||||||
async def single_announcement(ann_id:int, db: Annotated[Session, Depends(auth_utils.get_session)]): # передаем индекс обявления
|
async def single_announcement(ann_id:int, db: Annotated[Session, Depends(auth_utils.get_session)]): # передаем индекс обявления
|
||||||
# Считываем данные из Body и отображаем их на странице.
|
# Считываем данные из Body и отображаем их на странице.
|
||||||
# В последствии будем вставлять данные в html-форму
|
# В последствии будем вставлять данные в html-форму
|
||||||
try:
|
|
||||||
announcement = await db.get(orm_models.Announcement, ann_id)
|
announcement = await db.get(orm_models.Announcement, ann_id)
|
||||||
#announcement = await db.execute(select(orm_models.Announcement)).scalars().all()
|
#announcement = await db.execute(select(orm_models.Announcement)).scalars().all()
|
||||||
|
if not announcement:
|
||||||
|
raise HTTPException(status_code=404, detail="Item not found")
|
||||||
return announcement
|
return announcement
|
||||||
except:
|
|
||||||
return {"Answer" : False} #если неуданый доступ, то сообщаем об этом
|
|
||||||
|
|
||||||
|
|
||||||
# Занести объявление в базу данных
|
# Занести объявление в базу данных
|
||||||
@ -82,7 +81,7 @@ async def put_in_db(name: Annotated[str, Form()], category: Annotated[str, Form(
|
|||||||
address: Annotated[str, Form()], longtitude: Annotated[float, Form()], latitude: Annotated[float, Form()],
|
address: Annotated[str, Form()], longtitude: Annotated[float, Form()], latitude: Annotated[float, Form()],
|
||||||
description: Annotated[str, Form()], metro: Annotated[str, Form()], current_user: Annotated[pydantic_schemas.User, Depends(auth_utils.get_current_active_user)],
|
description: Annotated[str, Form()], metro: Annotated[str, Form()], current_user: Annotated[pydantic_schemas.User, Depends(auth_utils.get_current_active_user)],
|
||||||
db: Annotated[Session, Depends(auth_utils.get_session)], src: Union[UploadFile, None] = None, trashId: Annotated[int, Form()] = None):
|
db: Annotated[Session, Depends(auth_utils.get_session)], src: Union[UploadFile, None] = None, trashId: Annotated[int, Form()] = None):
|
||||||
try:
|
|
||||||
# имя загруженного файла по умолчанию - пустая строка
|
# имя загруженного файла по умолчанию - пустая строка
|
||||||
uploaded_name = ""
|
uploaded_name = ""
|
||||||
# если пользователь загрузил картинку
|
# если пользователь загрузил картинку
|
||||||
@ -103,27 +102,28 @@ async def put_in_db(name: Annotated[str, Form()], category: Annotated[str, Form(
|
|||||||
temp_ancmt = orm_models.Announcement(user_id=current_user.id, name=name, category=category, best_by=bestBy,
|
temp_ancmt = orm_models.Announcement(user_id=current_user.id, name=name, category=category, best_by=bestBy,
|
||||||
address=address, longtitude=longtitude, latitude=latitude, description=description, metro=metro,
|
address=address, longtitude=longtitude, latitude=latitude, description=description, metro=metro,
|
||||||
trashId=trashId, src=uploaded_name, booked_by=0)
|
trashId=trashId, src=uploaded_name, booked_by=0)
|
||||||
|
try:
|
||||||
db.add(temp_ancmt) # добавляем в бд
|
db.add(temp_ancmt) # добавляем в бд
|
||||||
await db.commit() # сохраняем изменения
|
await db.commit() # сохраняем изменения
|
||||||
await db.refresh(temp_ancmt) # обновляем состояние объекта
|
await db.refresh(temp_ancmt) # обновляем состояние объекта
|
||||||
return {"Answer" : True}
|
|
||||||
except:
|
except:
|
||||||
return {"Answer" : False}
|
raise HTTPException(status_code=500, detail="problem with adding object to db")
|
||||||
|
|
||||||
|
|
||||||
# Удалить объявления из базы
|
# Удалить объявления из базы
|
||||||
@app.delete("/api/announcement") #адрес объявления
|
@app.delete("/api/announcement") #адрес объявления
|
||||||
async def delete_from_db(announcement: pydantic_schemas.DelAnnouncement, db: Annotated[Session, Depends(auth_utils.get_session)]): # функция удаления объекта из БД
|
async def delete_from_db(announcement: pydantic_schemas.DelAnnouncement, db: Annotated[Session, Depends(auth_utils.get_session)]): # функция удаления объекта из БД
|
||||||
try:
|
|
||||||
# находим объект с заданным id в бд
|
# находим объект с заданным id в бд
|
||||||
#to_delete = db.query(orm_models.Announcement).filter(orm_models.Announcement.id==announcement.id).first()
|
#to_delete = db.query(orm_models.Announcement).filter(orm_models.Announcement.id==announcement.id).first()
|
||||||
query = await db.execute(select(orm_models.Announcement).where(orm_models.Announcement.id==announcement.id))
|
query = await db.execute(select(orm_models.Announcement).where(orm_models.Announcement.id==announcement.id))
|
||||||
to_delete = query.scalars().first()
|
to_delete = query.scalars().first()
|
||||||
|
if not to_delete:
|
||||||
|
raise HTTPException(status_code=404, detail="Item not found. Can't delete")
|
||||||
|
try:
|
||||||
await db.delete(to_delete) # удаление из БД
|
await db.delete(to_delete) # удаление из БД
|
||||||
await db.commit() # сохраняем изменения
|
await db.commit() # сохраняем изменения
|
||||||
return {"Answer" : True}
|
|
||||||
except:
|
except:
|
||||||
return {"Answer" : False}
|
raise HTTPException(status_code=500, detail="Problem with adding to database")
|
||||||
|
|
||||||
|
|
||||||
# Забронировать объявление
|
# Забронировать объявление
|
||||||
|
Loading…
x
Reference in New Issue
Block a user