♻️ Update api endpoint authorization
This commit is contained in:
@@ -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,
|
||||
};
|
||||
})
|
||||
);
|
||||
|
||||
@@ -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({
|
||||
|
||||
@@ -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(),
|
||||
|
||||
@@ -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),
|
||||
|
||||
Reference in New Issue
Block a user