* initial commit * fixes on data returned * mobile style fixes * Update on styles and dates not being shown on graphics * feat: update insights filters UI (#9756) * feat: update insights filters UI Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> * Fixes for filters with new UI * fix initialConfig lost while clearing filters * Add single user conditional for first render --------- Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> Co-authored-by: Alan <alannnc@gmail.com> --------- Signed-off-by: Udit Takkar <udit.07814802719@cse.mait.ac.in> Co-authored-by: Efraín Rochín <roae.85@gmail.com> Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com> Co-authored-by: Peer Richelsen <peeroke@gmail.com>
57 lines
1.3 KiB
TypeScript
57 lines
1.3 KiB
TypeScript
import type { TrpcSessionUser } from "@calcom/trpc/server/trpc";
|
|
|
|
import type { TListMembersInputSchema } from "./listMembers.schema";
|
|
import type { PrismaClient } from ".prisma/client";
|
|
|
|
type ListMembersOptions = {
|
|
ctx: {
|
|
user: NonNullable<TrpcSessionUser>;
|
|
prisma: PrismaClient;
|
|
};
|
|
input: TListMembersInputSchema;
|
|
};
|
|
|
|
export const listMembersHandler = async ({ ctx, input }: ListMembersOptions) => {
|
|
const { prisma } = ctx;
|
|
const teams = await prisma.team.findMany({
|
|
where: {
|
|
id: {
|
|
in: input.teamIds,
|
|
},
|
|
members: {
|
|
some: {
|
|
user: {
|
|
id: ctx.user.id,
|
|
},
|
|
accepted: true,
|
|
},
|
|
},
|
|
},
|
|
select: {
|
|
members: {
|
|
select: {
|
|
user: {
|
|
select: {
|
|
id: true,
|
|
name: true,
|
|
username: true,
|
|
},
|
|
},
|
|
accepted: true,
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
type UserMap = Record<number, (typeof teams)[number]["members"][number]["user"] & { accepted: boolean }>;
|
|
// flatten users to be unique by id
|
|
const users = teams
|
|
.flatMap((t) => t.members)
|
|
.reduce(
|
|
(acc, m) => (m.user.id in acc ? acc : { ...acc, [m.user.id]: { ...m.user, accepted: m.accepted } }),
|
|
{} as UserMap
|
|
);
|
|
|
|
return Object.values(users);
|
|
};
|