diff --git a/admin-frontend/src/features/subsribeConfigManager/SubscribeManager.tsx b/admin-frontend/src/features/subsribeConfigManager/SubscribeManager.tsx index 5842c35..7441221 100644 --- a/admin-frontend/src/features/subsribeConfigManager/SubscribeManager.tsx +++ b/admin-frontend/src/features/subsribeConfigManager/SubscribeManager.tsx @@ -1,8 +1,18 @@ import React from 'react'; +import { useGetSubsQuery, useDeleteSubMutation } from './subscribeConfigSlice'; export default function SubscribeManager() { + const { data: subs } = useGetSubsQuery(); + const [patchSub] = useDeleteSubMutation(); + + const createNewSub = () => { + patchSub({ target: '2773976700', platformName: 'weibo', groupNumber: 868610060 }).unwrap(); + }; return ( <> +
{ subs && JSON.stringify(subs) }
+
1
+ ); } diff --git a/admin-frontend/src/features/subsribeConfigManager/subscribeConfigSlice.ts b/admin-frontend/src/features/subsribeConfigManager/subscribeConfigSlice.ts index fa64d46..e3006e2 100644 --- a/admin-frontend/src/features/subsribeConfigManager/subscribeConfigSlice.ts +++ b/admin-frontend/src/features/subsribeConfigManager/subscribeConfigSlice.ts @@ -1,5 +1,7 @@ import { createApi } from '@reduxjs/toolkit/query/react'; -import { StatusResp, SubscribeConfig, SubscribeResp } from '../../utils/type'; +import { + StatusResp, SubmitParam, SubscribeResp, +} from '../../utils/type'; import { baseQueryWithAuth } from '../auth/authQuery'; export const subscribeApi = createApi({ @@ -11,23 +13,33 @@ export const subscribeApi = createApi({ query: () => '/subs', providesTags: ['Subscribe'], }), - newSub: builder.mutation({ - query: (config) => ({ + newSub: builder.mutation({ + query: ({ groupNumber, sub }) => ({ method: 'POST', - url: '/subs', - body: config, + url: `/subs?groupNumber=${groupNumber}`, + body: sub, }), invalidatesTags: ['Subscribe'], }), - updateSub: builder.mutation({ - query: (config) => ({ + updateSub: builder.mutation({ + query: ({ groupNumber, sub }) => ({ method: 'PATCH', - url: '/subs', - body: config, + url: `/subs?groupNumber=${groupNumber}`, + body: sub, }), invalidatesTags: ['Subscribe'], }), + deleteSub: builder.mutation({ + query: ({ groupNumber, target, platformName }) => ({ + method: 'DELETE', + url: `/subs?groupNumber=${groupNumber}&target=${target}&platformName=${platformName}`, + }), + invalidatesTags: ['Subscribe'], + }), }), }); -export const { useGetSubsQuery } = subscribeApi; +export const { + useGetSubsQuery, useNewSubMutation, useDeleteSubMutation, useUpdateSubMutation, +} = subscribeApi; diff --git a/admin-frontend/src/utils/type.ts b/admin-frontend/src/utils/type.ts index 3896043..b98a0f9 100644 --- a/admin-frontend/src/utils/type.ts +++ b/admin-frontend/src/utils/type.ts @@ -47,3 +47,8 @@ export interface StatusResp { status: number; msg: string; } + +export interface SubmitParam { + groupNumber: number; + sub: SubscribeConfig; +} diff --git a/src/plugins/nonebot_bison/admin_page/__init__.py b/src/plugins/nonebot_bison/admin_page/__init__.py index 4ea89d8..db90d84 100644 --- a/src/plugins/nonebot_bison/admin_page/__init__.py +++ b/src/plugins/nonebot_bison/admin_page/__init__.py @@ -66,7 +66,7 @@ def register_router_fastapi(driver: Driver, socketio): return obj async def check_group_permission( - groupNumber: str, token_obj: dict = Depends(get_jwt_obj) + groupNumber: int, token_obj: dict = Depends(get_jwt_obj) ): groups = token_obj["groups"] for group in groups: @@ -99,7 +99,7 @@ def register_router_fastapi(driver: Driver, socketio): return await get_target_name(platformName, target, jwt_obj) @app.post(SUBSCRIBE_URL, dependencies=[Depends(check_group_permission)]) - async def _add_group_subs(groupNumber: str, req: AddSubscribeReq): + async def _add_group_subs(groupNumber: int, req: AddSubscribeReq): return await add_group_sub( group_number=groupNumber, platform_name=req.platformName, @@ -110,7 +110,7 @@ def register_router_fastapi(driver: Driver, socketio): ) @app.patch(SUBSCRIBE_URL, dependencies=[Depends(check_group_permission)]) - async def _update_group_subs(groupNumber: str, req: AddSubscribeReq): + async def _update_group_subs(groupNumber: int, req: AddSubscribeReq): return await update_group_sub( group_number=groupNumber, platform_name=req.platformName, @@ -121,7 +121,7 @@ def register_router_fastapi(driver: Driver, socketio): ) @app.delete(SUBSCRIBE_URL, dependencies=[Depends(check_group_permission)]) - async def _del_group_subs(groupNumber: str, target: str, platformName: str): + async def _del_group_subs(groupNumber: int, target: str, platformName: str): return await del_group_sub(groupNumber, platformName, target) app.mount(URL_BASE, SinglePageApplication(directory=static_path), name="bison") diff --git a/src/plugins/nonebot_bison/admin_page/api.py b/src/plugins/nonebot_bison/admin_page/api.py index 9492e79..4f15036 100644 --- a/src/plugins/nonebot_bison/admin_page/api.py +++ b/src/plugins/nonebot_bison/admin_page/api.py @@ -89,7 +89,7 @@ async def get_subs_info(jwt_obj: dict): map( lambda sub: { "platformName": sub.target.platform_name, - "targetName": sub.target.name, + "targetName": sub.target.target_name, "cats": sub.categories, "tags": sub.tags, }, @@ -105,7 +105,7 @@ async def get_target_name(platform_name: str, target: str, jwt_obj: dict): async def add_group_sub( - group_number: str, + group_number: int, platform_name: str, target: str, target_name: str, @@ -124,7 +124,7 @@ async def add_group_sub( return {"status": 200, "msg": ""} -async def del_group_sub(group_number: str, platform_name: str, target: str): +async def del_group_sub(group_number: int, platform_name: str, target: str): try: await config.del_subscribe(int(group_number), "group", target, platform_name) except (NoSuchUserException, NoSuchSubscribeException): @@ -133,7 +133,7 @@ async def del_group_sub(group_number: str, platform_name: str, target: str): async def update_group_sub( - group_number: str, + group_number: int, platform_name: str, target: str, target_name: str,