mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-15 13:00:25 +02:00
Add server permission management
This commit is contained in:
@@ -2,3 +2,8 @@ export * from './mutations/use-create-server';
|
||||
export * from './components/add-server-form';
|
||||
export * from './components/server-list';
|
||||
export * from './queries/use-server-list';
|
||||
export * from './mutations/create-server-folder-permission';
|
||||
export * from './mutations/delete-server-folder-permission';
|
||||
export * from './mutations/update-server-permission';
|
||||
export * from './mutations/create-server-permission';
|
||||
export * from './mutations/delete-server-permission';
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
import { useMutation, useQueryClient } from '@tanstack/react-query';
|
||||
import { AxiosError } from 'axios';
|
||||
import { api } from '@/renderer/api';
|
||||
import { queryKeys } from '@/renderer/api/query-keys';
|
||||
import { CreateServerFolderPermissionBody } from '@/renderer/api/servers.api';
|
||||
import { ApiError, NullResponse } from '@/renderer/api/types';
|
||||
import { UserListResponse } from '@/renderer/api/users.api';
|
||||
|
||||
export const useCreateServerFolderPermission = () => {
|
||||
const queryClient = useQueryClient();
|
||||
|
||||
const mutation = useMutation<
|
||||
NullResponse,
|
||||
AxiosError<ApiError>,
|
||||
{
|
||||
body: CreateServerFolderPermissionBody;
|
||||
query: { folderId: string; serverId: string };
|
||||
},
|
||||
{ previous: UserListResponse | undefined }
|
||||
>({
|
||||
mutationFn: ({ query, body }) =>
|
||||
api.servers.createServerFolderPermission(query, body),
|
||||
onSuccess: (_data, variables) => {
|
||||
queryClient.invalidateQueries(
|
||||
queryKeys.users.detail(variables.body.userId)
|
||||
);
|
||||
},
|
||||
});
|
||||
|
||||
return mutation;
|
||||
};
|
||||
@@ -0,0 +1,30 @@
|
||||
import { useMutation, useQueryClient } from '@tanstack/react-query';
|
||||
import { AxiosError } from 'axios';
|
||||
import { api } from '@/renderer/api';
|
||||
import { queryKeys } from '@/renderer/api/query-keys';
|
||||
import { CreateServerPermissionBody } from '@/renderer/api/servers.api';
|
||||
import { ApiError, NullResponse } from '@/renderer/api/types';
|
||||
|
||||
export const useCreateServerPermission = () => {
|
||||
const queryClient = useQueryClient();
|
||||
|
||||
const mutation = useMutation<
|
||||
NullResponse,
|
||||
AxiosError<ApiError>,
|
||||
{
|
||||
body: CreateServerPermissionBody;
|
||||
query: { serverId: string };
|
||||
},
|
||||
undefined
|
||||
>({
|
||||
mutationFn: ({ query, body }) =>
|
||||
api.servers.createServerPermission(query, body),
|
||||
onSuccess: (_data, variables) => {
|
||||
queryClient.invalidateQueries(
|
||||
queryKeys.users.detail(variables.body.userId)
|
||||
);
|
||||
},
|
||||
});
|
||||
|
||||
return mutation;
|
||||
};
|
||||
@@ -0,0 +1,26 @@
|
||||
import { useMutation, useQueryClient } from '@tanstack/react-query';
|
||||
import { AxiosError } from 'axios';
|
||||
import { api } from '@/renderer/api';
|
||||
import { queryKeys } from '@/renderer/api/query-keys';
|
||||
import { ApiError, NullResponse } from '@/renderer/api/types';
|
||||
|
||||
export const useDeleteServerFolderPermission = () => {
|
||||
const queryClient = useQueryClient();
|
||||
|
||||
const mutation = useMutation<
|
||||
NullResponse,
|
||||
AxiosError<ApiError>,
|
||||
{
|
||||
query: { folderId: string; folderPermissionId: string; serverId: string };
|
||||
userId: string;
|
||||
},
|
||||
undefined
|
||||
>({
|
||||
mutationFn: ({ query }) => api.servers.deleteServerFolderPermission(query),
|
||||
onSuccess: (_data, variables) => {
|
||||
queryClient.invalidateQueries(queryKeys.users.detail(variables.userId));
|
||||
},
|
||||
});
|
||||
|
||||
return mutation;
|
||||
};
|
||||
@@ -0,0 +1,23 @@
|
||||
import { useMutation, useQueryClient } from '@tanstack/react-query';
|
||||
import { AxiosError } from 'axios';
|
||||
import { api } from '@/renderer/api';
|
||||
import { queryKeys } from '@/renderer/api/query-keys';
|
||||
import { ApiError, NullResponse } from '@/renderer/api/types';
|
||||
|
||||
export const useDeleteServerPermission = () => {
|
||||
const queryClient = useQueryClient();
|
||||
|
||||
const mutation = useMutation<
|
||||
NullResponse,
|
||||
AxiosError<ApiError>,
|
||||
{ query: { permissionId: string; serverId: string }; userId: string },
|
||||
undefined
|
||||
>({
|
||||
mutationFn: ({ query }) => api.servers.deleteServerPermission(query),
|
||||
onSuccess: (_data, variables) => {
|
||||
queryClient.invalidateQueries(queryKeys.users.detail(variables.userId));
|
||||
},
|
||||
});
|
||||
|
||||
return mutation;
|
||||
};
|
||||
@@ -0,0 +1,29 @@
|
||||
import { useMutation, useQueryClient } from '@tanstack/react-query';
|
||||
import { AxiosError } from 'axios';
|
||||
import { api } from '@/renderer/api';
|
||||
import { queryKeys } from '@/renderer/api/query-keys';
|
||||
import { UpdateServerPermissionBody } from '@/renderer/api/servers.api';
|
||||
import { ApiError, NullResponse } from '@/renderer/api/types';
|
||||
|
||||
export const useUpdateServerPermission = () => {
|
||||
const queryClient = useQueryClient();
|
||||
|
||||
const mutation = useMutation<
|
||||
NullResponse,
|
||||
AxiosError<ApiError>,
|
||||
{
|
||||
body: UpdateServerPermissionBody;
|
||||
query: { permissionId: string; serverId: string };
|
||||
userId: string;
|
||||
},
|
||||
undefined
|
||||
>({
|
||||
mutationFn: ({ query, body }) =>
|
||||
api.servers.updateServerPermission(query, body),
|
||||
onSuccess: (_data, variables) => {
|
||||
queryClient.invalidateQueries(queryKeys.users.detail(variables.userId));
|
||||
},
|
||||
});
|
||||
|
||||
return mutation;
|
||||
};
|
||||
Reference in New Issue
Block a user