[resumes][feat] Add router to fetch all resumes

pull/325/head
Tan Su Yin 3 years ago
parent 657076d396
commit e3b9108835

@ -2,6 +2,7 @@ import superjson from 'superjson';
import { createRouter } from './context';
import { protectedExampleRouter } from './protected-example-router';
import { resumesRouter } from './resumes';
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.resume.', resumesRouter)
.merge('resumes.resume.user.', resumesResumeUserRouter)
.merge('resumes.reviews.', resumeReviewsRouter)
.merge('resumes.reviews.user.', resumesReviewsUserRouter);

@ -0,0 +1,47 @@
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,
},
},
resumesProfile: {
select: {
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,
updatedAt: r.updatedAt,
url: r.url,
user: r.resumesProfile.user.name!,
};
return resume;
});
},
});

@ -0,0 +1,14 @@
export type Resume = {
additionalInfo: string?;
createdAt: Date;
experience: string;
id: string;
location: string;
numComments: number;
numStars: number;
role: string;
title: string;
updatedAt: Date;
url: string;
user: string;
};
Loading…
Cancel
Save