|
- from fastapi import APIRouter,Request,HTTPException
- from pydantic import BaseModel
- from fastapi import APIRouter, Depends
- from pydantic import BaseModel, ValidationError
- from model.models import AgentConfig,validate_wxid,auth_required_time
- import threading
- import asyncio
- import time,random
- from typing import Dict, Tuple, Any
-
-
- label_router = APIRouter(prefix="/api/label")
-
- class LabelAddRequest(BaseModel):
- wxid: str
- labelName: str
-
- class LabelDelRequest(BaseModel):
- wxid: str
- labelIds: list
-
- class LabelListRequest(BaseModel):
- wxid: str
-
- class LabelModifyRequest(BaseModel):
- wxid: str
- labelIds: list
- wxIds: list
-
-
- @label_router.post("/add", response_model=None)
- async def add_label(request: Request, body: LabelAddRequest):
- wxid = body.wxid
- label_name = body.labelName
- if not wxid:
- return {"code": 400, "message": "wxid 不能为空"}
-
- k,loginfo=await request.app.state.gewe_service.get_login_info_by_wxid_async(wxid)
-
- if not k:
- return {"code":404,"message":f"{wxid} 没有对应的登录信息"}
-
- login_status=loginfo.get('status','0')
-
- if login_status != '1':
- return {"code": 401, "message": f"{wxid} 已经离线"}
-
- token_id=loginfo.get('tokenId','')
- app_id=loginfo.get('appId','')
-
- ret,msg,data=await request.app.state.gewe_service.label_add_async(token_id,app_id,label_name)
- if ret!=200:
- return {'code':ret,'message':msg}
-
- return { "labelName":data.get('labelName'),"labelId":data.get('labelId')}
-
-
- @label_router.post("/delete", response_model=None)
- async def delete_label(request: Request, body: LabelDelRequest, ):
- wxid = body.wxid
- label_ids= body.labelIds
-
- if not wxid:
- return {"code": 400, "message": "wxid 不能为空"}
-
- k,loginfo=await request.app.state.gewe_service.get_login_info_by_wxid_async(wxid)
-
- if not k:
- return {"code":404,"message":f"{wxid} 没有对应的登录信息"}
-
- login_status=loginfo.get('status','0')
-
- if login_status != '1':
- return {"code": 401, "message": f"{wxid} 已经离线"}
-
- token_id=loginfo.get('tokenId','')
- app_id=loginfo.get('appId','')
-
- ret,msg,data=await request.app.state.gewe_service.label_delete_async(token_id,app_id,label_ids)
-
- if ret!=200:
- return {'code':ret,'message':msg}
-
- return {"message":"操作成功"}
-
- @label_router.post("/list", response_model=None)
- async def list_label(request: Request, body: LabelListRequest, ):
- wxid = body.wxid
- if not wxid:
- return {"code": 400, "message": "wxid 不能为空"}
-
- k,loginfo=await request.app.state.gewe_service.get_login_info_by_wxid_async(wxid)
-
- if not k:
- return {"code":404,"message":f"{wxid} 没有对应的登录信息"}
-
- login_status=loginfo.get('status','0')
-
- if login_status != '1':
- return {"code": 401, "message": f"{wxid} 已经离线"}
-
- token_id=loginfo.get('tokenId','')
- app_id=loginfo.get('appId','')
-
- ret,msg,data=await request.app.state.gewe_service.label_list_async(token_id,app_id)
- if ret!=200:
- return {'code':ret,'message':msg}
-
- return {"labelList":data.get('labelList',[]) if data!=None else []}
-
-
- @label_router.post("/modifymembers", response_model=None)
- async def modifymembers_label(request: Request, body: LabelModifyRequest, ):
- wxid = body.wxid
- label_ids= body.labelIds
- wxids= body.wxIds
-
- wxid = body.wxid
- if not wxid:
- return {"code": 400, "message": "wxid 不能为空"}
-
- k,loginfo=await request.app.state.gewe_service.get_login_info_by_wxid_async(wxid)
-
- if not k:
- return {"code":404,"message":f"{wxid} 没有对应的登录信息"}
-
- login_status=loginfo.get('status','0')
-
- if login_status != '1':
- return {"code": 401, "message": f"{wxid} 已经离线"}
-
- token_id=loginfo.get('tokenId','')
- app_id=loginfo.get('appId','')
-
- ret,msg,data=await request.app.state.gewe_service.label_modify_members_async(token_id,app_id,label_ids,wxids)
- if ret!=200:
- return {'code':ret,'message':msg}
-
- return {"message":"操作成功"}
|