Add writing reviews for answers
This commit is contained in:
@@ -18,7 +18,7 @@ export default defineEventHandler(async (event) => {
|
||||
})
|
||||
);
|
||||
|
||||
const hunt = await prisma.hunt.findUnique({
|
||||
const _hunt = await prisma.hunt.findUnique({
|
||||
where: {
|
||||
id: huntId,
|
||||
OR: [
|
||||
@@ -58,6 +58,22 @@ export default defineEventHandler(async (event) => {
|
||||
answers: true
|
||||
}
|
||||
},
|
||||
answers: {
|
||||
select: {
|
||||
review: {
|
||||
select: {
|
||||
score: true
|
||||
}
|
||||
}
|
||||
},
|
||||
where: {
|
||||
review: {
|
||||
score: {
|
||||
gt: 0
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
members: {
|
||||
select: {
|
||||
createdAt: true,
|
||||
@@ -75,9 +91,18 @@ export default defineEventHandler(async (event) => {
|
||||
}
|
||||
});
|
||||
|
||||
if (!hunt) {
|
||||
if (!_hunt) {
|
||||
throw createError({ status: 404, statusText: 'Not found!' });
|
||||
}
|
||||
const { teams, ...hunt } = _hunt;
|
||||
|
||||
return hunt;
|
||||
return {
|
||||
teams: teams
|
||||
.map(({ answers, ...t }) => ({
|
||||
...t,
|
||||
score: answers.reduce((sum, a) => sum + (a.review?.score || 0), 0)
|
||||
}))
|
||||
.toSorted((a, b) => b.score - a.score),
|
||||
...hunt
|
||||
};
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user