From 6178b4f30909993ce6c242dc2198bc1fea1d81a5 Mon Sep 17 00:00:00 2001 From: Henry Date: Wed, 10 Apr 2024 22:07:51 +0100 Subject: [PATCH] feat: test refactoring board queries --- src/app/boards/[...boardId]/page.tsx | 14 +-- src/app/providers/board.tsx | 4 +- src/server/api/routers/auth.ts | 3 - src/server/api/routers/board.ts | 174 ++++++++++----------------- 4 files changed, 71 insertions(+), 124 deletions(-) diff --git a/src/app/boards/[...boardId]/page.tsx b/src/app/boards/[...boardId]/page.tsx index 7b04ccc7..0923c023 100644 --- a/src/app/boards/[...boardId]/page.tsx +++ b/src/app/boards/[...boardId]/page.tsx @@ -40,20 +40,12 @@ interface Card { } interface Label { - label: LabelData; -} - -interface LabelData { publicId: string; name: string; colourCode: string; } interface Member { - member: MemberData; -} - -interface MemberData { publicId: string; user: User; } @@ -76,6 +68,8 @@ export default function BoardPage() { const [selectedPublicListId, setSelectedPublicListId] = useState(""); + console.log({ boardData }); + const boardId = params?.boardId?.length ? params.boardId[0] : null; const updateBoard = api.board.update.useMutation(); @@ -277,7 +271,7 @@ export default function BoardPage() { {(card.labels?.length ?? 0) || (card.members?.length ?? 0) ? (
- {card.labels?.map(({ label }) => ( + {card.labels?.map((label) => ( ))}
- {card.members?.map(({ member }) => ( + {card.members?.map((member) => ( - ctx.db.query.boards.findFirst({ - where: and(eq(boards.publicId, input.id), isNull(boards.deletedAt)), - columns: { - publicId: true, - name: true, - }, - with: { - workspace: { - columns: { - publicId: true, - }, - with: { - members: { - columns: { - publicId: true, - }, - with: { - user: { - columns: { - name: true - } - } - } - } - } - }, - labels: { - columns: { - publicId: true, - colourCode: true, - name: true, - } - }, - lists: { - orderBy: [asc(lists.index)], - where: isNull(cards.deletedAt), - columns: { - publicId: true, - name: true, - boardId: true, - index: true, - }, - with: { - cards: { - where: isNull(cards.deletedAt), - orderBy: [asc(cards.index)], - columns: { - publicId: true, - title: true, - description: true, - listId: true, - index: true, - }, - with: { - labels: { - columns: { - labelId: false, - cardId: false, - }, - with: { - label: { - columns: { - publicId: true, - name: true, - colourCode: true, - } - } - } - }, - members: { - columns: { - workspaceMemberId: false, - cardId: false, - }, - with: { - member: { - columns: { - publicId: true, - }, - with: { - user: { - columns: { - name: true - } - } - } - } - } - } - } - } - }, - }, - }, - }) - ), + .query(async ({ ctx, input }) => { + const { data, error } = await ctx.supabase.from('board').select(` + publicId, + name, + workspace ( + publicId, + members:workspace_members ( + publicId, + user ( + name + ) + ) + ), + labels:label ( + publicId, + name, + colourCode + ), + lists:list ( + publicId, + name, + boardId, + index, + cards:card ( + publicId, + title, + description, + listId, + index, + labels:label ( + publicId, + name, + colourCode + ), + members:workspace_members ( + publicId, + user ( + name + ) + ) + ) + ) + `) + .eq('publicId', input.id) + .is('deletedAt', null) + .is('lists.deletedAt', null) + .is('lists.cards.deletedAt', null) + .order('index', { foreignTable: 'list', ascending: true }) + .order('index', { foreignTable: 'list.card', ascending: true }) + .limit(1) + .single() + + return data; + }), create: publicProcedure .input( z.object({