infoalloggi-monorepo/apps/infoalloggi/src/server/api/routers/appunti.ts

77 lines
1.7 KiB
TypeScript
Raw Normal View History

import z from "zod";
import {
AppuntiUpdateSchema,
appuntiId,
NewAppuntiSchema,
} from "~/schemas/public/Appunti";
import { appuntiGroupsId } from "~/schemas/public/AppuntiGroups";
import { adminProcedure, createTRPCRouter } from "~/server/api/trpc";
import {
type AppuntiData,
addAppunti,
addAppuntiGroup,
deleteAppunti,
deleteAppuntiGroup,
getAppunti,
getAppuntiGroups,
updateAppunti,
updateAppunto,
} from "~/server/services/appunti.service";
export const appuntiRouter = createTRPCRouter({
getAppunti: adminProcedure.query(async () => {
return await getAppunti();
}),
getAppuntiGroups: adminProcedure.query(async () => {
return await getAppuntiGroups();
}),
addAppunti: adminProcedure
.input(
z.object({
data: NewAppuntiSchema,
}),
)
.mutation(async ({ input }) => {
return await addAppunti(input.data);
}),
updateAppunti: adminProcedure
.input(
z.object({
data: z.custom<AppuntiData[]>(),
}),
)
.mutation(async ({ input }) => {
return await updateAppunti(input.data);
}),
updateAppunto: adminProcedure
.input(
z.object({
appuntiId: appuntiId,
data: AppuntiUpdateSchema,
}),
)
.mutation(async ({ input }) => {
return await updateAppunto(input.appuntiId, input.data);
}),
deleteAppunti: adminProcedure.input(appuntiId).mutation(async ({ input }) => {
return await deleteAppunti(input);
}),
addAppuntiGroup: adminProcedure
.input(
z.object({
name: z.string().min(1).max(255),
}),
)
.mutation(async ({ input }) => {
return await addAppuntiGroup({ name: input.name });
}),
deleteAppuntiGroup: adminProcedure
.input(appuntiGroupsId)
.mutation(async ({ input }) => {
return await deleteAppuntiGroup(input);
}),
});