forked from polka_billy/porridger
Вовины наработки по мусоркам(почему-то не работают
This commit is contained in:
18
back/api.py
18
back/api.py
@ -205,9 +205,10 @@ def poems_to_front(db: Annotated[Session, Depends(utils.get_db)]): # db: Annotat
|
||||
|
||||
|
||||
@app.get("/api/trashbox", response_model=List[schemas.TrashboxResponse])
|
||||
def get_trashboxes(Lat:float, Lng:float, Category:str):#крутая функция для работы с api
|
||||
def get_trashboxes(Lat:float, Lng:float, Category):#крутая функция для работы с api
|
||||
# json, передаваемый стороннему API
|
||||
head = {'Authorization': 'Bearer {}'.format(service.my_token)}
|
||||
|
||||
# Данные пользователя (местоположение, количество мусорок, которое пользователь хочет видеть)
|
||||
my_data={
|
||||
'x' : f"{Lng}",
|
||||
@ -215,9 +216,8 @@ def get_trashboxes(Lat:float, Lng:float, Category:str):#крутая функц
|
||||
'limit' : '1'
|
||||
}
|
||||
|
||||
|
||||
list_of_category = [] # лист по которому будет отбираться uniq_trashboxes
|
||||
match Category:
|
||||
# Перевод категории с фронта на категорию с сайта
|
||||
match Category:
|
||||
case "PORRIDGE":
|
||||
list_of_category=["Опасные отходы", "Иное"]
|
||||
case "Конспекты":
|
||||
@ -235,10 +235,10 @@ def get_trashboxes(Lat:float, Lng:float, Category:str):#крутая функц
|
||||
case "Всякая всячина":
|
||||
list_of_category=["Металл", "Бумага", "Стекло","Иное", "Тетра Пак", "Батарейки", "Крышечки", "Шины", "Опасные отходы", "Лампочки", "Пластик"]
|
||||
|
||||
|
||||
# Получение ответа от стороннего апи
|
||||
response = requests.post(f"{service.BASE_URL}/nearest_recycling/get", headers=head, data=my_data)
|
||||
infos = response.json()
|
||||
|
||||
# Чтение ответа
|
||||
trashboxes = []
|
||||
for trashbox in infos["results"]:
|
||||
temp_dict = {}
|
||||
@ -246,12 +246,14 @@ def get_trashboxes(Lat:float, Lng:float, Category:str):#крутая функц
|
||||
coord_list = obj["geometry"]
|
||||
temp_dict["Lat"] = coord_list["coordinates"][1]
|
||||
temp_dict["Lng"] = coord_list["coordinates"][0]
|
||||
|
||||
properties = obj["properties"]
|
||||
temp_dict["Name"] = properties["title"]
|
||||
temp_dict["Address"] = properties["address"]
|
||||
temp_dict["Categories"] = properties["content_text"].split(',')
|
||||
trashboxes.append(temp_dict)
|
||||
|
||||
for a in list_of_category:
|
||||
if a in temp_dict["Categories"] and temp_dict not in trashboxes:
|
||||
trashboxes.append(temp_dict)
|
||||
|
||||
uniq_trashboxes = [schemas.TrashboxResponse(**ast.literal_eval(el1)) for el1 in set([str(el2) for el2 in trashboxes])]
|
||||
return uniq_trashboxes
|
||||
|
Reference in New Issue
Block a user