infoalloggi-monorepo/apps/infoalloggi/src/server/api/routers/users.ts
Marco Pedone ba4debdd1d Refactor: Remove unused procedures and clean up router files
- Deleted contact router and its associated mail functionality.
- Removed addEvent mutation from event_queue router.
- Cleaned up fatture router by removing createClient and getListClienti procedures.
- Commented out deletePrezziario mutation in prezziario router.
- Removed unused procedures in servizio router, including getServizioOrdini and getPreOnboardData.
- Cleaned up stats router by removing commented-out code.
- Updated stripe router to restrict health check to admin users and changed several public procedures to protected.
- Commented out sync router procedures and related types.
- Removed unused client-related functions in fic controller.
- Cleaned up servizio controller by removing getServizioOrdini and commented-out code.
- Refactored auth service to inline pwResetTokenFromMailHandler logic.
- Commented out deletePrezziario function in prezziario service.
- Cleaned up zod types by commenting out unused types.
- Commented out getMessagesArray function in kysely helper.
2026-03-05 12:32:03 +01:00

105 lines
2.3 KiB
TypeScript

import { z } from "zod/v4";
import type { UsersUpdate } from "~/schemas/public/Users";
import type { UsersAnagraficaUpdate } from "~/schemas/public/UsersAnagrafica";
import {
adminProcedure,
createTRPCRouter,
protectedProcedure,
} from "~/server/api/trpc";
import {
blockUserHandler,
deleteUserHandler,
editAccountHandler,
editAnagraficaHandler,
getActiveUserWithoutChatHandler,
getUserHandler,
getUsersWithChatInfoHandler,
} from "~/server/controllers/user.controller";
import { db } from "~/server/db";
import { getClientProfilo } from "~/server/services/user.service";
import { zUserId } from "~/server/utils/zod_types";
export const usersRouter = createTRPCRouter({
getUser: protectedProcedure
.input(
z.object({
id: zUserId,
}),
)
.query(async ({ input }) => {
return await getUserHandler({ db, id: input.id });
}),
getUsers: adminProcedure.query(async () => {
return await db
.selectFrom("users")
.selectAll()
.orderBy("id", "desc")
.execute();
}),
getAdmins: adminProcedure.query(async () => {
return await db
.selectFrom("users")
.selectAll()
.where("isAdmin", "=", true)
.orderBy("id", "desc")
.execute();
}),
getClientProfilo: protectedProcedure
.input(
z.object({
userId: zUserId,
}),
)
.query(async ({ input }) => {
return getClientProfilo({
db,
userId: input.userId,
});
}),
blockUser: adminProcedure
.input(
z.object({
id: zUserId,
}),
)
.mutation(async ({ input }) => {
return await blockUserHandler(input.id);
}),
deleteUser: adminProcedure
.input(
z.object({
id: zUserId,
}),
)
.mutation(async ({ input }) => {
return await deleteUserHandler(input.id);
}),
editUser: protectedProcedure
.input(
z.object({
id: zUserId,
data: z.custom<UsersUpdate>(),
}),
)
.mutation(async ({ input }) => {
return await editAccountHandler({ ...input });
}),
editUserAnagrafica: protectedProcedure
.input(
z.object({
userId: zUserId,
data: z.custom<UsersAnagraficaUpdate>(),
}),
)
.mutation(async ({ input }) => {
return await editAnagraficaHandler({ ...input });
}),
getActiveUsersWithoutChat: adminProcedure.query(async () => {
return await getActiveUserWithoutChatHandler({ db });
}),
getUsersWChatInfo: adminProcedure.query(async () => {
return await getUsersWithChatInfoHandler({ db });
}),
});