from typing import Optional from fastapi import APIRouter from configs.config import NICKNAME from models.group_info import GroupInfo from services.log import logger from utils.manager import requests_manager from utils.utils import get_bot from ..base_model import RequestResult, Result from ..models.params import HandleRequest from ..utils import authentication router = APIRouter() @router.get("/get_request", dependencies=[authentication()]) def _(request_type: Optional[str]) -> Result: try: req_data = requests_manager.get_data() req_list = [] if request_type in ["group", "private"]: req_data = req_data[request_type] for x in req_data: req_data[x]["oid"] = x req_list.append(RequestResult(**req_data[x])) req_list.reverse() except Exception as e: logger.error("调用API错误", "/get_request", e=e) return Result.fail(f"{type(e)}: {e}") return Result.ok(req_list, f"{NICKNAME}带来了最新的数据!") @router.delete("/clear_request", dependencies=[authentication()]) def _(request_type: Optional[str]) -> Result: """ 清空请求 :param type_: 类型 """ requests_manager.clear(request_type) return Result.ok(info="成功清除了数据") # @router.post("/handle_request", dependencies=[authentication()]) # async def _(parma: HandleRequest) -> Result: # """ # 操作请求 # :param parma: 参数 # """ # try: # result = "操作成功!" # flag = 3 # if bot := get_bot(): # if parma.handle == "approve": # if parma.type == "group": # if rid := requests_manager.get_group_id(parma.id): # # await GroupInfo.update_or_create(defaults={"group_flag": 1}, ) # if group := await GroupInfo.get_or_none(group_id=str(rid)): # await group.update_or_create(group_flag=1) # else: # group_info = await bot.get_group_info(group_id=rid) # await GroupInfo.update_or_create( # group_id=str(group_info["group_id"]), # defaults={ # "group_name": group_info["group_name"], # "max_member_count": group_info["max_member_count"], # "member_count": group_info["member_count"], # "group_flag": 1, # }, # ) # flag = await requests_manager.approve(bot, parma.id, parma.type) # elif parma.handle == "refuse": # flag = await requests_manager.refused(bot, parma.id, parma.type) # elif parma.handle == "delete": # requests_manager.delete_request(parma.id, parma.type) # if parma.handle != "delete": # if flag == 1: # result = "该请求已失效" # requests_manager.delete_request(parma.id, parma.type) # elif flag == 2: # result = "未找到此Id" # return Result.ok(result, "成功处理了请求!") # return Result.fail("Bot未连接") # except Exception as e: # logger.error("调用API错误", "/get_group", e=e) # return Result.fail(f"{type(e)}: {e}")