Удалено условие booked by в api/announcements
This commit is contained in:
parent
aaf0d20c65
commit
29d46be492
6
back/delete_all_poems.py
Normal file
6
back/delete_all_poems.py
Normal file
@ -0,0 +1,6 @@
|
||||
from .models import Poems
|
||||
from .db import database
|
||||
|
||||
to_delete = database.query(Poems).filter(Poems.id > 102)
|
||||
database.delete(to_delete)
|
||||
database.commit()
|
68
back/main.py
68
back/main.py
@ -20,7 +20,7 @@ import os
|
||||
|
||||
from .utils import *
|
||||
from .db import Base, engine, SessionLocal, database
|
||||
|
||||
from .service import add_poems_to_db, generate_poem
|
||||
from . import schemas, models
|
||||
|
||||
Base.metadata.create_all(bind=engine)
|
||||
@ -34,50 +34,11 @@ if not os.path.exists("./uploads"):
|
||||
os.mkdir("./uploads")
|
||||
app.mount("/uploads", StaticFiles(directory = "./uploads"))
|
||||
|
||||
# # Загружаем стихи
|
||||
# def add_poems_to_db(db: Session):
|
||||
# f1 = open('text121.txt', encoding='utf-8', mode='r')#открыть фаил для чтения на русском
|
||||
# for a in range(1, 102):
|
||||
# f1.seek(0)#перейти к началу
|
||||
# i=0
|
||||
# str1=""
|
||||
# stixi = ""
|
||||
# while str1 != f"стих {a}\n":
|
||||
# str1=f1.readline()
|
||||
# name=f1.readline()
|
||||
# # Цикл для склеивания стихотворения
|
||||
# while str1 != f"стих {a+1}\n":
|
||||
# str1=f1.readline()
|
||||
# if(str1 != f"стих {a+1}\n"):
|
||||
# stixi+=str1#удаление /n и заключение в список
|
||||
# poem = Poems(poem_name=name, poem_text=stixi)
|
||||
# # В конце каждой итерации добавляем в базу данных
|
||||
# db.add(poem)
|
||||
# db.commit()
|
||||
# db.refresh(poem)
|
||||
# # close the file
|
||||
# f1.close()
|
||||
|
||||
## Записываем стихи в базу данных, если их еще нет (запускать только если ).
|
||||
# # Записываем стихи в базу данных, если их еще нет (запускать только если стихов в базе нет).
|
||||
# add_poems_to_db(database)
|
||||
|
||||
|
||||
# Функция, создающая сессию БД при каждом запросе к нашему API.
|
||||
# Срабатывает до запуска остальных функций.
|
||||
# Всегда закрывает сессию при окончании работы с ней
|
||||
# @app.middleware("http")
|
||||
# async def db_session_middleware(request: Request, call_next):
|
||||
# response = Response("Internal server error", status_code=500)
|
||||
# try:
|
||||
# request.state.db = SessionLocal()
|
||||
# response = await call_next(request)
|
||||
# finally:
|
||||
# request.state.db.close()
|
||||
# return response
|
||||
|
||||
|
||||
@app.get("/api/announcements")#адрес объявлений
|
||||
def annoncements_list(user_id: int = None, metro: str = None, category: str = None, booked_by: int = 0):
|
||||
def annoncements_list(owner_id: int = None, metro: str = None, category: str = None, booked_by: int = 0):
|
||||
# Считываем данные из Body и отображаем их на странице.
|
||||
# В последствии будем вставлять данные в html-форму
|
||||
|
||||
@ -87,8 +48,8 @@ def annoncements_list(user_id: int = None, metro: str = None, category: str = No
|
||||
d = database.query(models.Announcement)
|
||||
e = database.query(models.Announcement)
|
||||
|
||||
if user_id != None:
|
||||
b = a.filter(models.Announcement.user_id == user_id)
|
||||
if owner_id != None:
|
||||
b = a.filter(models.Announcement.owner_id == owner_id)
|
||||
|
||||
if metro != None:
|
||||
c = a.filter(models.Announcement.metro == metro)
|
||||
@ -96,19 +57,16 @@ def annoncements_list(user_id: int = None, metro: str = None, category: str = No
|
||||
if category != None:
|
||||
d = a.filter(models.Announcement.category == category)
|
||||
|
||||
if booked_by != -1:
|
||||
e = a.filter(models.Announcement.booked_by == booked_by)
|
||||
|
||||
if not any([category, user_id, metro]) and booked_by == -1:
|
||||
if not any([category, owner_id, metro]) and booked_by == -1:
|
||||
result = a.all()
|
||||
|
||||
else:
|
||||
result = b.intersect(c, d, e).all()
|
||||
|
||||
return {"Success" : True, "list_of_announcements": result}
|
||||
return {"Success" : True, "list_of_announcements": result, "poem": generate_poem(database)}
|
||||
|
||||
|
||||
@app.get("/api/announcement")#адрес объявлений
|
||||
@app.get("/api/announcement")#адрес объявления
|
||||
def single_annoncement(user_id:int):
|
||||
# Считываем данные из Body и отображаем их на странице.
|
||||
# В последствии будем вставлять данные в html-форму
|
||||
@ -189,7 +147,7 @@ def create_user(data = Body()):
|
||||
database.commit()
|
||||
database.refresh(new_user) # обновляем состояние объекта
|
||||
return {"Success": True}
|
||||
return {"Success": False, "Message": "Пользователь с таким email уже зарегестрирован,"}
|
||||
return {"Success": False, "Message": "Пользователь с таким email уже зарегестрирован"}
|
||||
|
||||
|
||||
@app.post("/api/token", response_model=schemas.Token)
|
||||
@ -210,11 +168,9 @@ async def login_for_access_token(
|
||||
return {"access_token":access_token}
|
||||
|
||||
|
||||
# @app.get("/api/users/me/", response_model=schemas.User)
|
||||
# async def read_users_me( #!!!!!!!!!!!
|
||||
# current_user: Annotated[schemas.User, Depends(get_current_active_user)]
|
||||
# ):
|
||||
# return current_user
|
||||
@app.get("/api/users/me/", response_model=None) #
|
||||
async def read_users_me(current_user: Depends(get_current_active_user)): #Annotated[schemas.User, Depends(get_current_active_user)]):
|
||||
return current_user #schemas.User(id=current_user.id, email=current_user.email, name=current_user.name, surname=current_user.surname, disabled=current_user.disabled, items=current_user.items)
|
||||
|
||||
|
||||
# @app.get("/api/users/me/items/")
|
||||
|
@ -40,7 +40,7 @@ class User(BaseModel):
|
||||
email: str
|
||||
name: Union[str, None] = None
|
||||
surname: str
|
||||
disabled: Union[bool, None] = None
|
||||
disabled: Union[bool, None] = False
|
||||
items: list[Announcement] = []
|
||||
|
||||
class Config:
|
||||
|
@ -1,2 +1,50 @@
|
||||
from sqlalchemy.orm import Session
|
||||
from .models import Poems
|
||||
import random
|
||||
|
||||
|
||||
# Загружаем стихи
|
||||
def add_poems_to_db(db: Session):
|
||||
f1 = open('text121.txt', encoding='utf-8', mode='r')#открыть фаил для чтения на русском
|
||||
for a in range(1, 102):
|
||||
f1.seek(0)#перейти к началу
|
||||
i=0
|
||||
str1=""
|
||||
stixi = ""
|
||||
while str1 != f"стих {a}\n":
|
||||
str1=f1.readline()
|
||||
name=f1.readline()
|
||||
# Цикл для склеивания стихотворения
|
||||
while str1 != f"стих {a+1}\n":
|
||||
str1=f1.readline()
|
||||
if(str1 != f"стих {a+1}\n"):
|
||||
stixi+=str1#удаление /n и заключение в список
|
||||
poem = Poems(poem_name=name, poem_text=stixi)
|
||||
# В конце каждой итерации добавляем в базу данных
|
||||
db.add(poem)
|
||||
db.commit()
|
||||
db.refresh(poem)
|
||||
# close the file
|
||||
f1.close()
|
||||
|
||||
|
||||
def generate_poem(db: Session):
|
||||
# генерируем 1 случайное id и выбираем объект бд с этим id
|
||||
rand_id = random.randint(1, 102)
|
||||
poem = db.query(Poems).filter(Poems.id == rand_id).first()
|
||||
# возвращаем название и текст стихотворения
|
||||
return {"poem_name": poem.poem_name, "poem_text": poem.poem_text}
|
||||
|
||||
|
||||
# Функция, создающая сессию БД при каждом запросе к нашему API.
|
||||
# Срабатывает до запуска остальных функций.
|
||||
# Всегда закрывает сессию при окончании работы с ней
|
||||
# @app.middleware("http")
|
||||
# async def db_session_middleware(request: Request, call_next):
|
||||
# response = Response("Internal server error", status_code=500)
|
||||
# try:
|
||||
# request.state.db = SessionLocal()
|
||||
# response = await call_next(request)
|
||||
# finally:
|
||||
# request.state.db.close()
|
||||
# return response
|
@ -75,7 +75,7 @@ async def get_current_user(db: Session, token: Annotated[str, Depends(oauth2_sch
|
||||
user = get_user(db, email=token_data.email)
|
||||
if user is None:
|
||||
raise credentials_exception
|
||||
return schemas.User.from_orm(user)
|
||||
return user
|
||||
|
||||
|
||||
async def get_current_active_user(
|
||||
|
Loading…
x
Reference in New Issue
Block a user