This commit is contained in:
David Nguyen
2025-05-07 15:03:20 +10:00
parent 419bc02171
commit 7abfc9e271
390 changed files with 21254 additions and 12607 deletions

View File

@ -0,0 +1,58 @@
import { getHighestOrganisationRoleInGroup } from '@documenso/lib/utils/organisations';
import { prisma } from '@documenso/prisma';
import { authenticatedProcedure } from '../trpc';
import {
ZGetOrganisationsRequestSchema,
ZGetOrganisationsResponseSchema,
} from './get-organisations.types';
export const getOrganisationsRoute = authenticatedProcedure
// .meta(getOrganisationsMeta)
.input(ZGetOrganisationsRequestSchema)
.output(ZGetOrganisationsResponseSchema)
.query(async ({ ctx }) => {
const { user } = ctx;
return getOrganisations({ userId: user.id });
});
export const getOrganisations = async ({ userId }: { userId: number }) => {
const organisations = await prisma.organisation.findMany({
where: {
members: {
some: {
userId,
},
},
},
include: {
members: {
where: {
userId,
},
},
groups: {
where: {
organisationGroupMembers: {
some: {
organisationMember: {
userId,
},
},
},
},
},
},
});
return organisations.map(({ groups, ...organisation }) => {
const currentOrganisationRole = getHighestOrganisationRoleInGroup(groups);
return {
...organisation,
currentOrganisationRole: currentOrganisationRole,
currentMemberId: organisation.members[0].id,
};
});
};