feat: card filters
This commit is contained in:
@@ -18,8 +18,12 @@ export const getAllByWorkspaceId = async (
|
||||
export const getByPublicId = async (
|
||||
db: SupabaseClient<Database>,
|
||||
boardPublicId: string,
|
||||
filters: {
|
||||
members: string[];
|
||||
labels: string[];
|
||||
},
|
||||
) => {
|
||||
const { data } = await db
|
||||
let query = db
|
||||
.from("board")
|
||||
.select(
|
||||
`
|
||||
@@ -50,12 +54,12 @@ export const getByPublicId = async (
|
||||
description,
|
||||
listId,
|
||||
index,
|
||||
labels:label (
|
||||
labels:label${filters.labels.length > 0 ? "!inner" : ""} (
|
||||
publicId,
|
||||
name,
|
||||
colourCode
|
||||
),
|
||||
members:workspace_members (
|
||||
members:workspace_members${filters.members.length > 0 ? "!inner" : ""} (
|
||||
publicId,
|
||||
user (
|
||||
name
|
||||
@@ -68,12 +72,24 @@ export const getByPublicId = async (
|
||||
.eq("publicId", boardPublicId)
|
||||
.is("deletedAt", null)
|
||||
.is("lists.deletedAt", null)
|
||||
.is("lists.cards.deletedAt", null)
|
||||
.is("lists.cards.deletedAt", null);
|
||||
|
||||
if (filters.labels.length > 0) {
|
||||
query = query.in("lists.cards.labels.publicId", filters.labels);
|
||||
}
|
||||
|
||||
if (filters.members.length > 0) {
|
||||
query = query.in("lists.cards.members.publicId", filters.members);
|
||||
}
|
||||
|
||||
const { data, error } = await query
|
||||
.order("index", { foreignTable: "list", ascending: true })
|
||||
.order("index", { foreignTable: "list.card", ascending: true })
|
||||
.limit(1)
|
||||
.single();
|
||||
|
||||
console.log(error);
|
||||
|
||||
return data;
|
||||
};
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ export const update = async (
|
||||
workspacePublicId: string,
|
||||
name: string,
|
||||
) => {
|
||||
const { data, error } = await db
|
||||
const { data } = await db
|
||||
.from("workspace")
|
||||
.update({ name })
|
||||
.eq("publicId", workspacePublicId)
|
||||
|
||||
Reference in New Issue
Block a user