Implemented Groups on the database and implemented MSChange management

This commit is contained in:
DieGurke
2020-04-02 20:41:05 +02:00
parent e6cf3af745
commit dd4ad91aa9
5 changed files with 46 additions and 23 deletions

View File

@ -1,7 +1,11 @@
package envoy.server.processors;
import java.io.IOException;
import java.util.*;
import java.util.Arrays;
import java.util.Date;
import java.util.HashSet;
import java.util.InputMismatchException;
import java.util.List;
import java.util.stream.Collectors;
import javax.persistence.NoResultException;
@ -11,6 +15,7 @@ import envoy.data.Message.MessageStatus;
import envoy.data.User;
import envoy.data.User.UserStatus;
import envoy.event.HandshakeRejectionEvent;
import envoy.event.MessageStatusChangeEvent;
import envoy.server.data.Message;
import envoy.server.data.PersistenceManager;
import envoy.server.net.ConnectionManager;
@ -61,13 +66,19 @@ public class LoginCredentialProcessor implements ObjectProcessor<LoginCredential
System.out.println("Sending contacts...");
writeProxy.write(socketID, contacts);
System.out.println("Acquiring pending messages for the client...");
List<Message> pendingMessages = PersistenceManager.getInstance().getUnreadMessages(user);
List<Message> pendingMessages = PersistenceManager.getInstance().getPendingMessages(user);
for (Message msg : pendingMessages) {
System.out.println("Sending message " + msg.toCommonMessage());
writeProxy.write(socketID, msg.toCommonMessage());
msg.setReceivedDate(new Date());
msg.setStatus(MessageStatus.RECEIVED);
PersistenceManager.getInstance().updateMessage(msg);
if (msg.getStatus() == MessageStatus.SENT) {
System.out.println("Sending message " + msg.toCommonMessage());
writeProxy.write(socketID, msg.toCommonMessage());
msg.setReceivedDate(new Date());
msg.setStatus(MessageStatus.RECEIVED);
PersistenceManager.getInstance().updateMessage(msg);
} else {
var evt = new MessageStatusChangeEvent(msg.toCommonMessage());
System.out.println("Sending messageStatusChangeEvent " + evt);
writeProxy.write(socketID, evt);
}
}
}