From 6cbb305f9185b0c1768b6f8307d62045ec67be53 Mon Sep 17 00:00:00 2001 From: Wu Peirong Date: Fri, 7 Oct 2022 17:04:50 +0800 Subject: [PATCH] [resumes][feat] Add resume details router --- apps/portal/src/server/router/index.ts | 2 ++ .../server/router/resumes-details-router.ts | 27 +++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 apps/portal/src/server/router/resumes-details-router.ts diff --git a/apps/portal/src/server/router/index.ts b/apps/portal/src/server/router/index.ts index 9c2b451b..16530ff6 100644 --- a/apps/portal/src/server/router/index.ts +++ b/apps/portal/src/server/router/index.ts @@ -2,6 +2,7 @@ import superjson from 'superjson'; import { createRouter } from './context'; import { protectedExampleRouter } from './protected-example-router'; +import { resumesDetailsRouter } from './resumes-details-router'; import { resumesResumeUserRouter } from './resumes-resume-user-router'; import { resumeReviewsRouter } from './resumes-reviews-router'; import { resumesReviewsUserRouter } from './resumes-reviews-user-router'; @@ -16,6 +17,7 @@ export const appRouter = createRouter() .merge('auth.', protectedExampleRouter) .merge('todos.', todosRouter) .merge('todos.user.', todosUserRouter) + .merge('resumes.details.', resumesDetailsRouter) .merge('resumes.resume.user.', resumesResumeUserRouter) .merge('resumes.reviews.', resumeReviewsRouter) .merge('resumes.reviews.user.', resumesReviewsUserRouter); diff --git a/apps/portal/src/server/router/resumes-details-router.ts b/apps/portal/src/server/router/resumes-details-router.ts new file mode 100644 index 00000000..1464cfad --- /dev/null +++ b/apps/portal/src/server/router/resumes-details-router.ts @@ -0,0 +1,27 @@ +import { z } from 'zod'; + +import { createRouter } from './context'; + +export const resumesDetailsRouter = createRouter().query('find', { + input: z.object({ + resumeId: z.string(), + }), + async resolve({ ctx, input }) { + const { resumeId } = input; + + // Use the resumeId to query all related information of a single resume + // from Resumesresume: + return await ctx.prisma.resumesResume.findUnique({ + include: { + _count: { + select: { + stars: true, + }, + }, + }, + where: { + id: resumeId, + }, + }); + }, +});