add seventy seven

This commit is contained in:
Carl-Gerhard Lindesvärd
2024-05-21 22:16:51 +02:00
parent 9558de3385
commit c90848765a
12 changed files with 194 additions and 1 deletions

View File

@@ -9,6 +9,7 @@ import { projectRouter } from './routers/project';
import { referenceRouter } from './routers/reference';
import { reportRouter } from './routers/report';
import { shareRouter } from './routers/share';
import { ticketRouter } from './routers/ticket';
import { userRouter } from './routers/user';
import { createTRPCRouter } from './trpc';
@@ -30,6 +31,7 @@ export const appRouter = createTRPCRouter({
share: shareRouter,
onboarding: onboardingRouter,
reference: referenceRouter,
ticket: ticketRouter,
});
// export type definition of API

View File

@@ -0,0 +1,34 @@
import { clerkClient } from '@clerk/fastify';
import { SeventySevenClient } from '@seventy-seven/sdk';
import { z } from 'zod';
import { createTRPCRouter, protectedProcedure } from '../trpc';
const API_KEY = process.env.SEVENTY_SEVEN_API_KEY!;
const client = new SeventySevenClient(API_KEY);
export const ticketRouter = createTRPCRouter({
create: protectedProcedure
.input(
z.object({
subject: z.string(),
body: z.string(),
meta: z.record(z.string(), z.unknown()),
})
)
.mutation(async ({ input, ctx }) => {
if (!API_KEY) {
throw new Error('Ticket system not configured');
}
const user = await clerkClient.users.getUser(ctx.session.userId);
return client.createTicket({
subject: input.subject,
body: input.body,
meta: input.meta,
senderEmail: user.primaryEmailAddress?.emailAddress || 'none',
senderFullName: user.fullName || 'none',
});
}),
});