UserDatabase->User, ForeignKey added

This commit is contained in:
2023-07-30 12:35:08 +03:00
parent 517609ddbd
commit aaf0d20c65
13 changed files with 92 additions and 277 deletions

View File

@ -20,9 +20,8 @@ import os
from .utils import *
from .db import Base, engine, SessionLocal, database
from .models import Announcement, Trashbox, UserDatabase, Poems
from . import schemas
from . import schemas, models
Base.metadata.create_all(bind=engine)
@ -82,23 +81,23 @@ def annoncements_list(user_id: int = None, metro: str = None, category: str = No
# Считываем данные из Body и отображаем их на странице.
# В последствии будем вставлять данные в html-форму
a = database.query(Announcement)
b = database.query(Announcement)
c = database.query(Announcement)
d = database.query(Announcement)
e = database.query(Announcement)
a = database.query(models.Announcement)
b = database.query(models.Announcement)
c = database.query(models.Announcement)
d = database.query(models.Announcement)
e = database.query(models.Announcement)
if user_id != None:
b = a.filter(Announcement.user_id == user_id)
b = a.filter(models.Announcement.user_id == user_id)
if metro != None:
c = a.filter(Announcement.metro == metro)
c = a.filter(models.Announcement.metro == metro)
if category != None:
d = a.filter(Announcement.category == category)
d = a.filter(models.Announcement.category == category)
if booked_by != -1:
e = a.filter(Announcement.booked_by == booked_by)
e = a.filter(models.Announcement.booked_by == booked_by)
if not any([category, user_id, metro]) and booked_by == -1:
result = a.all()
@ -114,7 +113,7 @@ def single_annoncement(user_id:int):
# Считываем данные из Body и отображаем их на странице.
# В последствии будем вставлять данные в html-форму
try:
annoncement = database.get(Announcement, user_id)
annoncement = database.get(models.Announcement, user_id)
return {"id": annoncement.id, "user_id": annoncement.user_id, "name": annoncement.name,
"category": annoncement.category, "best_by": annoncement.best_by, "address": annoncement.address,
"description": annoncement.description, "metro": annoncement.metro, "latitude": annoncement.latitude,
@ -145,7 +144,7 @@ trashId: Annotated[int, Form()] = None):
uploaded_name = "/uploads/"+destination.name
temp_ancmt = Announcement(user_id=userId, name=name, category=category, best_by=bestBy, address=address, longtitude=longtitude, latitude=latitude, description=description, src=uploaded_name, metro=metro, trashId=trashId, booked_by=-1)
temp_ancmt = models.Announcement(user_id=userId, name=name, category=category, best_by=bestBy, address=address, longtitude=longtitude, latitude=latitude, description=description, src=uploaded_name, metro=metro, trashId=trashId, booked_by=-1)
database.add(temp_ancmt) # добавляем в бд
database.commit() # сохраняем изменения
database.refresh(temp_ancmt) # обновляем состояние объекта
@ -158,7 +157,7 @@ trashId: Annotated[int, Form()] = None):
@app.delete("/api/announcement") #адрес объявления
def delete_from_db(annoncement: schemas.DelAnnouncement): # функция удаления объекта из БД
try:
to_delete = database.query(Announcement).filter(Announcement.id==announcement.id).first()
to_delete = database.query(models.Announcement).filter(models.Announcement.id==announcement.id).first()
database.delete(to_delete) # удаление из БД
database.commit() # сохраняем изменения
return {"Answer" : True}
@ -171,7 +170,7 @@ def delete_from_db(annoncement: schemas.DelAnnouncement): # функция у
def change_book_status(data: schemas.Book):
try:
# Находим объявление по данному id
announcement_to_change = database.query(Announcement).filter(Announcement.id == data.id).first()
announcement_to_change = database.query(models.Announcement).filter(Announcement.id == data.id).first()
# Изменяем поле booked_status на полученный id
announcement_to_change.booked_status += 1
return {"Success": True}
@ -183,8 +182,8 @@ def change_book_status(data: schemas.Book):
# {"id":1, "email":"poopka@mail.ru", "password":"good", "name":"Vasya", "surname":"Poopkin"}
@app.post("/api/signup")
def create_user(data = Body()):
if database.query(UserDatabase).filter(UserDatabase.email == data["email"]).first() == None:
new_user = UserDatabase(email=data["email"], hashed_password=get_password_hash(data["password"]),
if database.query(models.User).filter(models.User.email == data["email"]).first() == None:
new_user = models.User(email=data["email"], hashed_password=get_password_hash(data["password"]),
name=data["name"], surname=data["surname"])
database.add(new_user)
database.commit()
@ -193,7 +192,7 @@ def create_user(data = Body()):
return {"Success": False, "Message": "Пользователь с таким email уже зарегестрирован,"}
@app.post("/api/token", response_model=Token)
@app.post("/api/token", response_model=schemas.Token)
async def login_for_access_token(
form_data: Annotated[OAuth2PasswordRequestForm, Depends()]
):
@ -211,11 +210,11 @@ 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=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/items/")