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) {
 | 
			
		||||
		sockets.put(userId, socketId);
 | 
			
		||||
		pendingSockets.remove(userId);
 | 
			
		||||
		pendingSockets.remove(socketId);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,7 @@
 | 
			
		||||
package envoy.server.processors;
 | 
			
		||||
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.util.Arrays;
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
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 {
 | 
			
		||||
		System.out.println(String.format("Received login credentials %s from socket ID %d", input, socketId));
 | 
			
		||||
 | 
			
		||||
		// Create user
 | 
			
		||||
		envoy.server.data.User user = new envoy.server.data.User();
 | 
			
		||||
		envoy.server.data.User user = getUser(input);
 | 
			
		||||
 | 
			
		||||
		if (input.isRegistration()) {
 | 
			
		||||
			user.setName(input.getName());
 | 
			
		||||
			user.setLastSeen(new Date());
 | 
			
		||||
			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
 | 
			
		||||
			}
 | 
			
		||||
		// Not logged in successfully
 | 
			
		||||
		if (user == null) {
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
		ConnectionManager.getInstance().registerUser(socketId, user.getId());
 | 
			
		||||
 | 
			
		||||
		ConnectionManager.getInstance().registerUser(user.getId(), socketId);
 | 
			
		||||
 | 
			
		||||
		// Create contacts
 | 
			
		||||
		List<User>	users		= PersistenceManager.getPersistenceManager()
 | 
			
		||||
@@ -79,4 +70,25 @@ public class LoginCredentialProcessor implements ObjectProcessor<LoginCredential
 | 
			
		||||
			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;
 | 
			
		||||
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.util.Date;
 | 
			
		||||
 | 
			
		||||
import envoy.data.Message;
 | 
			
		||||
import envoy.event.MessageStatusChangeEvent;
 | 
			
		||||
import envoy.server.ConnectionManager;
 | 
			
		||||
import envoy.server.ObjectProcessor;
 | 
			
		||||
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());
 | 
			
		||||
			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));
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user