34 lines
954 B
Java
34 lines
954 B
Java
package envoy.server.processors;
|
|
|
|
import java.io.IOException;
|
|
import java.time.Instant;
|
|
|
|
import envoy.event.contact.AccountDeletion;
|
|
|
|
import envoy.server.data.*;
|
|
import envoy.server.net.ObjectWriteProxy;
|
|
|
|
/**
|
|
* @author Leon Hofmeister
|
|
* @since Envoy Server v0.3-beta
|
|
*/
|
|
public class AccountDeletionProcessor implements ObjectProcessor<AccountDeletion> {
|
|
|
|
private static final PersistenceManager persistenceManager = PersistenceManager.getInstance();
|
|
|
|
@Override
|
|
public void process(AccountDeletion input, long socketID, ObjectWriteProxy writeProxy)
|
|
throws IOException {
|
|
final var contact = persistenceManager.getContactByID(input.get());
|
|
|
|
contact.getContacts().forEach(c -> {
|
|
persistenceManager.removeContactBidirectional(contact, c);
|
|
if (c instanceof User)
|
|
((User) c).setLatestContactDeletion(Instant.now());
|
|
});
|
|
|
|
writeProxy.writeToOnlineContacts(contact.getContacts(), input);
|
|
persistenceManager.deleteContact(contact);
|
|
}
|
|
}
|