У меня есть приложение Vapor 3, в котором мне нужно определить, есть ли у 2 пользователей общие группы.
Итак, у меня есть 2 модели: Пользователь и Группа. Пользователь может принадлежать ко многим группам. Но у меня есть проверка прав доступа: если оба пользователя совместно используют общую группу, они могут отправлять друг другу сообщения.
final public class User: PostgreSQLModel {
public var id: Int?
var firstName: String
var lastName: String
}
extension User {
var containers: Siblings<User, Group, UserGroups> {
return siblings()
}
}
final public class Group: PostgreSQLModel {
public var id: Int?
var name: String
}
Я хотел бы сделать следующее:
UserGroups.query(to: request).group(.or) { $0.filter(\.userId == user.id!).filter(\.userId == user.id!) }.flatMap { ... }
плюс фильтр, который говорит, где groupId == groupId.
Есть мысли или предложения?