lerafoxqueen/LeraFoxQueen/router.py

73 lines
2.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from fastapi import (
APIRouter,
Body,
# Cookie,
# Depends,
# FastAPI,
# Form,
# Header,
# HTTPException,
# Request,
)
from fastapi.responses import JSONResponse
from .repository import DatingRepository
from .schemas import SDating, SDatingAdd, SDatingId
# async def get_body(request: Request):
# content_type = request.headers.get('Content-Type')
# if content_type is None:
# raise HTTPException(status_code=400, detail='No Content-Type provided!')
# elif content_type == 'application/json':
# try:
# return await request.json()
# except JSONDecodeError:
# raise HTTPException(status_code=400, detail='Invalid JSON data')
# elif (content_type == 'application/x-www-form-urlencoded' or
# content_type.startswith('multipart/form-data')):
# try:
# return await request.form()
# except Exception:
# raise HTTPException(status_code=400, detail='Invalid Form data')
# else:
# raise HTTPException(status_code=400, detail='Content-Type not supported!')
router = APIRouter(
prefix="/datings",
tags=["Знакомства"],
)
@router.post(
"/add",
description="Добавляет знакомство в базу данных, а еще ....",
summary="Добавляет знакомство в базу данных",
response_description="Вот такой ответ придет",
)
# async def add_dating(dating: SDatingAdd = Body()) -> SDatingId:
# new_dating_id = await DatingRepository.add_dating(dating)
# return {"id": new_dating_id} # type: ignore
async def add_dating(dating: SDatingAdd = Body()) -> JSONResponse:
new_dating_id = await DatingRepository.add_dating(dating)
content = {"id": new_dating_id} # type: ignore
response = JSONResponse(content=content)
return response
@router.get("/get")
async def get_datings() -> list[SDating]:
datings = await DatingRepository.get_datings()
return datings
# async def get_datings() -> JSONResponse:
# datings = await DatingRepository.get_datings()
# content = dumps(datings, default=lambda o: o.__dict__) # type: ignore
# response = JSONResponse(content=content)
# response.set_cookie(key="fakesession", value="fake-cookie-session-value")
# return response