55 lines
947 B
TypeScript
Executable File
55 lines
947 B
TypeScript
Executable File
import {
|
|
db,
|
|
Post,
|
|
PostType,
|
|
UserProfile,
|
|
VisitType,
|
|
} from '@nice/common';
|
|
|
|
export async function setPostRelation(params: {
|
|
data: Post;
|
|
staff?: UserProfile;
|
|
}) {
|
|
const { data, staff } = params;
|
|
const limitedComments = await db.post.findMany({
|
|
where: {
|
|
parentId: data.id,
|
|
type: PostType.POST_COMMENT,
|
|
},
|
|
include: {
|
|
author: true,
|
|
},
|
|
take: 5,
|
|
});
|
|
const commentsCount = await db.post.count({
|
|
where: {
|
|
parentId: data.id,
|
|
type: PostType.POST_COMMENT,
|
|
},
|
|
});
|
|
const readed =
|
|
(await db.visit.count({
|
|
where: {
|
|
postId: data.id,
|
|
type: VisitType.READED,
|
|
visitorId: staff?.id,
|
|
},
|
|
})) > 0;
|
|
const readedCount = await db.visit.count({
|
|
where: {
|
|
postId: data.id,
|
|
type: VisitType.READED,
|
|
},
|
|
});
|
|
|
|
Object.assign(data, {
|
|
readed,
|
|
readedCount,
|
|
limitedComments,
|
|
commentsCount,
|
|
// trouble
|
|
});
|
|
}
|
|
|
|
|