Files
documenso/packages/trpc/server/organisation-router/decline-organisation-member-invite.ts
2025-06-10 11:49:52 +10:00

39 lines
1.1 KiB
TypeScript

import { OrganisationMemberInviteStatus } from '@prisma/client';
import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error';
import { prisma } from '@documenso/prisma';
import { maybeAuthenticatedProcedure } from '../trpc';
import {
ZDeclineOrganisationMemberInviteRequestSchema,
ZDeclineOrganisationMemberInviteResponseSchema,
} from './decline-organisation-member-invite.types';
export const declineOrganisationMemberInviteRoute = maybeAuthenticatedProcedure
.input(ZDeclineOrganisationMemberInviteRequestSchema)
.output(ZDeclineOrganisationMemberInviteResponseSchema)
.mutation(async ({ input }) => {
const { token } = input;
const organisationMemberInvite = await prisma.organisationMemberInvite.findFirst({
where: {
token,
},
});
if (!organisationMemberInvite) {
throw new AppError(AppErrorCode.NOT_FOUND);
}
await prisma.organisationMemberInvite.update({
where: {
id: organisationMemberInvite.id,
},
data: {
status: OrganisationMemberInviteStatus.DECLINED,
},
});
// TODO: notify the team owner
});