forked from polka_billy/porridger
UserDatabase->User, ForeignKey added
This commit is contained in:
45
back/main.py
45
back/main.py
@ -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/")
|
||||
|
Reference in New Issue
Block a user