29 lines
797 B
Python
29 lines
797 B
Python
|
import pandas as pd
|
||
|
from fastapi import APIRouter
|
||
|
from typing import List
|
||
|
|
||
|
from enums import TypeMood
|
||
|
from schemas import Review
|
||
|
|
||
|
router = APIRouter(
|
||
|
prefix="/reviews",
|
||
|
tags=["Reviews"],
|
||
|
)
|
||
|
|
||
|
@router.get("/{rubrics}")
|
||
|
def get_reviews(rubrics: str,
|
||
|
type_mood: TypeMood) -> list[Review]:
|
||
|
if type_mood == TypeMood.NEGATIVE:
|
||
|
df = pd.read_csv("./sity/sity_negative.csv")
|
||
|
else:
|
||
|
df = pd.read_csv("./sity/sity_positive.csv")
|
||
|
df = df.fillna("")
|
||
|
filtered_df = df[df["rubrics"] == rubrics]
|
||
|
shuffled_df = filtered_df.sample(frac=1)
|
||
|
sorted_df = shuffled_df.sort_values(by="rating", ascending=False)
|
||
|
unique_reviews = sorted_df.drop_duplicates(subset="city")
|
||
|
unique_reviews = unique_reviews.head(10).to_dict(orient="records")
|
||
|
return unique_reviews
|
||
|
|
||
|
|