72 lines
1.4 KiB
TypeScript
72 lines
1.4 KiB
TypeScript
import { prisma } from "@calcom/prisma";
|
|
import { SMSLockState } from "@calcom/prisma/client";
|
|
|
|
import type { TrpcSessionUser } from "../../../trpc";
|
|
|
|
type GetOptions = {
|
|
ctx: {
|
|
user: NonNullable<TrpcSessionUser>;
|
|
};
|
|
};
|
|
|
|
const getSMSLockStateTeamsUsers = async ({ ctx }: GetOptions) => {
|
|
const userSelect = {
|
|
id: true,
|
|
smsLockState: true,
|
|
email: true,
|
|
username: true,
|
|
name: true,
|
|
avatarUrl: true,
|
|
};
|
|
|
|
const teamSelect = {
|
|
id: true,
|
|
smsLockState: true,
|
|
slug: true,
|
|
name: true,
|
|
logoUrl: true,
|
|
};
|
|
|
|
const lockedUsers = await prisma.user.findMany({
|
|
where: {
|
|
smsLockState: SMSLockState.LOCKED,
|
|
},
|
|
select: userSelect,
|
|
});
|
|
const reviewNeededUsers = await prisma.user.findMany({
|
|
where: {
|
|
smsLockState: SMSLockState.REVIEW_NEEDED,
|
|
},
|
|
select: userSelect,
|
|
});
|
|
|
|
const lockedTeams = await prisma.team.findMany({
|
|
where: {
|
|
smsLockState: SMSLockState.LOCKED,
|
|
},
|
|
select: teamSelect,
|
|
});
|
|
|
|
const reviewNeededTeams = await prisma.team.findMany({
|
|
where: {
|
|
smsLockState: SMSLockState.REVIEW_NEEDED,
|
|
},
|
|
select: teamSelect,
|
|
});
|
|
|
|
const resultObj = {
|
|
users: {
|
|
locked: lockedUsers,
|
|
reviewNeeded: reviewNeededUsers,
|
|
},
|
|
teams: {
|
|
locked: lockedTeams,
|
|
reviewNeeded: reviewNeededTeams,
|
|
},
|
|
};
|
|
|
|
return resultObj;
|
|
};
|
|
|
|
export default getSMSLockStateTeamsUsers;
|