[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:
Su Yin
2022-10-08 00:26:16 +08:00
committed by GitHub
parent 2e947f5fb0
commit b37aae2154
6 changed files with 291 additions and 238 deletions

View File

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

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