mirror of
https://github.com/yangshun/tech-interview-handbook.git
synced 2025-07-28 20:52:00 +08:00
[resumes][feat] add query for max resume upvote count
This commit is contained in:
@ -9,15 +9,19 @@ type Props = Readonly<{
|
|||||||
}>;
|
}>;
|
||||||
|
|
||||||
export default function ResumeUserBadges({ userId }: Props) {
|
export default function ResumeUserBadges({ userId }: Props) {
|
||||||
const userReviewedResumesCountQuery = trpc.useQuery([
|
const userReviewedResumeCountQuery = trpc.useQuery([
|
||||||
'resumes.resume.findUserReviewedResumeCount',
|
'resumes.resume.findUserReviewedResumeCount',
|
||||||
{ userId },
|
{ userId },
|
||||||
]);
|
]);
|
||||||
|
const userMaxResumeUpvoteCountQuery = trpc.useQuery([
|
||||||
|
'resumes.resume.findUserMaxResumeUpvoteCount',
|
||||||
|
{ userId },
|
||||||
|
]);
|
||||||
|
|
||||||
// TODO: Add other badges in
|
// TODO: Add other badges in
|
||||||
const payload: BadgePayload = {
|
const payload: BadgePayload = {
|
||||||
maxResumeUpvoteCount: 10,
|
maxResumeUpvoteCount: userMaxResumeUpvoteCountQuery.data ?? 0,
|
||||||
reviewedResumesCount: userReviewedResumesCountQuery.data ?? 0,
|
reviewedResumesCount: userReviewedResumeCountQuery.data ?? 0,
|
||||||
topUpvotedCommentCount: 10,
|
topUpvotedCommentCount: 10,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -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;
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
Reference in New Issue
Block a user