mirror of
https://github.com/jeffvli/feishin.git
synced 2026-05-13 20:10:07 +02:00
Add server map route
This commit is contained in:
@@ -18,6 +18,7 @@ export const queryKeys = {
|
||||
},
|
||||
servers: {
|
||||
list: (params?: any) => ['servers', 'list', params] as const,
|
||||
map: () => ['servers', 'map'] as const,
|
||||
root: ['servers'],
|
||||
},
|
||||
tasks: {
|
||||
|
||||
@@ -2,12 +2,22 @@ import {
|
||||
BaseResponse,
|
||||
NullResponse,
|
||||
Server,
|
||||
ServerMap,
|
||||
ServerPermissionType,
|
||||
ServerType,
|
||||
ServerUrl,
|
||||
} from '@/renderer/api/types';
|
||||
import { ax } from '@/renderer/lib/axios';
|
||||
|
||||
export type ServerMapResponse = BaseResponse<ServerMap>;
|
||||
|
||||
const getServerMap = async (signal?: AbortSignal) => {
|
||||
const { data } = await ax.get<ServerMapResponse>('/servers/map', {
|
||||
signal,
|
||||
});
|
||||
return data;
|
||||
};
|
||||
|
||||
export type ServerListResponse = BaseResponse<Server[]>;
|
||||
|
||||
const getServerList = async (
|
||||
@@ -238,6 +248,7 @@ export const serversApi = {
|
||||
enableUrl,
|
||||
fullScan,
|
||||
getServerList,
|
||||
getServerMap,
|
||||
quickScan,
|
||||
updateServer,
|
||||
updateServerPermission,
|
||||
|
||||
@@ -4,6 +4,13 @@ export enum ServerType {
|
||||
SUBSONIC = 'SUBSONIC',
|
||||
}
|
||||
|
||||
export type ServerMap = {
|
||||
[key: string]: {
|
||||
name: string;
|
||||
type: ServerType;
|
||||
};
|
||||
};
|
||||
|
||||
export enum ServerPermissionType {
|
||||
ADMIN = 'ADMIN',
|
||||
EDITOR = 'EDITOR',
|
||||
|
||||
@@ -24,13 +24,7 @@ export const useCreateServer = () => {
|
||||
},
|
||||
onSettled: () => {
|
||||
queryClient.invalidateQueries(queryKeys.servers.list());
|
||||
},
|
||||
onSuccess: (data) => {
|
||||
toast.show({
|
||||
message: `${data.data.name} was added successfully`,
|
||||
title: 'Server added',
|
||||
type: 'success',
|
||||
});
|
||||
queryClient.invalidateQueries(queryKeys.servers.map());
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
import { useQuery } from '@tanstack/react-query';
|
||||
import { api } from '@/renderer/api';
|
||||
import { queryKeys } from '@/renderer/api/query-keys';
|
||||
import { ServerMapResponse } from '@/renderer/api/servers.api';
|
||||
import { QueryOptions } from '@/renderer/lib/react-query';
|
||||
|
||||
export const useServerMap = (options?: QueryOptions<ServerMapResponse>) => {
|
||||
return useQuery<ServerMapResponse>({
|
||||
cacheTime: Infinity,
|
||||
queryFn: ({ signal }) => api.servers.getServerMap(signal),
|
||||
queryKey: queryKeys.servers.map(),
|
||||
staleTime: Infinity,
|
||||
...options,
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user