Added ContactOperationProcessor for the ADD operation

This commit is contained in:
Kai S. K. Engelbart 2020-02-08 15:03:03 +01:00
parent 9110073d16
commit 24c0cdd38d
2 changed files with 42 additions and 0 deletions

View File

@ -180,6 +180,15 @@ public class PersistenceManager {
return entityManager.createNamedQuery("searchUsers").setParameter("searchPhrase", searchPhrase + "%").getResultList();
}
public void addContact(long userId, long contactId) {
User c1 = getUserById(userId);
User c2 = getUserById(contactId);
c1.getContacts().add(c2);
c2.getContacts().add(c1);
updateUser(c1);
updateUser(c2);
}
/**
* @param user the User whose contacts should be retrieved
* @return the contacts of this User - currently everyone using Envoy

View File

@ -0,0 +1,33 @@
package envoy.server.processors;
import java.io.IOException;
import envoy.event.ContactOperation;
import envoy.event.ContactOperation.Operation;
import envoy.server.ConnectionManager;
import envoy.server.ObjectProcessor;
import envoy.server.database.PersistenceManager;
import envoy.server.net.ObjectWriteProxy;
/**
* Project: <strong>envoy-server-standalone</strong><br>
* File: <strong>ContactOperationProcessor.java</strong><br>
* Created: <strong>08.02.2020</strong><br>
*
* @author Kai S. K. Engelbart
* @since Envoy Server Standalone v0.1-alpha
*/
public class ContactOperationProcessor implements ObjectProcessor<ContactOperation> {
@Override
public void process(ContactOperation operation, long socketId, ObjectWriteProxy writeProxy) throws IOException {
if (operation.getOperationType() == Operation.ADD) {
long userId = ConnectionManager.getInstance().getUserIdBySocketId(socketId);
System.out.printf("Adding user %s to the contact list of user %d", operation.get(), userId);
PersistenceManager.getPersistenceManager().addContact(userId, operation.get().getId());
}
}
@Override
public Class<ContactOperation> getInputClass() { return ContactOperation.class; }
}