Skip to content
Snippets Groups Projects
Select Git revision
  • 1665a5a3bf344371a97dbd4efa60d7762f005799
  • master default
2 results

utils.cpython-38.pyc

Blame
  • Forked from Automatants / Facial expression detection
    Source project has a limited visibility.
    comments.py 1.15 KiB
    from fastapi import APIRouter, Body, Cookie, Depends
    from sqlalchemy.orm import Session
    from typing import List
    import json
    
    from db import schemas, crud
    from db.database import get_db
    from routers.websocket import manager
    
    
    router = APIRouter(prefix="/api", tags=["comments"])
    
    
    @router.get('/{place}/comments', response_model=List[schemas.Comment])
    async def get_comments(place: str, page: int = 1, db: Session = Depends(get_db)):
        return crud.get_comments(place, page, db)
    
    
    @router.post('/{place}/comments', response_model=schemas.Comment)
    async def create_comment(place: str, connect_id: str = Cookie(...), comment: schemas.CommentBase = Body(...), db: Session = Depends(get_db)):
        user = crud.get_user(connect_id, db)
        if user:
            saved_comment = crud.create_comment(user, place, comment, db)
            await manager.broadcast(json.dumps({"type": "comment", "comment": saved_comment.dict()}, default=str))
            return saved_comment
        else:
            raise Exception
    
    
    @router.delete('/comments/{id}', response_model=None)
    async def delete_comment(id: int, db: Session = Depends(get_db)):
        return crud.delete_comment(id, db)