package fi.otavanopisto.muikku.plugins.friends;
import java.util.Date;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
import fi.otavanopisto.muikku.plugins.friends.FriendRequest_;
import fi.otavanopisto.muikku.model.users.UserEntity;
import fi.otavanopisto.muikku.plugins.CorePluginsDAO;
import fi.otavanopisto.muikku.plugins.friends.FriendRequest;
public class FriendRequestDAO extends CorePluginsDAO<FriendRequest> {
private static final long serialVersionUID = 9013247702204973018L;
public FriendRequest create(UserEntity creator, UserEntity recipient, String message) {
FriendRequest friendRequest = new FriendRequest();
friendRequest.setCreated(new Date());
friendRequest.setCreator(creator.getId());
friendRequest.setRecipient(recipient.getId());
friendRequest.setMessage(message);
getEntityManager().persist(friendRequest);
return friendRequest;
}
public List<FriendRequest> listByRecipient(UserEntity recipient) {
EntityManager entityManager = getEntityManager();
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
CriteriaQuery<FriendRequest> criteria = criteriaBuilder.createQuery(FriendRequest.class);
Root<FriendRequest> root = criteria.from(FriendRequest.class);
criteria.select(root);
criteria.where(
criteriaBuilder.and(
criteriaBuilder.equal(root.get(FriendRequest_.recipient), recipient.getId()),
criteriaBuilder.equal(root.get(FriendRequest_.archived), Boolean.FALSE)
)
);
return entityManager.createQuery(criteria).getResultList();
}
}