* Feature grouping * Add assign/unassign logic for teams feature flags * Fix types
37 lines
828 B
TypeScript
37 lines
828 B
TypeScript
import type { PrismaClient } from "@calcom/prisma";
|
|
|
|
import type { TrpcSessionUser } from "../../../types";
|
|
import type { TAdminAssignFeatureToTeamSchema } from "./assignFeatureToTeam.schema";
|
|
|
|
type AssignFeatureOptions = {
|
|
ctx: {
|
|
user: NonNullable<TrpcSessionUser>;
|
|
prisma: PrismaClient;
|
|
};
|
|
input: TAdminAssignFeatureToTeamSchema;
|
|
};
|
|
|
|
export const assignFeatureToTeamHandler = async ({ ctx, input }: AssignFeatureOptions) => {
|
|
const { prisma, user } = ctx;
|
|
const { teamId, featureId } = input;
|
|
|
|
await prisma.teamFeatures.upsert({
|
|
where: {
|
|
teamId_featureId: {
|
|
teamId,
|
|
featureId,
|
|
},
|
|
},
|
|
create: {
|
|
teamId,
|
|
featureId,
|
|
assignedBy: `user:${user.id}`,
|
|
},
|
|
update: {},
|
|
});
|
|
|
|
return { success: true };
|
|
};
|
|
|
|
export default assignFeatureToTeamHandler;
|