~karollu/dhis2-academy/alerts

« back to all changes in this revision

Viewing changes to dhis-2/dhis-services/dhis-service-sms/src/main/java/org/hisp/dhis/alert/hibernate/HibernateAlertStore.java

  • Committer: Magnus Dæhlen
  • Date: 2012-12-06 14:04:32 UTC
  • Revision ID: magnudae@poppy.ifi.uio.no-20121206140432-6n9uihg5pzflfk5t
Added getalert by programstageinstanceid

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
 * @author magnudae, henrigs
22
22
 */
23
23
public class HibernateAlertStore extends HibernateGenericStore<Alert> {
24
 
 
 
24
    
25
25
    /**
26
26
     * Get all the alerts which are should be send at the current time.
27
27
     * @return the alerts that should be sent now
28
28
     */
29
29
    public Set<Alert> getAlertsDueNow(){
30
 
 
 
30
        
31
31
        // make sure no one gets an alert one day too late
32
32
        final long TWELVE_HOURS_IN_MILLIS = (1000*60*60*12);
33
33
        long twelveHoursIntoFutureFromCurrentTime = System.currentTimeMillis() + TWELVE_HOURS_IN_MILLIS;
34
 
 
 
34
        
35
35
        return new HashSet<Alert>( getCriteria( Restrictions.le("alertDate", twelveHoursIntoFutureFromCurrentTime) ).list() );
36
 
 
 
36
        
37
37
    }
38
 
 
 
38
    
39
39
    /**
40
40
     * Updates an alert with a new date and message when a program stage instance is updated
41
41
     * @param programStageInstanceId
45
45
        String hql = "from Alert where programStageInstanceId = :programStageInstanceId";
46
46
        Query query = getQuery(hql);
47
47
        query.setInteger("programStageInstanceId", programStageInstanceId);
48
 
 
49
 
 
 
48
        
 
49
        
50
50
        Alert alert = (Alert) query.uniqueResult();
51
51
        alert.setAlertDate(newDate);
52
 
 
 
52
        
53
53
        String newMessage = AlertUtilities.createMessage(alert.getProgram(), newDate);
54
54
        alert.setMessage(newMessage);
55
 
 
 
55
        
 
56
    }
 
57
    
 
58
    /**
 
59
     * Gets an alert by programStageInstanceId.
 
60
     * @param programStageInstanceId
 
61
     * @return The alert linked to the programstageinstance
 
62
     */
 
63
    public Alert getByProgramStageInstanceId(int programStageInstanceId) {
 
64
        String hql = "from Alert where programStageInstanceId = :programStageInstanceId";
 
65
        Query query = getQuery(hql);
 
66
        query.setInteger("programStageInstanceId", programStageInstanceId);
 
67
        
 
68
        
 
69
        Alert alert = (Alert) query.uniqueResult();
 
70
        return alert;
56
71
    }
57
72
}