From dc38a20fdba029c0a6f0ac7ac6d44ab6758b6b84 Mon Sep 17 00:00:00 2001 From: Eeap Date: Sun, 3 Dec 2023 14:43:30 +0900 Subject: [PATCH] refactor: change temp user with parsing current user --- app/api/routes/frees.py | 33 +++++++++++++++++++++------------ app/api/routes/markets.py | 34 +++++++++++++++++++++++++--------- app/api/routes/rooms.py | 34 ++++++++++++++++++++++------------ app/crud/crud_posts.py | 29 +++++++++++++++++------------ 4 files changed, 85 insertions(+), 45 deletions(-) diff --git a/app/api/routes/frees.py b/app/api/routes/frees.py index 953ee9c..6d67b0f 100644 --- a/app/api/routes/frees.py +++ b/app/api/routes/frees.py @@ -1,11 +1,13 @@ from typing import Any, List, Optional -from fastapi import APIRouter, Depends, HTTPException, UploadFile +from fastapi import APIRouter, Depends, HTTPException, UploadFile, File from sqlalchemy.orm import Session from app.api.dependencies import database from app.models.domain import frees from app.crud import crud_frees, crud_posts from fastapi.encoders import jsonable_encoder from fastapi.responses import JSONResponse +from app.services.user_manager import current_active_user +from app.db.fastapi_user import User router = APIRouter() @@ -14,11 +16,12 @@ def create_free_posts( *, db: Session = Depends(database.get_db), - files: List[UploadFile] = None, - free_in: frees.FreeCreate = Depends() + files: List[UploadFile] = File(...), + free_in: frees.FreeCreate, + current_user: User = Depends(current_active_user) ) -> Any: # post data create - post_data = crud_posts.create(db=db, obj_in=free_in, files=files) + post_data = crud_posts.create(db=db, obj_in=free_in, files=files, user=current_user) # free data create free_data = crud_frees.create(db=db, post_id=post_data.id) if free_data and post_data: @@ -31,9 +34,14 @@ def create_free_posts( @router.get("/get/{page}") -def get_free_posts(*, db: Session = Depends(database.get_db), page: int) -> Any: +def get_free_posts( + *, + db: Session = Depends(database.get_db), + page: int, + current_user: User = Depends(current_active_user) +) -> Any: # free data get - free_data = crud_posts.get(db=db, category="free", post_id=page) + free_data = crud_posts.get(db=db, category="free", post_id=page, user=current_user) if free_data: res_data = jsonable_encoder(free_data) return JSONResponse(content=res_data) @@ -45,9 +53,13 @@ def get_free_posts(*, db: Session = Depends(database.get_db), page: int) -> Any: @router.get("/get_all") -def get_all_free_posts(*, db: Session = Depends(database.get_db)) -> Any: +def get_all_free_posts( + *, + db: Session = Depends(database.get_db), + current_user: User = Depends(current_active_user) +) -> Any: # free data get - free_data = crud_posts.get_all(db=db, category="free") + free_data = crud_posts.get_all(db=db, category="free", user=current_user) if free_data: res_data = jsonable_encoder(free_data) return JSONResponse(content=res_data) @@ -60,10 +72,7 @@ def get_all_free_posts(*, db: Session = Depends(database.get_db)) -> Any: @router.put("/update/{page}") def update_free_posts( - *, - db: Session = Depends(database.get_db), - page: int, - free_in: frees.FreeUpdate = Depends() + *, db: Session = Depends(database.get_db), page: int, free_in: frees.FreeUpdate ) -> Any: # free data update post_data = crud_posts.update(db=db, obj_in=free_in, post_id=page) diff --git a/app/api/routes/markets.py b/app/api/routes/markets.py index 9fb4243..fd32e0e 100644 --- a/app/api/routes/markets.py +++ b/app/api/routes/markets.py @@ -1,11 +1,13 @@ from typing import Any, List, Optional -from fastapi import APIRouter, Depends, HTTPException, UploadFile +from fastapi import APIRouter, Depends, HTTPException, UploadFile, File from sqlalchemy.orm import Session from app.api.dependencies import database from app.models.domain import markets from app.crud import crud_markets, crud_posts from fastapi.encoders import jsonable_encoder from fastapi.responses import JSONResponse +from app.services.user_manager import current_active_user +from app.db.fastapi_user import User router = APIRouter() @@ -14,11 +16,14 @@ def create_market_posts( *, db: Session = Depends(database.get_db), - files: List[UploadFile] = None, - market_in: markets.MarketCreate = Depends() + files: List[UploadFile] = File(...), + market_in: markets.MarketCreate, + current_user: User = Depends(current_active_user) ) -> Any: # post data create - post_data = crud_posts.create(db=db, obj_in=market_in, files=files) + post_data = crud_posts.create( + db=db, obj_in=market_in, files=files, user=current_user + ) # market data create market_data = crud_markets.create(db=db, obj_in=market_in, post_id=post_data.id) if market_data and post_data: @@ -31,9 +36,16 @@ def create_market_posts( @router.get("/get/{page}") -def get_market_posts(*, db: Session = Depends(database.get_db), page: int) -> Any: +def get_market_posts( + *, + db: Session = Depends(database.get_db), + page: int, + current_user: User = Depends(current_active_user) +) -> Any: # market data get - market_data = crud_posts.get(db=db, category="market", post_id=page) + market_data = crud_posts.get( + db=db, category="market", post_id=page, user=current_user + ) if market_data: res_data = jsonable_encoder(market_data) return JSONResponse(content=res_data) @@ -45,9 +57,13 @@ def get_market_posts(*, db: Session = Depends(database.get_db), page: int) -> An @router.get("/get_all") -def get_all_market_posts(*, db: Session = Depends(database.get_db)) -> Any: +def get_all_market_posts( + *, + db: Session = Depends(database.get_db), + current_user: User = Depends(current_active_user) +) -> Any: # market data get - market_data = crud_posts.get_all(db=db, category="market") + market_data = crud_posts.get_all(db=db, category="market", user=current_user) if market_data: res_data = jsonable_encoder(market_data) return JSONResponse(content=res_data) @@ -63,7 +79,7 @@ def update_market_posts( *, db: Session = Depends(database.get_db), page: int, - market_in: markets.MarketUpdate = Depends() + market_in: markets.MarketUpdate ) -> Any: # market data update post_data = crud_posts.update(db=db, obj_in=market_in, post_id=page) diff --git a/app/api/routes/rooms.py b/app/api/routes/rooms.py index 2db353a..22c33f9 100644 --- a/app/api/routes/rooms.py +++ b/app/api/routes/rooms.py @@ -1,11 +1,13 @@ from typing import Any, List, Optional -from fastapi import APIRouter, Depends, HTTPException, UploadFile +from fastapi import APIRouter, Depends, HTTPException, UploadFile, File from sqlalchemy.orm import Session from app.api.dependencies import database from app.models.domain import rooms from app.crud import crud_rooms, crud_posts from fastapi.encoders import jsonable_encoder from fastapi.responses import JSONResponse +from app.services.user_manager import current_active_user +from app.db.fastapi_user import User router = APIRouter() @@ -14,11 +16,13 @@ def create_room_posts( *, db: Session = Depends(database.get_db), - files: List[UploadFile] = None, - room_in: rooms.RoomCreate = Depends() + files: List[UploadFile] = File(...), + room_in: rooms.RoomCreate, + current_user: User = Depends(current_active_user) ) -> Any: + rooms.RoomCreate(title="test", content="test", price=1000, deposit=1000) # post data create - post_data = crud_posts.create(db=db, obj_in=room_in, files=files) + post_data = crud_posts.create(db=db, obj_in=room_in, files=files, user=current_user) # room data create room_data = crud_rooms.create(db=db, obj_in=room_in, post_id=post_data.id) if room_data and post_data: @@ -31,9 +35,14 @@ def create_room_posts( @router.get("/get/{page}") -def get_room_posts(*, db: Session = Depends(database.get_db), page: int) -> Any: +def get_room_posts( + *, + db: Session = Depends(database.get_db), + page: int, + current_user: User = Depends(current_active_user) +) -> Any: # room data get - room_data = crud_posts.get(db=db, category="room", post_id=page) + room_data = crud_posts.get(db=db, category="room", post_id=page, user=current_user) if room_data: res_data = jsonable_encoder(room_data) return JSONResponse(content=res_data) @@ -45,9 +54,13 @@ def get_room_posts(*, db: Session = Depends(database.get_db), page: int) -> Any: @router.get("/get_all") -def get_all_room_posts(*, db: Session = Depends(database.get_db)) -> Any: +def get_all_room_posts( + *, + db: Session = Depends(database.get_db), + current_user: User = Depends(current_active_user) +) -> Any: # room data get - room_data = crud_posts.get_all(db=db, category="room") + room_data = crud_posts.get_all(db=db, category="room", user=current_user) if room_data: res_data = jsonable_encoder(room_data) return JSONResponse(content=res_data) @@ -60,10 +73,7 @@ def get_all_room_posts(*, db: Session = Depends(database.get_db)) -> Any: @router.put("/update/{page}") def update_room_posts( - *, - db: Session = Depends(database.get_db), - page: int, - room_in: rooms.RoomUpdate = Depends() + *, db: Session = Depends(database.get_db), page: int, room_in: rooms.RoomUpdate ) -> Any: # market data update post_data = crud_posts.update(db=db, obj_in=room_in, post_id=page) diff --git a/app/crud/crud_posts.py b/app/crud/crud_posts.py index 8a8b125..5fcee3e 100644 --- a/app/crud/crud_posts.py +++ b/app/crud/crud_posts.py @@ -6,20 +6,25 @@ from fastapi import UploadFile from typing import List, Any import datetime -from app.models.domain import markets from app.crud.crud_markets import get as get_market, delete as market_delete from app.crud.crud_frees import get as get_free, delete as free_delete from app.crud.crud_rooms import get as get_room, delete as room_delete +from app.crud.crud_users import get_user_by_email +from app.db.fastapi_user import User -def create(db: Session, *, obj_in: posts.PostCreate, files: List[UploadFile]) -> Post: +def create( + db: Session, *, obj_in: posts.PostCreate, files: List[UploadFile], user: User +) -> Post: db_obj = Post( title=obj_in.title, content=obj_in.content, status=obj_in.status, category=obj_in.category, created_at=datetime.datetime.today(), - user_id=1, # should be changed with user email + user_id=get_user_by_email( + db=db, email=user.email + ).id, ) # image bool value insert db_obj.image = True if files else False @@ -31,7 +36,7 @@ def create(db: Session, *, obj_in: posts.PostCreate, files: List[UploadFile]) -> s3_result = s3_upload( files=files, post_id=db_obj.id, - user_email="sumink0903@gmail.com", + user_email=user.email, category=obj_in.category, ) if not s3_result: @@ -42,7 +47,7 @@ def create(db: Session, *, obj_in: posts.PostCreate, files: List[UploadFile]) -> return db_obj -def get(db: Session, *, category: str, post_id: int) -> Any | None: +def get(db: Session, *, category: str, post_id: int, user: User) -> Any | None: post_data = ( db.query(Post).filter(Post.id == post_id, Post.category == category).one() ) @@ -51,7 +56,7 @@ def get(db: Session, *, category: str, post_id: int) -> Any | None: if post_data.image: file_list = s3_get( post_id=post_data.id, - user_email="sumink0903@gmail.com", + user_email=user.email, category=category, ) result = get_market( @@ -63,7 +68,7 @@ def get(db: Session, *, category: str, post_id: int) -> Any | None: if post_data.image: file_list = s3_get( post_id=post_data.id, - user_email="sumink0903@gmail.com", + user_email=user.email, category=category, ) result = get_free(db, post_id=post_id, post_data=post_data, file_list=file_list) @@ -73,7 +78,7 @@ def get(db: Session, *, category: str, post_id: int) -> Any | None: if post_data.image: file_list = s3_get( post_id=post_data.id, - user_email="sumink0903@gmail.com", + user_email=user.email, category=category, ) result = get_room(db, post_id=post_id, post_data=post_data, file_list=file_list) @@ -82,7 +87,7 @@ def get(db: Session, *, category: str, post_id: int) -> Any | None: return None -def get_all(db: Session, category: str) -> list[Any]: +def get_all(db: Session, category: str, user: User) -> list[Any]: post_data = db.query(Post).filter(Post.category == category).all() result = [] if category == "market": @@ -91,7 +96,7 @@ def get_all(db: Session, category: str) -> list[Any]: if post.image: file_list = s3_get( post_id=post.id, - user_email="sumink0903@gmail.com", # should be changed with user email + user_email=user.email, # should be changed with user email category=category, ) market_data = get_market( @@ -104,7 +109,7 @@ def get_all(db: Session, category: str) -> list[Any]: if post.image: file_list = s3_get( post_id=post.id, - user_email="sumink0903@gmail.com", # should be changed with user email + user_email=user.email, # should be changed with user email category=category, ) free_data = get_free( @@ -117,7 +122,7 @@ def get_all(db: Session, category: str) -> list[Any]: if post.image: file_list = s3_get( post_id=post.id, - user_email="sumink0903@gmail.com", # should be changed with user email + user_email=user.email, # should be changed with user email category=category, ) room_data = get_room(