import * as SegmentController from '../../controllers/segment' import { prismaClient as prisma } from '../../prismaClient' export async function postIsValidForResident({ postId, userId }): Promise { const post = await prisma.post.findOne({ where: { id: postId }, include: { audience: true, segments: true, }, }) // From now on, all post should have audience array if (post.audience.length > 0 && post.audience.some((user) => user.id === userId)) { return true } else { // Below is for older post. Older than May 2020 const userCanSeePost = (await SegmentController.getUsersForSegments(post.segments)).some( (u) => u.id === userId ) if (post.segments.length === 0 || userCanSeePost) { return true } } return false }