Add server map route

This commit is contained in:
jeffvli
2022-11-15 13:31:11 -08:00
parent 8d5a05c329
commit 758e9d4d2c
8 changed files with 58 additions and 8 deletions
+1
View File
@@ -18,6 +18,7 @@ export const queryKeys = {
},
servers: {
list: (params?: any) => ['servers', 'list', params] as const,
map: () => ['servers', 'map'] as const,
root: ['servers'],
},
tasks: {
+11
View File
@@ -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,
+7
View File
@@ -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,
});
};