源码见:"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)
测试
回复接口实现完成