feat: setup workspaces
This commit is contained in:
@@ -3,6 +3,7 @@ import { cardRouter } from "~/server/api/routers/card";
|
||||
import { labelRouter } from "~/server/api/routers/label";
|
||||
import { listRouter } from "~/server/api/routers/list";
|
||||
import { importRouter } from "~/server/api/routers/import";
|
||||
import { workspaceRouter } from "~/server/api/routers/workspace";
|
||||
import { createTRPCRouter } from "~/server/api/trpc";
|
||||
|
||||
/**
|
||||
@@ -16,6 +17,7 @@ export const appRouter = createTRPCRouter({
|
||||
label: labelRouter,
|
||||
list: listRouter,
|
||||
import: importRouter,
|
||||
workspace: workspaceRouter,
|
||||
});
|
||||
|
||||
// export type definition of API
|
||||
|
||||
24
src/server/api/routers/workspace.ts
Normal file
24
src/server/api/routers/workspace.ts
Normal file
@@ -0,0 +1,24 @@
|
||||
import { and, eq, isNull } from "drizzle-orm";
|
||||
|
||||
import { workspaces } from "~/server/db/schema";
|
||||
|
||||
import {
|
||||
createTRPCRouter,
|
||||
publicProcedure,
|
||||
} from "~/server/api/trpc";
|
||||
|
||||
export const workspaceRouter = createTRPCRouter({
|
||||
all: publicProcedure.query(({ ctx }) => {
|
||||
const userId = ctx.session?.user.id;
|
||||
|
||||
if (!userId) return;
|
||||
|
||||
return ctx.db.query.workspaces.findMany({
|
||||
where: and(eq(workspaces.createdBy, userId), isNull(workspaces.deletedAt)),
|
||||
columns: {
|
||||
publicId: true,
|
||||
name: true,
|
||||
},
|
||||
});
|
||||
}),
|
||||
});
|
||||
Reference in New Issue
Block a user