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,