1. 程式人生 > 其它 >FastAPI(七十八)實戰開發《線上課程學習系統》介面開發-- 評論

FastAPI(七十八)實戰開發《線上課程學習系統》介面開發-- 評論

 梳理下思路:

1.判斷是否登入
2.判斷課程是否存在
3.如果回覆查看回復的是否存在
4.校驗是否有許可權
5.評論成功

 

對應的pydantic類如下

class Coursecomment(BaseModel):
   id: int
   comments: str
   pid: Optional[int]

對應的crud

def createcomments(db: Session, cousecoment: Coursecomment, user: id):
    comments = Commentcourse(**cousecoment.dict())
    comments.users=user
    db.add(comments)
    db.commit()
    db.refresh(comments)
    return comments

  對應的程式碼實現。

@courseRouter.post(path="/comments")
async def comments(comments: Coursecomment,user: UsernameRole = Depends(get_cure_user),
                   db: Session = Depends(get_db)):
    if comments.comments == '':
        return reponse(code=101402, message='評論內容不能為空', data='')
    users = get_user_username(db, user.username)
    couses 
= db_get_course_id(db, comments.id) if couses: if couses.owner == users.id and comments.pid is None: return reponse(code=101404, message='自己不能評論自己的課程', data='') if comments.pid is not None: pid_course = get_cousecomments(db, comments.pid) if pid_course: createcomments(db, comments, users.id)
return reponse(code=200, message='成功', data='') return reponse(code=101405, message='回覆的評論不存在', data='') createcomments(db, comments, users.id) return reponse(code=200, message='成功', data='') return reponse(code=101401, message='課程id不存在', data='')