mirror of
https://github.com/yangshun/tech-interview-handbook.git
synced 2025-07-31 22:24:59 +08:00
[resumes][feat] Fetch all resumes in browse page (#325)
* [resumes][fix] Remove BrowsePageBody component * [resumes][feat] Add router to fetch all resumes * [resumes][feat] Fetch all resumes in browse page * [resumes][chore] Add todo * [resumes][fix] Remove unnecessary updatedAt field * [resumes][fix] Change from resumeProfile to user
This commit is contained in:
@ -2,6 +2,7 @@ import superjson from 'superjson';
|
||||
|
||||
import { createRouter } from './context';
|
||||
import { protectedExampleRouter } from './protected-example-router';
|
||||
import { resumesRouter } from './resumes';
|
||||
import { resumesDetailsRouter } from './resumes-details-router';
|
||||
import { resumesResumeUserRouter } from './resumes-resume-user-router';
|
||||
import { resumeReviewsRouter } from './resumes-reviews-router';
|
||||
@ -17,6 +18,7 @@ export const appRouter = createRouter()
|
||||
.merge('auth.', protectedExampleRouter)
|
||||
.merge('todos.', todosRouter)
|
||||
.merge('todos.user.', todosUserRouter)
|
||||
.merge('resumes.resume.', resumesRouter)
|
||||
.merge('resumes.details.', resumesDetailsRouter)
|
||||
.merge('resumes.resume.user.', resumesResumeUserRouter)
|
||||
.merge('resumes.reviews.', resumeReviewsRouter)
|
||||
|
42
apps/portal/src/server/router/resumes.ts
Normal file
42
apps/portal/src/server/router/resumes.ts
Normal file
@ -0,0 +1,42 @@
|
||||
import { createRouter } from './context';
|
||||
|
||||
import type { Resume } from '~/types/resume';
|
||||
|
||||
export const resumesRouter = createRouter().query('list', {
|
||||
async resolve({ ctx }) {
|
||||
const resumesData = await ctx.prisma.resumesResume.findMany({
|
||||
include: {
|
||||
_count: {
|
||||
select: {
|
||||
comments: true,
|
||||
stars: true,
|
||||
},
|
||||
},
|
||||
user: {
|
||||
select: {
|
||||
name: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
orderBy: {
|
||||
createdAt: 'desc',
|
||||
},
|
||||
});
|
||||
return resumesData.map((r) => {
|
||||
const resume: Resume = {
|
||||
additionalInfo: r.additionalInfo,
|
||||
createdAt: r.createdAt,
|
||||
experience: r.experience,
|
||||
id: r.id,
|
||||
location: r.location,
|
||||
numComments: r._count.comments,
|
||||
numStars: r._count.stars,
|
||||
role: r.role,
|
||||
title: r.title,
|
||||
url: r.url,
|
||||
user: r.user.name!,
|
||||
};
|
||||
return resume;
|
||||
});
|
||||
},
|
||||
});
|
Reference in New Issue
Block a user