FastAPI(八十二)实战开发《在线课程学习系统》接口开发-- 课程上架下架

源码见:"fastapi_study_road-learning_system_online_courses: fastapi框架实战之--在线课程学习系统"

课程上架/下架

1、是否登录

2、角色权限

3、课程是否存在

4、是否是自己的课程

4、课程如果是上架状态,则下架,反之,则上架

具体逻辑实现

def onsale_method(course_id: int, user: UsernameRole, db: Session):
    """上架/下架 课程"""
    if user.role == "学生":
        return response(code=102101, message="权限不足")
    db_course = get_course_by_id(db, course_id)
    if not db_course:
        return response(code=102102, message="课程不存在")
    db_user = get_by_username(db, user.username)
    if db_user.id != db_course.owner:
        return response(code=102103, message="自己只能上架或下架自己的课程")
    try:
        if db_course.onsale:  # 下架
            db_course.onsale = False
        else:  # 上架
            db_course.onsale = True
        db.commit()
        db.refresh(db_course)
    except:
        logger.warning(f"method onsale_method error: {traceback.format_exc()}")
        if db_course.onsale:
            msg = "下架失败"
        else:
            msg = "上架失败"
        return response(code=102104, message=msg)
    return response()

接口api

@course_router.post("/onsale", summary="上架/下架 课程")
def onsale(course_id: int, user: UsernameRole = Depends(get_current_user), db: Session = Depends(create_db)):
    return onsale_method(course_id, user, db)

测试

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值