Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Refactor] change temp user with parsing current user #41

Merged
merged 1 commit into from
Dec 4, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 21 additions & 12 deletions app/api/routes/frees.py
Original file line number Diff line number Diff line change
@@ -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()

Expand All @@ -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:
Expand All @@ -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)
Expand All @@ -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)
Expand All @@ -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)
Expand Down
34 changes: 25 additions & 9 deletions app/api/routes/markets.py
Original file line number Diff line number Diff line change
@@ -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()

Expand All @@ -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:
Expand All @@ -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)
Expand All @@ -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)
Expand All @@ -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)
Expand Down
34 changes: 22 additions & 12 deletions app/api/routes/rooms.py
Original file line number Diff line number Diff line change
@@ -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()

Expand All @@ -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:
Expand All @@ -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)
Expand All @@ -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)
Expand All @@ -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)
Expand Down
29 changes: 17 additions & 12 deletions app/crud/crud_posts.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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="[email protected]",
user_email=user.email,
category=obj_in.category,
)
if not s3_result:
Expand All @@ -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()
)
Expand All @@ -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="[email protected]",
user_email=user.email,
category=category,
)
result = get_market(
Expand All @@ -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="[email protected]",
user_email=user.email,
category=category,
)
result = get_free(db, post_id=post_id, post_data=post_data, file_list=file_list)
Expand All @@ -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="[email protected]",
user_email=user.email,
category=category,
)
result = get_room(db, post_id=post_id, post_data=post_data, file_list=file_list)
Expand All @@ -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":
Expand All @@ -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="[email protected]", # should be changed with user email
user_email=user.email, # should be changed with user email
category=category,
)
market_data = get_market(
Expand All @@ -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="[email protected]", # should be changed with user email
user_email=user.email, # should be changed with user email
category=category,
)
free_data = get_free(
Expand All @@ -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="[email protected]", # should be changed with user email
user_email=user.email, # should be changed with user email
category=category,
)
room_data = get_room(
Expand Down