♻️ Update api endpoint authorization

This commit is contained in:
Meier Lukas
2023-08-06 15:40:19 +02:00
parent d281a2ee98
commit 3ef12cfe12
10 changed files with 124 additions and 109 deletions

View File

@@ -1,17 +1,16 @@
import fs from 'fs';
import { getFrontendConfig } from '~/tools/config/getFrontendConfig';
import { createTRPCRouter, protectedProcedure, publicProcedure } from '../trpc';
import { getFrontendConfig } from '~/tools/config/getFrontendConfig';
export const boardRouter = createTRPCRouter({
all: protectedProcedure.query(async ({ ctx }) => {
const files = fs.readdirSync('./data/configs').filter((file) => file.endsWith('.json'));
const userSettings = await ctx.prisma.userSettings.findUniqueOrThrow({
where: {
userId: ctx.session?.user.id
}
userId: ctx.session?.user.id,
},
});
return await Promise.all(
@@ -26,7 +25,7 @@ export const boardRouter = createTRPCRouter({
countApps: countApps,
countWidgets: config.widgets.length,
countCategories: config.categories.length,
isDefaultForUser: name === userSettings.defaultBoard
isDefaultForUser: name === userSettings.defaultBoard,
};
})
);

View File

@@ -16,13 +16,6 @@ import { adminProcedure, createTRPCRouter, publicProcedure } from '../trpc';
const configNameSchema = z.string().regex(/^[a-zA-Z0-9-_]+$/);
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', ''));
}),
delete: adminProcedure
.input(
z.object({

View File

@@ -2,13 +2,13 @@ import { TRPCError } from '@trpc/server';
import Dockerode from 'dockerode';
import { z } from 'zod';
import { createTRPCRouter, publicProcedure } from '../../trpc';
import { adminProcedure, createTRPCRouter } from '../../trpc';
import DockerSingleton from './DockerSingleton';
const dockerActionSchema = z.enum(['remove', 'start', 'stop', 'restart']);
export const dockerRouter = createTRPCRouter({
containers: publicProcedure.query(async () => {
containers: adminProcedure.query(async () => {
try {
const docker = DockerSingleton.getInstance();
const containers = await docker.listContainers({ all: true });
@@ -20,7 +20,7 @@ export const dockerRouter = createTRPCRouter({
});
}
}),
action: publicProcedure
action: adminProcedure
.input(
z.object({
id: z.string(),

View File

@@ -1,6 +1,6 @@
import { z } from 'zod';
import { createTRPCRouter, publicProcedure } from '../trpc';
import { adminProcedure, createTRPCRouter, publicProcedure } from '../trpc';
const citySchema = z.object({
id: z.number(),
@@ -24,7 +24,7 @@ const weatherSchema = z.object({
});
export const weatherRouter = createTRPCRouter({
findCity: publicProcedure
findCity: adminProcedure
.input(
z.object({
query: z.string().min(2),