Skip to content

Commit 853264f

Browse files
authored
feat: use trpc for server calls (#88)
1 parent fea76ff commit 853264f

File tree

4 files changed

+38
-31
lines changed

4 files changed

+38
-31
lines changed

src/app/(authenticated)/(dashboard)/[publicId]/stakeholders/page.tsx

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,12 @@ import BorderWrapper from "@/components/shared/BorderWrapper";
22
import MemberModal from "@/components/stakeholder/member-modal";
33
import MemberTable from "@/components/stakeholder/member-table";
44
import { Button } from "@/components/ui/button";
5-
import { withServerSession } from "@/server/auth";
6-
import { getMembers } from "@/server/stakeholder";
5+
6+
import { api } from "@/trpc/server";
77
import { RiAddLine } from "@remixicon/react";
88

99
const StakeholdersPage = async () => {
10-
const session = await withServerSession();
11-
const members = await getMembers(session.user.companyId);
10+
const members = await api.stakeholder.getMembers.query();
1211

1312
return (
1413
<div className="flex flex-col gap-y-3">
@@ -40,7 +39,7 @@ const StakeholdersPage = async () => {
4039
</div>
4140

4241
<BorderWrapper className="mt-3">
43-
<MemberTable members={members} />
42+
<MemberTable members={members.data} />
4443
</BorderWrapper>
4544
</div>
4645
);

src/components/stakeholder/member-table.tsx

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,17 @@ import {
4141
} from "@/components/ui/table";
4242

4343
import { api } from "@/trpc/react";
44-
import { type TypeGetMembers } from "@/server/stakeholder";
44+
4545
import { Avatar, AvatarImage } from "@/components/ui/avatar";
4646
import MemberModal from "@/components/stakeholder/member-modal";
4747
import { useSession } from "next-auth/react";
4848
import { useRouter } from "next/navigation";
49+
import { type RouterOutputs } from "@/trpc/shared";
50+
51+
type Member = RouterOutputs["stakeholder"]["getMembers"]["data"];
4952

5053
type MembersType = {
51-
members: TypeGetMembers;
54+
members: Member;
5255
};
5356

5457
const humanizeStatus = (status: string, active: boolean) => {
@@ -76,7 +79,7 @@ const humanizeStatus = (status: string, active: boolean) => {
7679
return "Unknown";
7780
};
7881

79-
export const columns: ColumnDef<TypeGetMembers[0]>[] = [
82+
export const columns: ColumnDef<Member[number]>[] = [
8083
{
8184
id: "select",
8285
header: ({ table }) => (

src/server/stakeholder.ts

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -8,29 +8,6 @@ import { env } from "@/env";
88
import { createHash } from "@/lib/crypto";
99
import { type PrismaClient, type Prisma } from "@prisma/client";
1010

11-
export const getMembers = (companyId: string) => {
12-
return db.membership.findMany({
13-
where: {
14-
companyId,
15-
},
16-
include: {
17-
user: {
18-
select: {
19-
name: true,
20-
email: true,
21-
image: true,
22-
},
23-
},
24-
},
25-
26-
orderBy: {
27-
createdAt: "asc",
28-
},
29-
});
30-
};
31-
32-
export type TypeGetMembers = Awaited<ReturnType<typeof getMembers>>;
33-
3411
export const checkVerificationToken = async (
3512
token: string,
3613
userEmail: string | null | undefined,

src/trpc/routers/stakeholder-router/router.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -315,4 +315,32 @@ export const stakeholderRouter = createTRPCRouter({
315315

316316
return { success: true };
317317
}),
318+
319+
getMembers: protectedProcedure.query(async ({ ctx }) => {
320+
const {
321+
db,
322+
session: { user },
323+
} = ctx;
324+
325+
const data = await db.membership.findMany({
326+
where: {
327+
companyId: user.companyId,
328+
},
329+
include: {
330+
user: {
331+
select: {
332+
name: true,
333+
email: true,
334+
image: true,
335+
},
336+
},
337+
},
338+
339+
orderBy: {
340+
createdAt: "asc",
341+
},
342+
});
343+
344+
return { data };
345+
}),
318346
});

0 commit comments

Comments
 (0)