fix build error on vercel, fix types in invite api

This commit is contained in:
Matthias Nannt
2023-03-30 10:59:48 +02:00
parent 6e0cb443b6
commit 3dcdc3a45b
3 changed files with 23 additions and 35 deletions

View File

@@ -15,7 +15,7 @@ import { PaperAirplaneIcon, TrashIcon } from "@heroicons/react/24/outline";
import { useState } from "react";
import AddMemberModal from "./AddMemberModal";
export function EditMembers({ environmentId }) {
export function EditMemberships({ environmentId }) {
const { team, isErrorTeam, isLoadingTeam, mutateTeam } = useTeam(environmentId);
const [isAddMemberModalOpen, setAddMemberModalOpen] = useState(false);
@@ -53,7 +53,7 @@ export function EditMembers({ environmentId }) {
}
if (isErrorTeam) {
console.log(isErrorTeam);
console.error(isErrorTeam);
return <div>Error</div>;
}

View File

@@ -1,6 +1,6 @@
import SettingsCard from "../SettingsCard";
import SettingsTitle from "../SettingsTitle";
import { EditMembers } from "./EditMembers";
import { EditMemberships } from "./EditMemberships";
import { EditTeamName } from "./EditTeamName";
export default function MembersSettingsPage({ params }) {
@@ -8,7 +8,7 @@ export default function MembersSettingsPage({ params }) {
<div>
<SettingsTitle title="Team Members" />
<SettingsCard title="Manage members" description="Add or remove members in your team.">
<EditMembers environmentId={params.environmentId} />
<EditMemberships environmentId={params.environmentId} />
</SettingsCard>
<SettingsCard title="Team Name" description="Change the name of your team. Just in case.">
<EditTeamName />

View File

@@ -2,28 +2,6 @@ import { getSessionOrUser } from "@/lib/api/apiHelper";
import { prisma } from "@formbricks/database";
import type { NextApiRequest, NextApiResponse } from "next";
type Member = {
user?: {
name: string | null;
email: string;
};
accepted: boolean;
userId: string;
role: any;
name?: string;
email?: string;
};
type Invite = {
accepted: boolean;
id?: string;
inviteId?: string;
name: string | null;
email: string;
acceptorId: string | null;
role: any;
};
export default async function handle(req: NextApiRequest, res: NextApiResponse) {
// Check Authentication
const user: any = await getSessionOrUser(req, res);
@@ -67,7 +45,7 @@ export default async function handle(req: NextApiRequest, res: NextApiResponse)
});
}
const members: Member[] = await prisma.membership.findMany({
const membersData = await prisma.membership.findMany({
where: { teamId },
select: {
user: {
@@ -81,13 +59,17 @@ export default async function handle(req: NextApiRequest, res: NextApiResponse)
role: true,
},
});
members.forEach((member: Member) => {
member.name = member.user?.name || "";
member.email = member.user?.email || "";
delete member.user;
const members = membersData.map((member) => {
return {
name: member.user?.name || "",
email: member.user?.email || "",
userId: member.userId,
accepted: member.accepted,
role: member.role,
};
});
const invitees: Invite[] = await prisma.invite.findMany({
const inviteeData = await prisma.invite.findMany({
where: { teamId, accepted: false },
select: {
id: true,
@@ -98,9 +80,15 @@ export default async function handle(req: NextApiRequest, res: NextApiResponse)
accepted: true,
},
});
invitees.forEach((invite: Invite) => {
invite.inviteId = invite.id;
delete invite.id;
const invitees = inviteeData.map((invite) => {
return {
name: invite.name,
email: invite.email,
inviteId: invite.id,
acceptorId: invite.acceptorId,
role: invite.role,
accepted: invite.accepted,
};
});
return res.json({ members, invitees, teamId });