[resumes][feat] submit resume mutation (#310)

This commit is contained in:
Keane Chan
2022-10-06 17:40:11 +08:00
committed by GitHub
parent 7c40353f6b
commit 9f61ecf9c2
5 changed files with 56 additions and 11 deletions

View File

@ -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;

View 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,
},
});
},
},
);