fix: swich from insertId to returning

This commit is contained in:
Henry
2024-03-28 09:23:11 +00:00
parent f1e705e9ae
commit 0b51d857a9
4 changed files with 38 additions and 22 deletions

View File

@@ -48,28 +48,30 @@ export const cardRouter = createTRPCRouter({
createdBy: userId, createdBy: userId,
listId: list.id, listId: list.id,
index: latestCard ? latestCard.index + 1 : 0 index: latestCard ? latestCard.index + 1 : 0
}); }).returning({ id: cards.id });
if (newCard.insertId && input.labelsPublicIds.length) { const newCardId = newCard[0]?.id;
if (newCardId && input.labelsPublicIds.length) {
const labels = await tx.query.labels.findMany({ const labels = await tx.query.labels.findMany({
where: inArray(cards.publicId, input.labelsPublicIds), where: inArray(cards.publicId, input.labelsPublicIds),
}); });
if (!labels.length) return; if (!labels.length) return;
const labelsInsert = labels.map((label) => ({ cardId: Number(newCard.insertId), labelId: label.id })) const labelsInsert = labels.map((label) => ({ cardId: newCardId, labelId: label.id }))
await tx.insert(cardsToLabels).values(labelsInsert); await tx.insert(cardsToLabels).values(labelsInsert);
} }
if (newCard.insertId && input.memberPublicIds.length) { if (newCardId && input.memberPublicIds.length) {
const members = await tx.query.workspaceMembers.findMany({ const members = await tx.query.workspaceMembers.findMany({
where: inArray(workspaceMembers.publicId, input.memberPublicIds), where: inArray(workspaceMembers.publicId, input.memberPublicIds),
}); });
if (!members.length) return; if (!members.length) return;
const membersInsert = members.map((member) => ({ cardId: Number(newCard.insertId), workspaceMemberId: member.id})) const membersInsert = members.map((member) => ({ cardId: newCardId, workspaceMemberId: member.id}))
await tx.insert(cardToWorkspaceMembers).values(membersInsert); await tx.insert(cardToWorkspaceMembers).values(membersInsert);
} }

View File

@@ -94,7 +94,9 @@ export const importRouter = createTRPCRouter({
source: 'trello', source: 'trello',
createdBy: userId, createdBy: userId,
status: 'started' status: 'started'
}) }).returning({ id: imports.id });
const newImportId = newImport[0]?.id;
let boardsCreated = 0; let boardsCreated = 0;
@@ -126,11 +128,13 @@ export const importRouter = createTRPCRouter({
publicId: generateUID(), publicId: generateUID(),
name: data.name, name: data.name,
createdBy: userId, createdBy: userId,
importId: newImport.insertId, importId: newImportId,
workspaceId: workspace.id workspaceId: workspace.id
}); }).returning({ id: boards.id });
if (!newBoard?.insertId) return; const newBoardId = newBoard[0]?.id
if (!newBoardId) return;
let listIndex = 0; let listIndex = 0;
@@ -139,20 +143,22 @@ export const importRouter = createTRPCRouter({
publicId: generateUID(), publicId: generateUID(),
name: list.name, name: list.name,
createdBy: userId, createdBy: userId,
boardId: Number(newBoard.insertId), boardId: newBoardId,
index: listIndex, index: listIndex,
importId: newImport.insertId importId: newImportId
}); }).returning({ id: lists.id });
if (list.cards.length) { const newListId = newList[0]?.id
if (list.cards.length && newListId) {
const cardsInsert = list.cards.map((card, index) => ({ const cardsInsert = list.cards.map((card, index) => ({
publicId: generateUID(), publicId: generateUID(),
title: card.name, title: card.name,
description: card.description, description: card.description,
createdBy: userId, createdBy: userId,
listId: Number(newList.insertId), listId: newListId,
index, index,
importId: newImport.insertId importId: newImportId
})) }))
await tx.insert(cards).values(cardsInsert); await tx.insert(cards).values(cardsInsert);
@@ -165,10 +171,10 @@ export const importRouter = createTRPCRouter({
boardsCreated ++ boardsCreated ++
} }
if (boardsCreated > 0) { if (boardsCreated > 0 && newImportId) {
await ctx.db.update(imports) await ctx.db.update(imports)
.set({ status: 'success' }) .set({ status: 'success' })
.where(eq(imports.id, Number(newImport.insertId))) .where(eq(imports.id, newImportId))
} }
return { boardsCreated } return { boardsCreated }

View File

@@ -43,11 +43,15 @@ export const labelRouter = createTRPCRouter({
colourCode: input.colourCode, colourCode: input.colourCode,
createdBy: userId, createdBy: userId,
boardId: card.list.boardId, boardId: card.list.boardId,
}); }).returning({ id: labels.id });
const newLabelId = newLabel[0]?.id
if (!newLabelId) return;
return tx.insert(cardsToLabels).values({ return tx.insert(cardsToLabels).values({
cardId: card.id, cardId: card.id,
labelId: Number(newLabel.insertId), labelId: newLabelId,
}); });
}) })
}), }),

View File

@@ -79,18 +79,22 @@ export const workspaceRouter = createTRPCRouter({
name: input.name, name: input.name,
slug: input.name.toLowerCase(), slug: input.name.toLowerCase(),
createdBy: userId, createdBy: userId,
}); }).returning({ id: workspaces.id });
const workspaceId = workspace[0]?.id;
if (!workspaceId) return;
await ctx.db.insert(workspaceMembers).values({ await ctx.db.insert(workspaceMembers).values({
publicId: generateUID(), publicId: generateUID(),
userId, userId,
workspaceId: Number(workspace.insertId), workspaceId: workspaceId,
createdBy: userId, createdBy: userId,
role: 'admin' role: 'admin'
}) })
return ctx.db.query.workspaces.findFirst({ return ctx.db.query.workspaces.findFirst({
where: eq(workspaces.id, Number(workspace.insertId)), where: eq(workspaces.id, workspaceId),
columns: { columns: {
publicId: true, publicId: true,
name: true, name: true,