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

124 lines
2.5 KiB
TypeScript
Raw Normal View History

import z from "zod";
2025-11-13 15:45:55 +01:00
import {
ComuniUpdateSchema,
comuniId,
NewComuniSchema,
} from "~/schemas/public/Comuni";
import {
NazioniUpdateSchema,
NewNazioniSchema,
nazioniId,
} from "~/schemas/public/Nazioni";
import {
NewProvincieSchema,
ProvincieUpdateSchema,
provincieId,
} from "~/schemas/public/Provincie";
import {
adminProcedure,
createTRPCRouter,
publicProcedure,
} from "~/server/api/trpc";
import {
createComune,
createNazione,
createProvincia,
deleteComune,
deleteNazione,
deleteProvincia,
editComune,
editNazione,
editProvincia,
2025-11-13 15:45:55 +01:00
getComuni,
getNazioni,
getProvincie,
} from "~/server/controllers/catasto.controller";
export const catastoRouter = createTRPCRouter({
getComuni: publicProcedure.query(async () => {
return await getComuni();
}),
createComune: adminProcedure
.input(NewComuniSchema)
.mutation(async ({ input }) => {
return await createComune(input);
}),
editComune: adminProcedure
.input(
z.object({
id: comuniId,
data: ComuniUpdateSchema,
}),
)
.mutation(async ({ input }) => {
const { id, data } = input;
return await editComune({ id, data });
}),
deleteComune: adminProcedure
.input(
z.object({
id: comuniId,
}),
)
.mutation(async ({ input }) => {
return await deleteComune(input.id);
}),
2025-11-13 15:45:55 +01:00
getProvincie: publicProcedure.query(async () => {
return await getProvincie();
}),
createProvincia: adminProcedure
.input(NewProvincieSchema)
.mutation(async ({ input }) => {
return await createProvincia(input);
}),
editProvincia: adminProcedure
.input(
z.object({
id: provincieId,
data: ProvincieUpdateSchema,
}),
)
.mutation(async ({ input }) => {
const { id, data } = input;
return await editProvincia({ id, data });
}),
deleteProvincia: adminProcedure
.input(
z.object({
id: provincieId,
}),
)
.mutation(async ({ input }) => {
return await deleteProvincia(input.id);
}),
2025-11-13 15:45:55 +01:00
getNazioni: publicProcedure.query(async () => {
return await getNazioni();
}),
createNazione: adminProcedure
.input(NewNazioniSchema)
.mutation(async ({ input }) => {
return await createNazione(input);
}),
editNazione: adminProcedure
.input(
z.object({
id: nazioniId,
data: NazioniUpdateSchema,
}),
)
.mutation(async ({ input }) => {
const { id, data } = input;
return await editNazione({ id, data });
}),
deleteNazione: adminProcedure
.input(
z.object({
id: nazioniId,
}),
)
.mutation(async ({ input }) => {
return await deleteNazione(input.id);
}),
2025-11-13 15:45:55 +01:00
});