← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 5450: Impl getAll method on MessageService

 

------------------------------------------------------------
revno: 5450
committer: Lars Helge Overland <larshelge@xxxxxxxxx>
branch nick: dhis2
timestamp: Fri 2011-12-16 10:54:21 +0100
message:
  Impl getAll method on MessageService
modified:
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/message/MessageConversationStore.java
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/message/MessageService.java
  dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/DefaultMessageService.java
  dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/hibernate/HibernateMessageConversationStore.java


--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk

Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/message/MessageConversationStore.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/message/MessageConversationStore.java	2011-12-16 09:48:40 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/message/MessageConversationStore.java	2011-12-16 09:54:21 +0000
@@ -38,7 +38,16 @@
 public interface MessageConversationStore
     extends GenericIdentifiableObjectStore<MessageConversation>
 {
-    List<MessageConversation> getMessageConversations( User user, int first, int max );
-
+    /**
+     * Returns a list of MessageConversations.
+     * 
+     * @param user the User for which the MessageConversations are sent to, or
+     *        all if null.
+     * @param first the first record number to return, or all if null.
+     * @param max the max number of records to return, or all if null.
+     * @return a list of MessageConversations.
+     */
+    List<MessageConversation> getMessageConversations( User user, Integer first, Integer max );
+    
     long getUnreadUserMessageConversationCount( User user );
 }

=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/message/MessageService.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/message/MessageService.java	2011-12-16 09:48:40 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/message/MessageService.java	2011-12-16 09:54:21 +0000
@@ -63,4 +63,6 @@
     long getUnreadMessageConversationCount( User user );
     
     List<MessageConversation> getMessageConversations( int first, int max );
+    
+    List<MessageConversation> getAllMessageConversations();
 }

=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/DefaultMessageService.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/DefaultMessageService.java	2011-12-16 09:48:40 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/DefaultMessageService.java	2011-12-16 09:54:21 +0000
@@ -215,6 +215,11 @@
     {
         return messageConversationStore.getMessageConversations( currentUserService.getCurrentUser(), first, max );
     }
+    
+    public List<MessageConversation> getAllMessageConversations()
+    {
+        return messageConversationStore.getMessageConversations( null, null, null );
+    }
 
     // -------------------------------------------------------------------------
     // Supportive methods

=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/hibernate/HibernateMessageConversationStore.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/hibernate/HibernateMessageConversationStore.java	2011-12-13 16:29:31 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/message/hibernate/HibernateMessageConversationStore.java	2011-12-16 09:54:21 +0000
@@ -44,9 +44,9 @@
 public class HibernateMessageConversationStore
     extends HibernateIdentifiableObjectStore<MessageConversation> implements MessageConversationStore
 {
-    public List<MessageConversation> getMessageConversations( User user, int first, int max )
+    public List<MessageConversation> getMessageConversations( User user, Integer first, Integer max )
     {
-        final String sql = 
+        String sql = 
             "select mc.messageconversationid, mc.uid, mc.subject, mc.lastupdated, ui.surname, ui.firstname, ( " +
                 "select isread from usermessage " +
                 "where usermessage.usermessageid=mu.usermessageid " +
@@ -54,10 +54,24 @@
             "from messageconversation mc " +
             "left join messageconversation_usermessages mu on mc.messageconversationid=mu.messageconversationid " +
             "left join usermessage um on mu.usermessageid=um.usermessageid " +
-            "left join userinfo ui on mc.lastsenderid=ui.userinfoid " +
-            "where um.userid=" + user.getId() + " " +
-            "order by mc.lastupdated desc " +
-            "limit " + max;
+            "left join userinfo ui on mc.lastsenderid=ui.userinfoid ";
+        
+        if ( user != null )
+        {
+            sql += "where um.userid=" + user.getId() + " ";
+        }
+        
+        sql += "order by mc.lastupdated desc ";
+        
+        if ( first != null )
+        {
+            sql += "offset " + first + " ";
+        }
+        
+        if ( max != null )
+        {
+            sql += "limit " + max;
+        }
         
         final List<MessageConversation> conversations = jdbcTemplate.query( sql, new RowMapper<MessageConversation>()
         {