package fi.otavanopisto.muikku.plugins.friends;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import fi.otavanopisto.muikku.model.users.UserEntity;
import fi.otavanopisto.muikku.plugins.friends.Friend;
import fi.otavanopisto.muikku.plugins.friends.FriendRequest;
import fi.otavanopisto.muikku.session.SessionController;
import fi.otavanopisto.muikku.users.UserEntityController;
import fi.otavanopisto.security.LoggedIn;
public class FriendsController {
@Inject
private SessionController sessionController;
@Inject
private UserEntityController userEntityController;
@Inject
private FriendDAO friendDAO;
@Inject
private FriendRequestDAO friendRequestDAO;
@LoggedIn
public FriendRequest createFriendRequest(UserEntity recipient, String message) {
UserEntity creator = sessionController.getLoggedUserEntity();
return friendRequestDAO.create(creator, recipient, message);
}
@LoggedIn
public List<UserEntity> listFriends() {
UserEntity user = sessionController.getLoggedUserEntity();
List<UserEntity> friends = new ArrayList<UserEntity>();
List<Friend> listByUser = friendDAO.listByUser(user);
for (Friend f : listByUser) {
if (!f.getUserA().equals(user.getId()))
friends.add(userEntityController.findUserEntityById(f.getUserA()));
if (f.getUserB().equals(user.getId()))
friends.add(userEntityController.findUserEntityById(f.getUserB()));
}
return friends;
}
@LoggedIn
public boolean isFriend(UserEntity user) {
UserEntity loggedUser = sessionController.getLoggedUserEntity();
Friend f = friendDAO.findByUsers(loggedUser, user);
return f != null;
}
}