Revised LoginCredentialProcessor and worked on MessageProcessor
This commit is contained in:
		@@ -60,7 +60,7 @@ public class ConnectionManager implements ISocketIdListener {
 | 
				
			|||||||
	 */
 | 
						 */
 | 
				
			||||||
	public void registerUser(long userId, long socketId) {
 | 
						public void registerUser(long userId, long socketId) {
 | 
				
			||||||
		sockets.put(userId, socketId);
 | 
							sockets.put(userId, socketId);
 | 
				
			||||||
		pendingSockets.remove(userId);
 | 
							pendingSockets.remove(socketId);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
package envoy.server.processors;
 | 
					package envoy.server.processors;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.io.IOException;
 | 
					import java.io.IOException;
 | 
				
			||||||
 | 
					import java.util.Arrays;
 | 
				
			||||||
import java.util.Date;
 | 
					import java.util.Date;
 | 
				
			||||||
import java.util.List;
 | 
					import java.util.List;
 | 
				
			||||||
import java.util.stream.Collectors;
 | 
					import java.util.stream.Collectors;
 | 
				
			||||||
@@ -37,24 +38,14 @@ public class LoginCredentialProcessor implements ObjectProcessor<LoginCredential
 | 
				
			|||||||
	public void process(LoginCredentials input, long socketId, ObjectWriteProxy writeProxy) throws IOException {
 | 
						public void process(LoginCredentials input, long socketId, ObjectWriteProxy writeProxy) throws IOException {
 | 
				
			||||||
		System.out.println(String.format("Received login credentials %s from socket ID %d", input, socketId));
 | 
							System.out.println(String.format("Received login credentials %s from socket ID %d", input, socketId));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// Create user
 | 
							envoy.server.data.User user = getUser(input);
 | 
				
			||||||
		envoy.server.data.User user = new envoy.server.data.User();
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (input.isRegistration()) {
 | 
							// Not logged in successfully
 | 
				
			||||||
			user.setName(input.getName());
 | 
							if (user == null) {
 | 
				
			||||||
			user.setLastSeen(new Date());
 | 
								return;
 | 
				
			||||||
			user.setStatus(User.UserStatus.ONLINE);
 | 
					 | 
				
			||||||
			user.setPasswordHash(input.getPasswordHash());
 | 
					 | 
				
			||||||
			persistenceManager.addUser(user);
 | 
					 | 
				
			||||||
		}else {
 | 
					 | 
				
			||||||
			// TODO: Implement error when user does not exist
 | 
					 | 
				
			||||||
			if (input.getPasswordHash() == user.getPasswordHash()) {
 | 
					 | 
				
			||||||
				user = persistenceManager.getUserByName(input.getName());
 | 
					 | 
				
			||||||
			} else {
 | 
					 | 
				
			||||||
				// TODO: Wrong Password Response
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		ConnectionManager.getInstance().registerUser(socketId, user.getId());
 | 
					
 | 
				
			||||||
 | 
							ConnectionManager.getInstance().registerUser(user.getId(), socketId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// Create contacts
 | 
							// Create contacts
 | 
				
			||||||
		List<User>	users		= PersistenceManager.getPersistenceManager()
 | 
							List<User>	users		= PersistenceManager.getPersistenceManager()
 | 
				
			||||||
@@ -79,4 +70,25 @@ public class LoginCredentialProcessor implements ObjectProcessor<LoginCredential
 | 
				
			|||||||
			PersistenceManager.getPersistenceManager().updateMessage(msg);
 | 
								PersistenceManager.getPersistenceManager().updateMessage(msg);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						private envoy.server.data.User getUser(LoginCredentials credentials) {
 | 
				
			||||||
 | 
							envoy.server.data.User user;
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							if (credentials.isRegistration()) {
 | 
				
			||||||
 | 
								user = new envoy.server.data.User();
 | 
				
			||||||
 | 
								user.setName(credentials.getName());
 | 
				
			||||||
 | 
								user.setLastSeen(new Date());
 | 
				
			||||||
 | 
								user.setStatus(User.UserStatus.ONLINE);
 | 
				
			||||||
 | 
								user.setPasswordHash(credentials.getPasswordHash());
 | 
				
			||||||
 | 
								persistenceManager.addUser(user);
 | 
				
			||||||
 | 
							} else {
 | 
				
			||||||
 | 
								user = persistenceManager.getUserByName(credentials.getName());
 | 
				
			||||||
 | 
								// TODO: Implement error when user does not exist
 | 
				
			||||||
 | 
								if (!Arrays.equals(credentials.getPasswordHash(), user.getPasswordHash())) {
 | 
				
			||||||
 | 
									// TODO: Wrong Password Response
 | 
				
			||||||
 | 
									return null;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							return user;
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,8 @@
 | 
				
			|||||||
package envoy.server.processors;
 | 
					package envoy.server.processors;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.io.IOException;
 | 
					import java.io.IOException;
 | 
				
			||||||
import java.util.Date;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
import envoy.data.Message;
 | 
					import envoy.data.Message;
 | 
				
			||||||
import envoy.event.MessageStatusChangeEvent;
 | 
					 | 
				
			||||||
import envoy.server.ConnectionManager;
 | 
					import envoy.server.ConnectionManager;
 | 
				
			||||||
import envoy.server.ObjectProcessor;
 | 
					import envoy.server.ObjectProcessor;
 | 
				
			||||||
import envoy.server.database.PersistenceManager;
 | 
					import envoy.server.database.PersistenceManager;
 | 
				
			||||||
@@ -36,12 +34,6 @@ public class MessageProcessor implements ObjectProcessor<Message> {
 | 
				
			|||||||
			System.err.println("Recipient online. Failed to send message" + message.getId());
 | 
								System.err.println("Recipient online. Failed to send message" + message.getId());
 | 
				
			||||||
			e.printStackTrace();
 | 
								e.printStackTrace();
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		try {// sender receives confirmation that the server received the message
 | 
					 | 
				
			||||||
			writeProxy.write(connectionManager.getSocketId(message.getSenderId()),
 | 
					 | 
				
			||||||
					new MessageStatusChangeEvent(message.getId(), message.getStatus(), new Date()));
 | 
					 | 
				
			||||||
		} catch (IOException e) {
 | 
					 | 
				
			||||||
			e.printStackTrace();
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
		PersistenceManager.getPersistenceManager().addMessage(new envoy.server.data.Message(message));
 | 
							PersistenceManager.getPersistenceManager().addMessage(new envoy.server.data.Message(message));
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user