- Introduced Zod schemas for validation in the following entities: - Provincie - Ratelimiter - Rinnovi - Servizio - ServizioAnnunci - ServizioInteressi - TestiEStringhe - Users - UserEtichette - UserInvites - UsersAnagrafica - UsersStorage - VideosRefs - StatusConfermaEnum - TipologiaPosizioneEnum - Updated API routes in `catasto.ts` to include CRUD operations for Comuni, Nazioni, and Provincie with appropriate input validation. - Enhanced controller methods in `catasto.controller.ts` to handle create, edit, and delete operations for Comuni and Nazioni. - Added new utility Zod types for ComuniId, NazioniId, and ProvincieId. Co-authored-by: Copilot <copilot@github.com>
123 lines
2.5 KiB
TypeScript
123 lines
2.5 KiB
TypeScript
import z from "zod";
|
|
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,
|
|
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);
|
|
}),
|
|
|
|
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);
|
|
}),
|
|
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);
|
|
}),
|
|
});
|