diff --git a/app/api/routes/markets.py b/app/api/routes/markets.py index be8c7d7..958260a 100644 --- a/app/api/routes/markets.py +++ b/app/api/routes/markets.py @@ -34,7 +34,7 @@ def create_market_posts( @router.get("/get/{category}/{page}") def get_market_posts( *, db: Session = Depends(database.get_db), category: str, page: int -) -> tuple[Any, list[UploadFile] | list[Any]]: +) -> Any: # market data get market_data = crud_posts.get(db=db, category=category, post_id=page) if market_data: @@ -45,3 +45,17 @@ def get_market_posts( status_code=500, detail="getting market data failed", ) + + +@router.get("/get_all") +def get_all_market_posts(*, db: Session = Depends(database.get_db)) -> Any: + # market data get + market_data = crud_posts.get_all(db=db, category="market") + if market_data: + res_data = jsonable_encoder(market_data) + return JSONResponse(content=res_data) + else: + raise HTTPException( + status_code=500, + detail="getting all market data failed", + ) diff --git a/app/crud/crud_posts.py b/app/crud/crud_posts.py index 09afa22..09d34a7 100644 --- a/app/crud/crud_posts.py +++ b/app/crud/crud_posts.py @@ -40,10 +40,10 @@ def create(db: Session, *, obj_in: posts.PostCreate, files: List[UploadFile]) -> return db_obj -def get( - db: Session, *, category: str, post_id: int -) -> list[markets.MarketGet] | list[Any]: - post_data = db.query(Post).filter(Post.id == post_id).one() +def get(db: Session, *, category: str, post_id: int) -> markets.MarketGet | None: + post_data = ( + db.query(Post).filter(Post.id == post_id, Post.category == category).one() + ) if category == "market": if post_data.image: file_list = s3_get( @@ -61,3 +61,22 @@ def get( else: return None + + +def get_all(db: Session, category: str) -> list[markets.MarketGet] | list[Any]: + post_data = db.query(Post).filter(Post.category == category).all() + result = [] + if category == "market": + for post in post_data: + file_list = [] + if post.image: + file_list = s3_get( + post_id=post.id, + user_email="sumink0903@gmail.com", # should be changed with user email + category=category, + ) + market_data = get_market( + db, post_id=post.id, post_data=post, file_list=file_list + ) + result.append(market_data) + return result