package fi.otavanopisto.muikku.plugins.material.coops;
import java.util.ArrayList;
import java.util.List;
import javax.enterprise.context.Dependent;
import javax.inject.Inject;
import org.apache.commons.lang3.StringUtils;
import fi.otavanopisto.muikku.model.users.UserEntity;
import fi.otavanopisto.muikku.plugins.material.coops.model.CoOpsSession;
import fi.otavanopisto.muikku.schooldata.entity.User;
import fi.otavanopisto.muikku.users.UserController;
import fi.otavanopisto.muikku.users.UserEmailEntityController;
import fi.otavanopisto.muikku.users.UserEntityController;
@Dependent
public class CoOpsSessionEventsController {
@Inject
private UserController userController;
@Inject
private UserEntityController userEntityController;
@Inject
private UserEmailEntityController userEmailEntityController;
public List<Object> createSessionEvents(List<CoOpsSession> sessions, String status) {
List<Object> result = new ArrayList<Object>();
String email = null;
// TODO: Localize
String displayName = "Anonymous";
for (CoOpsSession session : sessions) {
String sessionId = session.getSessionId();
Long userEntityId = session.getUserEntityId();
if (userEntityId != null) {
UserEntity userEntity = userEntityController.findUserEntityById(userEntityId);
if (userEntity != null) {
email = userEmailEntityController.getUserDefaultEmailAddress(userEntity, false);
User user = userController.findUserByDataSourceAndIdentifier(userEntity.getDefaultSchoolDataSource(), userEntity.getDefaultIdentifier());
if (user != null) {
displayName = user.getFirstName() + ' ' + user.getLastName();
}
}
}
if (StringUtils.isBlank(email)) {
email = sessionId + "@nomail.invalid";
}
result.add(new CoOpsSessionEvent(sessionId, displayName, email, status));
}
return result;
}
}