mirror of
https://github.com/yangshun/tech-interview-handbook.git
synced 2025-07-31 06:03:55 +08:00
[resumes][feat] submit resume mutation (#310)
This commit is contained in:
@ -2,6 +2,7 @@ import superjson from 'superjson';
|
||||
|
||||
import { createRouter } from './context';
|
||||
import { protectedExampleRouter } from './protected-example-router';
|
||||
import { resumesResumeUserRouter } from './resumes-resume-user-router';
|
||||
import { todosRouter } from './todos';
|
||||
import { todosUserRouter } from './todos-user-router';
|
||||
|
||||
@ -12,7 +13,8 @@ export const appRouter = createRouter()
|
||||
// Example routers. Learn more about tRPC routers: https://trpc.io/docs/v9/router
|
||||
.merge('auth.', protectedExampleRouter)
|
||||
.merge('todos.', todosRouter)
|
||||
.merge('todos.user.', todosUserRouter);
|
||||
.merge('todos.user.', todosUserRouter)
|
||||
.merge('resumes.resume.user.', resumesResumeUserRouter);
|
||||
|
||||
// Export type definition of API
|
||||
export type AppRouter = typeof appRouter;
|
||||
|
30
apps/portal/src/server/router/resumes-resume-user-router.ts
Normal file
30
apps/portal/src/server/router/resumes-resume-user-router.ts
Normal file
@ -0,0 +1,30 @@
|
||||
import { z } from 'zod';
|
||||
|
||||
import { createProtectedRouter } from './context';
|
||||
|
||||
export const resumesResumeUserRouter = createProtectedRouter().mutation(
|
||||
'create',
|
||||
{
|
||||
// TODO: Use enums for experience, location, role
|
||||
input: z.object({
|
||||
additionalInfo: z.string().optional(),
|
||||
experience: z.string(),
|
||||
location: z.string(),
|
||||
role: z.string(),
|
||||
title: z.string(),
|
||||
}),
|
||||
async resolve({ ctx, input }) {
|
||||
const userId = ctx.session?.user.id;
|
||||
|
||||
// TODO: Store file in file storage and retrieve URL
|
||||
|
||||
return await ctx.prisma.resumesResume.create({
|
||||
data: {
|
||||
...input,
|
||||
url: '',
|
||||
userId,
|
||||
},
|
||||
});
|
||||
},
|
||||
},
|
||||
);
|
Reference in New Issue
Block a user