pull/6/head
Vyacheslav N. Boyko 2018-04-09 15:49:46 +03:00
parent 97dc3a1ab8
commit 3a1161d23e
2 changed files with 10 additions and 3 deletions

View File

@ -2,11 +2,13 @@ package ru.bvn13.jircbot.database.services;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import ru.bvn13.jircbot.database.entities.DeferredMessage;
import ru.bvn13.jircbot.database.repositories.DeferredMessageRepository;
import java.util.Date;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
/**
* Created by bvn13 on 31.01.2018.
@ -36,12 +38,16 @@ public class DeferredMessageService {
deferredMessageRepository.save(msg);
}
public void forgetAllMessages(String channelName, String recipient) {
@Transactional
public int forgetAllMessages(String channelName, String recipient) {
AtomicInteger count = new AtomicInteger(0);
List<DeferredMessage> messages = deferredMessageRepository.getDeferredMessagesByChannelNameAndRecipientAndSentOrderByDtCreated(channelName, recipient, false);
messages.forEach(msg -> {
count.set(count.get()+1);
msg.setSent(true);
deferredMessageRepository.save(msg);
});
return count.get();
}
}

View File

@ -71,12 +71,13 @@ public class DeferredMessagesListener extends ImprovedListenerAdapter {
}
}
} else if (event.getMessage().startsWith(COMMAND_FORGET)) {
deferredMessageService.forgetAllMessages(channelName, userName);
this.sendNotice(event, "All messages to "+userName+" were deleted");
int count = deferredMessageService.forgetAllMessages(channelName, userName);
this.sendNotice(event, "All "+count+" messages to "+userName+" were deleted");
} else if (event.getMessage().startsWith(COMMAND_READ)) {
List<DeferredMessage> deferredMessages = deferredMessageService.getDeferredMessagesForUser(channelName, userName);
deferredMessages.forEach(msg -> {
event.respondPrivateMessage("User "+msg.getSender()+" at "+dt.format(msg.getDtCreated())+" told you: "+msg.getMessage());
deferredMessageService.markMessageWasSent(msg);
});
} else {
this.sendDeferredMessage(event);