47 lines
982 B
TypeScript
47 lines
982 B
TypeScript
import { db, VisitType } from '@nice/common';
|
|
export async function updatePostViewCount(id: string, type: VisitType) {
|
|
const totalViews = await db.visit.aggregate({
|
|
_sum: {
|
|
views: true,
|
|
},
|
|
where: {
|
|
postId: id,
|
|
type: type,
|
|
},
|
|
});
|
|
if (type === VisitType.READED) {
|
|
await db.post.update({
|
|
where: {
|
|
id: id,
|
|
},
|
|
data: {
|
|
meta: {
|
|
views: totalViews._sum.views || 0,
|
|
}, // Use 0 if no visits exist
|
|
},
|
|
});
|
|
} else if (type === VisitType.LIKE) {
|
|
await db.post.update({
|
|
where: {
|
|
id: id,
|
|
},
|
|
data: {
|
|
meta: {
|
|
likes: totalViews._sum.views || 0, // Use 0 if no visits exist
|
|
},
|
|
},
|
|
});
|
|
} else if (type === VisitType.HATE) {
|
|
await db.post.update({
|
|
where: {
|
|
id: id,
|
|
},
|
|
data: {
|
|
meta: {
|
|
hates: totalViews._sum.views || 0, // Use 0 if no visits exist
|
|
},
|
|
},
|
|
});
|
|
}
|
|
}
|