FastAPI(八十二)實戰開發《在線課程學習系統》接口開發-- 課程上架下架

 一、課程上架

      我們梳理看下上架的邏輯

1.判斷是否登錄
2.判斷角色權限
3.判斷課程是否存在
4.判斷課程是否上架
5.判斷是否是自己的課程

  

        那麼我們看下如何實現?

@courseRouter.get(path="/onshelf/{id}")
async   def offshelf(id:int,user: UsernameRole = Depends(get_cure_user),
                   db: Session = Depends(get_db)):
    users = get_user_username(db, user.username)
    if user.role=="學生":
        return reponse(code=102104,message='權限不足',data='')
    couses=db_get_course_id(db,id)
    if not couses:
        return reponse(code=102101, message='課程不存在', data='')
    if couses.onsale is True:
        return reponse(code=102102, message='課程已經上架', data='')
    if couses.owner !=users.id:
        return reponse(code=102103, message='自己只能上架自己的課程', data='')
    couses.onsale=True
    db.commit()
    db.refresh(couses)
    return reponse(code=200, message='成功', data=couses.id)

   這樣我們就完成了課程的上架。有了上架肯定有下架的功能,我們看下如何實現下架。

 二、課程下架

 梳理下對應的邏輯

1.判斷是否登錄
2.判斷角色權限
3.判斷課程是否存在
4.判斷課程是否下架
5.判斷是否是自己的課程

  那麼對應的代碼如何實現呢?

@courseRouter.get(path="/offshelf/{id}")
async   def offshelf(id:int,user: UsernameRole = Depends(get_cure_user),
                   db: Session = Depends(get_db)):
    users = get_user_username(db, user.username)
    if user.role=="學生":
        return reponse(code=102204,message='權限不足',data='')
    couses=db_get_course_id(db,id)
    if not couses:
        return reponse(code=102201, message='課程不存在', data='')
    if couses.onsale is False:
        return reponse(code=102202, message='課程已經下架', data='')
    if couses.owner !=users.id:
        return reponse(code=102203, message='自己只能下架自己的課程', data='')
    couses.onsale=False
    db.commit()
    db.refresh(couses)
    return reponse(code=200, message='成功', data=couses.id)

  

這樣我們就完成了課程的下架的開發。

到這裏我們課程相關的所有的接口都完成了開發。接下來我們會分享測試部署相關。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章