package envoy.server; import java.io.IOException; import java.util.ArrayList; import envoy.data.Contacts; import envoy.data.LoginCredentials; import envoy.data.User; import envoy.server.net.ObjectWriteProxy; /** * This {@link ObjectProcessor} handles {@link LoginCredentials}.
*
* Project: envoy-server-standalone
* File: LoginCredentialProcessor.java
* Created: 30.12.2019
* * @author Kai S. K. Engelbart * @since Envoy Server Standalone v0.1-alpha */ public class LoginCredentialProcessor implements ObjectProcessor { // TODO: Acquire user IDs from database private static long currentUserId = 1; @Override public Class getInputClass() { return LoginCredentials.class; } @Override 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 User user = new User(currentUserId++, input.getName()); ConnectionManager.getInstance().registerUser(socketId, user.getId()); // Create contacts Contacts contacts = new Contacts(user.getId(), new ArrayList<>()); // Complete handshake System.out.println("Sending user..."); writeProxy.write(socketId, user); System.out.println("Sending contacts..."); writeProxy.write(socketId, contacts); } }