add seventy seven
This commit is contained in:
@@ -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
|
||||
|
||||
34
packages/trpc/src/routers/ticket.ts
Normal file
34
packages/trpc/src/routers/ticket.ts
Normal 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',
|
||||
});
|
||||
}),
|
||||
});
|
||||
Reference in New Issue
Block a user