Files
calendar/packages/trpc/server/routers/viewer/me/myStats.handler.ts
T
Benny JooandGitHub ff38d6c7db refactor: Remove circular deps between @calcom/lib and @calcom/features [1] (#24399)
* add eslint config

* migrate autoLock to features

* migrate teamService to features

* migrate userCreationService

* migrate insights services to features

* migrate ProfileRepository

* update imports

* migrate filter segmen tests

* migrate filter segment repository

* migrate getBusyTimes

* migrate getLocaleFromRequest

* refactor csvUtils

* make filename clearer

* migrate getLuckyUser integration test

* migrate autoLock test to features

* wip

* refactors

* migrate useBookerUrl

* migrate more

* wip

* Migrate eventTypeRepository

* membership repository

* update imports

* update imports

* migrate

* move organization repository

* update imports

* update imports

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* wip

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix tests

* fix type checks

* fix

* fix

* migrate

* update imports

* fix tests

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix

* fix
2025-10-13 12:01:02 -03:00

33 lines
985 B
TypeScript

import type { Session } from "next-auth";
import { UserRepository } from "@calcom/features/users/repositories/UserRepository";
import prisma from "@calcom/prisma";
import type { TrpcSessionUser } from "@calcom/trpc/server/types";
type MyStatsOptions = {
ctx: {
user: NonNullable<TrpcSessionUser>;
session: Session;
};
};
export const myStatsHandler = async ({ ctx }: MyStatsOptions) => {
const { user: sessionUser } = ctx;
const additionalUserInfo = await new UserRepository(prisma).getUserStats({ userId: sessionUser.id });
const sumOfTeamEventTypes = additionalUserInfo?.teams.reduce(
(sum, team) => sum + team.team.eventTypes.length,
0
);
return {
id: sessionUser.id,
sumOfBookings: additionalUserInfo?._count.bookings,
sumOfCalendars: additionalUserInfo?._count.userLevelSelectedCalendars,
sumOfTeams: additionalUserInfo?._count.teams,
sumOfEventTypes: additionalUserInfo?._count.eventTypes,
sumOfTeamEventTypes,
};
};