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

52 lines
1.3 KiB
TypeScript

import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error';
import { prisma } from '@documenso/prisma';
import { adminProcedure } from '../trpc';
import {
ZUpdateAdminOrganisationRequestSchema,
ZUpdateAdminOrganisationResponseSchema,
} from './update-admin-organisation.types';
export const updateAdminOrganisationRoute = adminProcedure
.input(ZUpdateAdminOrganisationRequestSchema)
.output(ZUpdateAdminOrganisationResponseSchema)
.mutation(async ({ input }) => {
const { organisationId, data } = input;
const organisation = await prisma.organisation.findUnique({
where: {
id: organisationId,
},
include: {
organisationClaim: true,
},
});
if (!organisation) {
throw new AppError(AppErrorCode.NOT_FOUND);
}
const { name, url, customerId, claims, originalSubscriptionClaimId } = data;
await prisma.organisation.update({
where: {
id: organisationId,
},
data: {
name,
url,
customerId: customerId ? customerId : undefined,
},
});
await prisma.organisationClaim.update({
where: {
id: organisation.organisationClaimId,
},
data: {
...claims,
originalSubscriptionClaimId,
},
});
});