FastAPI(七十三)实战开发《在线课程学习系统》接口开发-- 回复留言

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

     之前文章分享FastAPI(七十二)实战开发《在线课程学习系统》接口开发-- 留言列表开发,这次我们分享如何回复留言

按照惯例,我们还是去分析这里面的逻辑。

1.判断是否登录

2.用户登录后判断回复的留言信息是否存在

3.存在则回复

首先还是创建参数pydantic对象:message_schema.py

class RebackMessage(MessageContent):
    # 回复留言
    rebackid: int  # 消息id

其次,实现主要逻辑:message_method.py

def insert_reback_msg(reback: RebackMessage, send_user: User, db: Session):
    try:
        current_time = datetime.strftime(datetime.now(), "%Y-%m-%d %H:%M:%S")
        message = Message(
            send_user=send_user.id,
            accept_user=reback.accept_uid,
            send_time=current_time,
            pid=reback.rebackid,
            context=reback.content
        )
        db.add(message)
        db.commit()
        db.refresh(message)
    except:
        logger.warning(f"method insert_reback_msg method error: {traceback.format_exc()}")
        return response(code=100801, message="回复失败")


def reback_msg(reback_message: RebackMessage, send_user: UsernameRole, db: Session):
    """回复留言"""
    db_user = get_by_username(db, send_user.username)
    db_msg = get_msg_by_id(db, reback_message.rebackid)
    if not db_msg:
        return response(code=100804, message="回复留言不存在")
    insert_reback_msg(reback_message, db_user, db)
    return response()

最后,实现接口api,在message.py中

@message_router.post("/reback", summary="回复留言")
def reback(
        reback_message: RebackMessage,
        user: UsernameRole = Depends(get_current_user),
        db: Session = Depends(create_db)
):
    return reback_msg(reback_message, user, db)

测试

回复接口实现完成

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值