You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

67 lines
2.8 KiB

7 months ago
  1. from fastapi import Depends, APIRouter, status, Query, Path, HTTPException,Request
  2. from internal.models import *
  3. from internal.database import fetch_one, fetch_all, execute_query, response_success, raise_if_exists,raise_if_not_found
  4. from dependencies import get_current_active_user
  5. from limiter_config import limiter
  6. router = APIRouter(
  7. prefix="/comments",
  8. tags=['评论管理']
  9. )
  10. # 获取列表
  11. @router.get("/list")
  12. @limiter.limit("10/minute")
  13. async def comment_list(request: Request,):
  14. select_query = "SELECT id,blog_id,commentname,email,commenturl,commentcontent,create_at FROM comments;"
  15. comment_list = fetch_all(select_query)
  16. return response_success(comment_list, "comment get list success")
  17. # 新增
  18. @router.post("/add")
  19. @limiter.limit("10/minute")
  20. async def comment_add(request: Request,comment:Comment):
  21. insert_query="""INSERT INTO comments (blog_id,commentname,email,commenturl,commentcontent) VALUES(%s,%s,%s,%s)"""
  22. insert_value=(comment.blog_id,comment.commentname,comment.email,comment.commenturl,comment.commentcontent)
  23. execute_query(insert_query,insert_value)
  24. return response_success(data=comment,message="comment create success")
  25. # # 单条数据查询
  26. # @router.get("/list/search")
  27. # @limiter.limit("10/minute")
  28. # async def comment_search(request: Request,header:str=Query(description="评论标题")):
  29. # select_query="SELECT id,header,text,descr FROM comments WHERE 1=1 "
  30. # params=[]
  31. # if header:
  32. # select_query+="AND header LIKE %s"
  33. # params.append(f"%{header}%")
  34. # comment_query=fetch_all(select_query,params=params,fetchall=True)
  35. # return response_success(data=comment_query,message="comment search success")
  36. # # 评论修改
  37. # @router.put("/update/{id}")
  38. # @limiter.limit("10/minute")
  39. # async def comment_put(request: Request,comment:comment,id: str = Path(description="评论id"),_: User = Depends(get_current_active_user)):
  40. # update_query = (
  41. # "UPDATE comments SET header=%s,text=%s,descr=%s WHERE id=%s;"
  42. # )
  43. # update_data = (comment.header, comment.text,
  44. # comment.descr,id)
  45. # execute_query(update_query, update_data)
  46. # return response_success("comment update sucess")
  47. # 评论删除
  48. @router.delete("/delete/{id}")
  49. @limiter.limit("10/minute")
  50. async def comment_del(request: Request,id: str = Path(description="评论id")):
  51. update_query = (
  52. "DELETE FROM comments WHERE id=%s;"
  53. )
  54. update_data = (id)
  55. execute_query(update_query, update_data)
  56. return response_success()
  57. # # 根据id查询评论
  58. # @router.get("/list/search/{id}")
  59. # @limiter.limit("10/minute")
  60. # async def comment_search_id(request: Request,id:str=Path(description="评论id")):
  61. # select_query="SELECT * FROM comments WHERE id=%s"
  62. # comment_query=fetch_one(select_query,(id,))
  63. # return response_success(data=comment_query,message="comment search success")