update api

This commit is contained in:
felinae98 2022-08-01 22:16:03 +08:00
parent ee01773e64
commit b8af6d0024
No known key found for this signature in database
GPG Key ID: 00C8B010587FF610
5 changed files with 45 additions and 18 deletions

View File

@ -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 (
<>
<div>{ subs && JSON.stringify(subs) }</div>
<div>1</div>
<button onClick={() => createNewSub()} type="button">new</button>
</>
);
}

View File

@ -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<StatusResp, SubscribeConfig>({
query: (config) => ({
newSub: builder.mutation<StatusResp, SubmitParam>({
query: ({ groupNumber, sub }) => ({
method: 'POST',
url: '/subs',
body: config,
url: `/subs?groupNumber=${groupNumber}`,
body: sub,
}),
invalidatesTags: ['Subscribe'],
}),
updateSub: builder.mutation<StatusResp, SubscribeResp>({
query: (config) => ({
updateSub: builder.mutation<StatusResp, SubmitParam>({
query: ({ groupNumber, sub }) => ({
method: 'PATCH',
url: '/subs',
body: config,
url: `/subs?groupNumber=${groupNumber}`,
body: sub,
}),
invalidatesTags: ['Subscribe'],
}),
deleteSub: builder.mutation<StatusResp,
{ groupNumber: number; target: string; platformName: string }>({
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;

View File

@ -47,3 +47,8 @@ export interface StatusResp {
status: number;
msg: string;
}
export interface SubmitParam {
groupNumber: number;
sub: SubscribeConfig;
}

View File

@ -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")

View File

@ -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,