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.

label_endpoint.py 4.2KB

2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
2 주 전
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. from fastapi import APIRouter,Request,HTTPException
  2. from pydantic import BaseModel
  3. from fastapi import APIRouter, Depends
  4. from pydantic import BaseModel, ValidationError
  5. from model.models import AgentConfig,validate_wxid,auth_required_time
  6. import threading
  7. import asyncio
  8. import time,random
  9. from typing import Dict, Tuple, Any
  10. label_router = APIRouter(prefix="/api/label")
  11. class LabelAddRequest(BaseModel):
  12. wxid: str
  13. labelName: str
  14. class LabelDelRequest(BaseModel):
  15. wxid: str
  16. labelIds: list
  17. class LabelListRequest(BaseModel):
  18. wxid: str
  19. class LabelModifyRequest(BaseModel):
  20. wxid: str
  21. labelIds: list
  22. wxIds: list
  23. @label_router.post("/add", response_model=None)
  24. async def add_label(request: Request, body: LabelAddRequest):
  25. wxid = body.wxid
  26. label_name = body.labelName
  27. if not wxid:
  28. return {"code": 400, "message": "wxid 不能为空"}
  29. k,loginfo=await request.app.state.gewe_service.get_login_info_by_wxid_async(wxid)
  30. if not k:
  31. return {"code":404,"message":f"{wxid} 没有对应的登录信息"}
  32. login_status=loginfo.get('status','0')
  33. if login_status != '1':
  34. return {"code": 401, "message": f"{wxid} 已经离线"}
  35. token_id=loginfo.get('tokenId','')
  36. app_id=loginfo.get('appId','')
  37. ret,msg,data=await request.app.state.gewe_service.label_add_async(token_id,app_id,label_name)
  38. if ret!=200:
  39. return {'code':ret,'message':msg}
  40. return { "labelName":data.get('labelName'),"labelId":data.get('labelId')}
  41. @label_router.post("/delete", response_model=None)
  42. async def delete_label(request: Request, body: LabelDelRequest, ):
  43. wxid = body.wxid
  44. label_ids= body.labelIds
  45. if not wxid:
  46. return {"code": 400, "message": "wxid 不能为空"}
  47. k,loginfo=await request.app.state.gewe_service.get_login_info_by_wxid_async(wxid)
  48. if not k:
  49. return {"code":404,"message":f"{wxid} 没有对应的登录信息"}
  50. login_status=loginfo.get('status','0')
  51. if login_status != '1':
  52. return {"code": 401, "message": f"{wxid} 已经离线"}
  53. token_id=loginfo.get('tokenId','')
  54. app_id=loginfo.get('appId','')
  55. ret,msg,data=await request.app.state.gewe_service.label_delete_async(token_id,app_id,label_ids)
  56. if ret!=200:
  57. return {'code':ret,'message':msg}
  58. return {"message":"操作成功"}
  59. @label_router.post("/list", response_model=None)
  60. async def list_label(request: Request, body: LabelListRequest, ):
  61. wxid = body.wxid
  62. if not wxid:
  63. return {"code": 400, "message": "wxid 不能为空"}
  64. k,loginfo=await request.app.state.gewe_service.get_login_info_by_wxid_async(wxid)
  65. if not k:
  66. return {"code":404,"message":f"{wxid} 没有对应的登录信息"}
  67. login_status=loginfo.get('status','0')
  68. if login_status != '1':
  69. return {"code": 401, "message": f"{wxid} 已经离线"}
  70. token_id=loginfo.get('tokenId','')
  71. app_id=loginfo.get('appId','')
  72. ret,msg,data=await request.app.state.gewe_service.label_list_async(token_id,app_id)
  73. if ret!=200:
  74. return {'code':ret,'message':msg}
  75. return {"labelList":data.get('labelList',[]) if data!=None else []}
  76. @label_router.post("/modifymembers", response_model=None)
  77. async def modifymembers_label(request: Request, body: LabelModifyRequest, ):
  78. wxid = body.wxid
  79. label_ids= body.labelIds
  80. wxids= body.wxIds
  81. wxid = body.wxid
  82. if not wxid:
  83. return {"code": 400, "message": "wxid 不能为空"}
  84. k,loginfo=await request.app.state.gewe_service.get_login_info_by_wxid_async(wxid)
  85. if not k:
  86. return {"code":404,"message":f"{wxid} 没有对应的登录信息"}
  87. login_status=loginfo.get('status','0')
  88. if login_status != '1':
  89. return {"code": 401, "message": f"{wxid} 已经离线"}
  90. token_id=loginfo.get('tokenId','')
  91. app_id=loginfo.get('appId','')
  92. ret,msg,data=await request.app.state.gewe_service.label_modify_members_async(token_id,app_id,label_ids,wxids)
  93. if ret!=200:
  94. return {'code':ret,'message':msg}
  95. return {"message":"操作成功"}