В моем бэкэнде у меня есть Post
s и PostController
. Сообщение может быть visibleToFriendOnly
.
В GET /posts
я хочу вернуть все сообщения, которые может просматривать текущий пользователь.
Модель User
имеет свойство friends
, то есть стержень User, User
со столбцами userID
и friendID
.
В настоящее время я получаю сообщения, подобные этому:
/// /posts
func all(req: Request) throws -> Future<[Post]> {
let authenticated = try req.requireAuthenticated(User.self)
return Post.query(on: req)
.filter(\Post.visibleForUserType == authenticated.type)
// FIXME: respect .visibleForFriendsOnly
.all()
}
Мне трудно с этим, потому что для каждого Post
мне нужно было бы получить userID
, а затем User
(кто автор), а затем запросить пользователя friends
и посмотрите, есть ли текущий пользователь в этом списке.
Есть ли реальный способ сделать это? Может быть, соединение или что-то?