[resumes][feat] add query for max resume upvote count

This commit is contained in:
Keane Chan
2022-10-20 22:15:54 +08:00
parent 10d23fe464
commit 4526867601
2 changed files with 33 additions and 3 deletions

View File

@ -9,15 +9,19 @@ type Props = Readonly<{
}>;
export default function ResumeUserBadges({ userId }: Props) {
const userReviewedResumesCountQuery = trpc.useQuery([
const userReviewedResumeCountQuery = trpc.useQuery([
'resumes.resume.findUserReviewedResumeCount',
{ userId },
]);
const userMaxResumeUpvoteCountQuery = trpc.useQuery([
'resumes.resume.findUserMaxResumeUpvoteCount',
{ userId },
]);
// TODO: Add other badges in
const payload: BadgePayload = {
maxResumeUpvoteCount: 10,
reviewedResumesCount: userReviewedResumesCountQuery.data ?? 0,
maxResumeUpvoteCount: userMaxResumeUpvoteCountQuery.data ?? 0,
reviewedResumesCount: userReviewedResumeCountQuery.data ?? 0,
topUpvotedCommentCount: 10,
};

View File

@ -157,4 +157,30 @@ export const resumesRouter = createRouter()
},
});
},
})
.query('findUserMaxResumeUpvoteCount', {
input: z.object({
userId: z.string(),
}),
async resolve({ ctx, input }) {
const highestUpvotedResume = await ctx.prisma.resumesResume.findFirst({
include: {
_count: {
select: {
stars: true,
},
},
},
orderBy: {
stars: {
_count: 'desc',
},
},
where: {
userId: input.userId,
},
});
return highestUpvotedResume?._count?.stars ?? 0;
},
});