kysely query 6

get-schedule-edge
supalarry 2023-10-30 11:25:25 +01:00
parent 5f8fcdf100
commit 0a911542e9
1 changed files with 21 additions and 9 deletions

View File

@ -808,14 +808,26 @@ async function getTeamIdFromSlug(
organizationDetails: { currentOrgDomain: string | null; isValidOrgDomain: boolean }
) {
const { currentOrgDomain, isValidOrgDomain } = organizationDetails;
const team = await prisma.team.findFirst({
where: {
slug,
parent: isValidOrgDomain && currentOrgDomain ? getSlugOrRequestedSlug(currentOrgDomain) : null,
},
select: {
id: true,
},
});
const team = await db
.selectFrom("Team")
.innerJoin("Team as Parent", "Parent.id", "Team.parentId")
.where((eb) => {
const and: Expression<SqlBool>[] = [];
and.push(eb("Team.slug", "=", slug));
if (isValidOrgDomain && currentOrgDomain) {
const slugifiedValue = slugify(currentOrgDomain);
and.push(
eb.or([
eb("Parent.slug", "=", slugifiedValue),
eb(traverseJSON(eb, "Parent.metadata", "requestedSlug"), "=", slugifiedValue),
])
);
}
return eb.and(and);
})
.select("Team.id")
.executeTakeFirst();
return team?.id;
}