🏗️ Migrate config list to tRPC

This commit is contained in:
Meier Lukas
2023-06-10 11:28:35 +02:00
parent dc5bcbe9b2
commit 62cfce4ba1
3 changed files with 18 additions and 10 deletions

View File

@@ -1,12 +1,12 @@
import { Center, Dialog, Loader, Notification, Select, Tooltip } from '@mantine/core'; import { Center, Dialog, Loader, Notification, Select, Tooltip } from '@mantine/core';
import { useToggle } from '@mantine/hooks'; import { useToggle } from '@mantine/hooks';
import { useQuery } from '@tanstack/react-query'; import { notifications } from '@mantine/notifications';
import { IconCheck } from '@tabler/icons-react';
import { setCookie } from 'cookies-next'; import { setCookie } from 'cookies-next';
import { useTranslation } from 'next-i18next'; import { useTranslation } from 'next-i18next';
import { useRouter } from 'next/router'; import { useRouter } from 'next/router';
import { useState } from 'react'; import { useState } from 'react';
import { notifications } from '@mantine/notifications'; import { api } from '~/utils/api';
import { IconCheck } from '@tabler/icons-react';
import { useConfigContext } from '../../config/provider'; import { useConfigContext } from '../../config/provider';
export default function ConfigChanger() { export default function ConfigChanger() {
@@ -95,10 +95,4 @@ export default function ConfigChanger() {
); );
} }
const useConfigsQuery = () => const useConfigsQuery = () => api.config.all.useQuery();
useQuery({
queryKey: ['config/get-all'],
queryFn: fetchConfigs,
});
const fetchConfigs = async () => (await (await fetch('/api/configs')).json()) as string[];

View File

@@ -1,6 +1,7 @@
import { createTRPCRouter } from '~/server/api/trpc'; import { createTRPCRouter } from '~/server/api/trpc';
import { appRouter } from './routers/app'; import { appRouter } from './routers/app';
import { rssRouter } from './routers/rss'; import { rssRouter } from './routers/rss';
import { configRouter } from './routers/config';
/** /**
* This is the primary router for your server. * This is the primary router for your server.
@@ -10,6 +11,7 @@ import { rssRouter } from './routers/rss';
export const rootRouter = createTRPCRouter({ export const rootRouter = createTRPCRouter({
app: appRouter, app: appRouter,
rss: rssRouter, rss: rssRouter,
config: configRouter,
}); });
// export type definition of API // export type definition of API

View File

@@ -0,0 +1,12 @@
import fs from 'fs';
import { createTRPCRouter, publicProcedure } from '../trpc';
export const configRouter = createTRPCRouter({
all: publicProcedure.query(async () => {
// Get all the configs in the /data/configs folder
// All the files that end in ".json"
const files = fs.readdirSync('./data/configs').filter((file) => file.endsWith('.json'));
// Strip the .json extension from the file name
return files.map((file) => file.replace('.json', ''));
}),
});