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