feat: add workspace member assertion to remaining routers

This commit is contained in:
Henry
2025-05-26 22:03:39 +01:00
parent 76b65acc0f
commit 8a81d1ff17
7 changed files with 176 additions and 19 deletions

View File

@@ -106,3 +106,25 @@ export const hardDelete = async (db: dbClient, labelId: number) => {
return result;
};
export const getWorkspaceAndLabelIdByLabelPublicId = async (
db: dbClient,
labelPublicId: string,
) => {
const result = await db.query.labels.findFirst({
columns: { id: true },
where: eq(labels.publicId, labelPublicId),
with: {
board: {
columns: { workspaceId: true },
},
},
});
return result
? {
id: result.id,
workspaceId: result.board.workspaceId,
}
: null;
};

View File

@@ -132,6 +132,7 @@ export const getByPublicIdWithMembers = (
export const getBySlugWithBoards = (db: dbClient, workspaceSlug: string) => {
return db.query.workspaces.findFirst({
columns: {
id: true,
publicId: true,
name: true,
description: true,
@@ -225,6 +226,7 @@ export const isUserInWorkspace = async (
db: dbClient,
userId: string,
workspaceId: number,
role?: "admin" | "member",
) => {
const result = await db.query.workspaceMembers.findFirst({
columns: {
@@ -235,6 +237,7 @@ export const isUserInWorkspace = async (
eq(workspaceMembers.workspaceId, workspaceId),
eq(workspaceMembers.status, "active"),
isNull(workspaceMembers.deletedAt),
role ? eq(workspaceMembers.role, role) : undefined,
),
});