• 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)
    

      

    这样我们就完成了课程的下架的开发。

    到这里我们课程相关的所有的接口都完成了开发。接下来我们会分享测试部署相关。

  • 相关阅读:
    书_Delphi
    20160226
    SVG_style_script
    辅助
    电影_Z
    Windows下软件调试
    20160221
    Qt5.3.2_vs10_发布时所需DLL的路径
    android intent 传数据
    android 消息机制
  • 原文地址:https://www.cnblogs.com/leiziv5/p/16098461.html
Copyright © 2020-2023  润新知