Search in sources :

Example 1 with StudyTimeNotification

use of fi.otavanopisto.muikku.plugins.timed.notifications.model.StudyTimeNotification in project muikku by otavanopisto.

the class StudyTimeNotificationDAO method create.

public StudyTimeNotification create(String studentIdentifier, Date sent) {
    StudyTimeNotification studyTimeNotification = new StudyTimeNotification();
    studyTimeNotification.setSent(sent);
    studyTimeNotification.setStudentIdentifier(studentIdentifier);
    return persist(studyTimeNotification);
}
Also used : StudyTimeNotification(fi.otavanopisto.muikku.plugins.timed.notifications.model.StudyTimeNotification)

Example 2 with StudyTimeNotification

use of fi.otavanopisto.muikku.plugins.timed.notifications.model.StudyTimeNotification in project muikku by otavanopisto.

the class StudyTimeNotificationDAO method listByDateAfter.

public List<StudyTimeNotification> listByDateAfter(Date sent) {
    EntityManager entityManager = getEntityManager();
    CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
    CriteriaQuery<StudyTimeNotification> criteria = criteriaBuilder.createQuery(StudyTimeNotification.class);
    Root<StudyTimeNotification> root = criteria.from(StudyTimeNotification.class);
    criteria.select(root);
    criteria.where(criteriaBuilder.greaterThanOrEqualTo(root.get(StudyTimeNotification_.sent), sent));
    return entityManager.createQuery(criteria).getResultList();
}
Also used : CriteriaBuilder(javax.persistence.criteria.CriteriaBuilder) EntityManager(javax.persistence.EntityManager) StudyTimeNotification(fi.otavanopisto.muikku.plugins.timed.notifications.model.StudyTimeNotification)

Example 3 with StudyTimeNotification

use of fi.otavanopisto.muikku.plugins.timed.notifications.model.StudyTimeNotification in project muikku by otavanopisto.

the class GuiderRESTService method listUserNotifications.

@GET
@Path("/users/{IDENTIFIER}/latestNotifications")
@RESTPermit(GuiderPermissions.GUIDER_LIST_NOTIFICATIONS)
public Response listUserNotifications(@PathParam("IDENTIFIER") String identifierString) {
    SchoolDataIdentifier identifier = SchoolDataIdentifier.fromId(identifierString);
    UserEntity ue = userEntityController.findUserEntityByUserIdentifier(identifier);
    if (ue == null) {
        return Response.status(Status.NOT_FOUND).entity("User entity not found").build();
    }
    Map<String, Date> map = new HashMap<>();
    StudyTimeNotification notification = studyTimeLeftNotificationController.findLatestByUserIdentifier(identifier);
    if (notification != null)
        map.put("studytime", notification.getSent());
    NoPassedCoursesNotification noPassNotification = noPassedCoursesNotificationController.findLatestByUserIdentifier(identifier);
    if (noPassNotification != null)
        map.put("nopassedcourses", noPassNotification.getSent());
    AssesmentRequestNotification assessmentRequestNotification = assessmentRequestNotificationController.findLatestByUserIdentifier(identifier);
    if (assessmentRequestNotification != null)
        map.put("assesmentrequest", assessmentRequestNotification.getSent());
    return Response.ok().entity(map).build();
}
Also used : SchoolDataIdentifier(fi.otavanopisto.muikku.schooldata.SchoolDataIdentifier) AssesmentRequestNotification(fi.otavanopisto.muikku.plugins.timed.notifications.model.AssesmentRequestNotification) StudyTimeNotification(fi.otavanopisto.muikku.plugins.timed.notifications.model.StudyTimeNotification) HashMap(java.util.HashMap) NoPassedCoursesNotification(fi.otavanopisto.muikku.plugins.timed.notifications.model.NoPassedCoursesNotification) WorkspaceUserEntity(fi.otavanopisto.muikku.model.workspace.WorkspaceUserEntity) UserEntity(fi.otavanopisto.muikku.model.users.UserEntity) Date(java.util.Date) Path(javax.ws.rs.Path) RESTPermit(fi.otavanopisto.security.rest.RESTPermit) GET(javax.ws.rs.GET)

Example 4 with StudyTimeNotification

use of fi.otavanopisto.muikku.plugins.timed.notifications.model.StudyTimeNotification in project muikku by otavanopisto.

the class StudyTimeNotificationDAO method findLatestByUserIdentifier.

public StudyTimeNotification findLatestByUserIdentifier(SchoolDataIdentifier identifier) {
    EntityManager entityManager = getEntityManager();
    CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
    CriteriaQuery<StudyTimeNotification> criteria = criteriaBuilder.createQuery(StudyTimeNotification.class);
    Root<StudyTimeNotification> root = criteria.from(StudyTimeNotification.class);
    criteria.select(root);
    criteria.where(criteriaBuilder.equal(root.get(StudyTimeNotification_.studentIdentifier), identifier.toId()));
    criteria.orderBy(criteriaBuilder.desc(root.get(StudyTimeNotification_.sent)));
    TypedQuery<StudyTimeNotification> query = entityManager.createQuery(criteria);
    query.setMaxResults(1);
    return getSingleResult(query);
}
Also used : CriteriaBuilder(javax.persistence.criteria.CriteriaBuilder) EntityManager(javax.persistence.EntityManager) StudyTimeNotification(fi.otavanopisto.muikku.plugins.timed.notifications.model.StudyTimeNotification)

Example 5 with StudyTimeNotification

use of fi.otavanopisto.muikku.plugins.timed.notifications.model.StudyTimeNotification in project muikku by otavanopisto.

the class StudyTimeLeftNotificationController method listNotifiedSchoolDataIdentifiersAfter.

public List<SchoolDataIdentifier> listNotifiedSchoolDataIdentifiersAfter(Date date) {
    List<SchoolDataIdentifier> results = new ArrayList<>();
    List<StudyTimeNotification> studyTimeNotifications = studyTimeNotificationDAO.listByDateAfter(date);
    for (StudyTimeNotification studyTimeNotification : studyTimeNotifications) {
        results.add(SchoolDataIdentifier.fromId(studyTimeNotification.getStudentIdentifier()));
    }
    return results;
}
Also used : SchoolDataIdentifier(fi.otavanopisto.muikku.schooldata.SchoolDataIdentifier) StudyTimeNotification(fi.otavanopisto.muikku.plugins.timed.notifications.model.StudyTimeNotification) ArrayList(java.util.ArrayList)

Aggregations

StudyTimeNotification (fi.otavanopisto.muikku.plugins.timed.notifications.model.StudyTimeNotification)5 SchoolDataIdentifier (fi.otavanopisto.muikku.schooldata.SchoolDataIdentifier)2 EntityManager (javax.persistence.EntityManager)2 CriteriaBuilder (javax.persistence.criteria.CriteriaBuilder)2 UserEntity (fi.otavanopisto.muikku.model.users.UserEntity)1 WorkspaceUserEntity (fi.otavanopisto.muikku.model.workspace.WorkspaceUserEntity)1 AssesmentRequestNotification (fi.otavanopisto.muikku.plugins.timed.notifications.model.AssesmentRequestNotification)1 NoPassedCoursesNotification (fi.otavanopisto.muikku.plugins.timed.notifications.model.NoPassedCoursesNotification)1 RESTPermit (fi.otavanopisto.security.rest.RESTPermit)1 ArrayList (java.util.ArrayList)1 Date (java.util.Date)1 HashMap (java.util.HashMap)1 GET (javax.ws.rs.GET)1 Path (javax.ws.rs.Path)1