fix: set workspaceId on new board
This commit is contained in:
@@ -8,6 +8,7 @@ import { FaTrello } from "react-icons/fa";
|
|||||||
import { HiChevronUpDown, HiXMark } from "react-icons/hi2";
|
import { HiChevronUpDown, HiXMark } from "react-icons/hi2";
|
||||||
|
|
||||||
import { useModal } from "~/app/providers/modal";
|
import { useModal } from "~/app/providers/modal";
|
||||||
|
import { useWorkspace } from "~/app/providers/workspace";
|
||||||
|
|
||||||
import { useFormik } from "formik";
|
import { useFormik } from "formik";
|
||||||
|
|
||||||
@@ -102,6 +103,7 @@ const ImportTrello: React.FC = () => {
|
|||||||
const [apiKey, setApiKey] = useState("");
|
const [apiKey, setApiKey] = useState("");
|
||||||
const [token, setToken] = useState("");
|
const [token, setToken] = useState("");
|
||||||
const { closeModal } = useModal();
|
const { closeModal } = useModal();
|
||||||
|
const { workspace } = useWorkspace();
|
||||||
|
|
||||||
const refetchBoards = () => utils.board.all.refetch();
|
const refetchBoards = () => utils.board.all.refetch();
|
||||||
|
|
||||||
@@ -153,6 +155,7 @@ const ImportTrello: React.FC = () => {
|
|||||||
boardIds,
|
boardIds,
|
||||||
apiKey: formik.values.apiKey,
|
apiKey: formik.values.apiKey,
|
||||||
token: formik.values.token,
|
token: formik.values.token,
|
||||||
|
workspacePublicId: workspace?.publicId,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
enableReinitialize: true,
|
enableReinitialize: true,
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import { api } from "~/trpc/react";
|
|||||||
import { HiXMark } from "react-icons/hi2";
|
import { HiXMark } from "react-icons/hi2";
|
||||||
|
|
||||||
import { useModal } from "~/app/providers/modal";
|
import { useModal } from "~/app/providers/modal";
|
||||||
|
import { useWorkspace } from "~/app/providers/workspace";
|
||||||
|
|
||||||
import { Formik, Form, Field } from "formik";
|
import { Formik, Form, Field } from "formik";
|
||||||
|
|
||||||
@@ -15,6 +16,7 @@ interface FormValues {
|
|||||||
export function NewBoardForm() {
|
export function NewBoardForm() {
|
||||||
const utils = api.useUtils();
|
const utils = api.useUtils();
|
||||||
const { closeModal } = useModal();
|
const { closeModal } = useModal();
|
||||||
|
const { workspace } = useWorkspace();
|
||||||
|
|
||||||
const refetchBoards = () => utils.board.all.refetch();
|
const refetchBoards = () => utils.board.all.refetch();
|
||||||
|
|
||||||
@@ -44,6 +46,7 @@ export function NewBoardForm() {
|
|||||||
onSubmit={(values: FormValues) => {
|
onSubmit={(values: FormValues) => {
|
||||||
createBoard.mutate({
|
createBoard.mutate({
|
||||||
name: values.name,
|
name: values.name,
|
||||||
|
workspacePublicId: workspace?.publicId,
|
||||||
});
|
});
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -90,17 +90,27 @@ export const boardRouter = createTRPCRouter({
|
|||||||
.input(
|
.input(
|
||||||
z.object({
|
z.object({
|
||||||
name: z.string().min(1),
|
name: z.string().min(1),
|
||||||
|
workspacePublicId: z.string().min(12)
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
.mutation(({ ctx, input }) => {
|
.mutation(async ({ ctx, input }) => {
|
||||||
const userId = ctx.session?.user.id;
|
const userId = ctx.session?.user.id;
|
||||||
|
|
||||||
if (!userId) return;
|
if (!userId) return;
|
||||||
|
|
||||||
|
const workspace = await ctx.db.query.workspaces.findFirst({
|
||||||
|
where: eq(workspaces.publicId, input.workspacePublicId),
|
||||||
|
})
|
||||||
|
|
||||||
|
console.log({ workspace })
|
||||||
|
|
||||||
|
if (!workspace) return;
|
||||||
|
|
||||||
return ctx.db.insert(boards).values({
|
return ctx.db.insert(boards).values({
|
||||||
publicId: generateUID(),
|
publicId: generateUID(),
|
||||||
name: input.name,
|
name: input.name,
|
||||||
createdBy: userId,
|
createdBy: userId,
|
||||||
|
workspaceId: workspace.id
|
||||||
});
|
});
|
||||||
}),
|
}),
|
||||||
update: publicProcedure
|
update: publicProcedure
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import {
|
|||||||
publicProcedure,
|
publicProcedure,
|
||||||
} from "~/server/api/trpc";
|
} from "~/server/api/trpc";
|
||||||
|
|
||||||
import { boards, cards, imports, lists } from "~/server/db/schema";
|
import { boards, cards, imports, lists, workspaces } from "~/server/db/schema";
|
||||||
import { generateUID } from "~/utils/generateUID";
|
import { generateUID } from "~/utils/generateUID";
|
||||||
|
|
||||||
const TRELLO_API_URL = 'https://api.trello.com/1';
|
const TRELLO_API_URL = 'https://api.trello.com/1';
|
||||||
@@ -81,6 +81,7 @@ export const importRouter = createTRPCRouter({
|
|||||||
boardIds: z.array(z.string()),
|
boardIds: z.array(z.string()),
|
||||||
apiKey: z.string().length(32),
|
apiKey: z.string().length(32),
|
||||||
token: z.string().length(76),
|
token: z.string().length(76),
|
||||||
|
workspacePublicId: z.string().min(12)
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
.mutation(async ({ ctx, input }) => {
|
.mutation(async ({ ctx, input }) => {
|
||||||
@@ -114,12 +115,19 @@ export const importRouter = createTRPCRouter({
|
|||||||
}))
|
}))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const workspace = await ctx.db.query.workspaces.findFirst({
|
||||||
|
where: eq(workspaces.publicId, input.workspacePublicId),
|
||||||
|
})
|
||||||
|
|
||||||
|
if (!workspace) return;
|
||||||
|
|
||||||
await ctx.db.transaction(async (tx) => {
|
await ctx.db.transaction(async (tx) => {
|
||||||
const newBoard = await tx.insert(boards).values({
|
const newBoard = await tx.insert(boards).values({
|
||||||
publicId: generateUID(),
|
publicId: generateUID(),
|
||||||
name: data.name,
|
name: data.name,
|
||||||
createdBy: userId,
|
createdBy: userId,
|
||||||
importId: newImport.insertId
|
importId: newImport.insertId,
|
||||||
|
workspaceId: workspace.id
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!newBoard?.insertId) return;
|
if (!newBoard?.insertId) return;
|
||||||
|
|||||||
Reference in New Issue
Block a user