parent
0be34b1135
commit
7b48f10cc9
|
@ -144,7 +144,9 @@ public class MessageController {
|
||||||
throws IOException
|
throws IOException
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
Optional<OutgoingMessageEntity> message = messagesManager.delete(account.getNumber(), source, timestamp);
|
Optional<OutgoingMessageEntity> message = messagesManager.delete(account.getNumber(),
|
||||||
|
account.getAuthenticatedDevice().get().getId(),
|
||||||
|
source, timestamp);
|
||||||
|
|
||||||
if (message.isPresent() && message.get().getType() != Envelope.Type.RECEIPT_VALUE) {
|
if (message.isPresent() && message.get().getType() != Envelope.Type.RECEIPT_VALUE) {
|
||||||
receiptSender.sendReceipt(account,
|
receiptSender.sendReceipt(account,
|
||||||
|
|
|
@ -50,8 +50,11 @@ public abstract class Messages {
|
||||||
@Bind("destination_device") long destinationDevice);
|
@Bind("destination_device") long destinationDevice);
|
||||||
|
|
||||||
@Mapper(MessageMapper.class)
|
@Mapper(MessageMapper.class)
|
||||||
@SqlQuery("DELETE FROM messages WHERE " + ID + " IN (SELECT " + ID + " FROM messages WHERE " + DESTINATION + " = :destination AND " + SOURCE + " = :source AND " + TIMESTAMP + " = :timestamp ORDER BY " + ID + " LIMIT 1) RETURNING *")
|
@SqlQuery("DELETE FROM messages WHERE " + ID + " IN (SELECT " + ID + " FROM messages WHERE " + DESTINATION + " = :destination AND " + DESTINATION_DEVICE + " = :destination_device AND " + SOURCE + " = :source AND " + TIMESTAMP + " = :timestamp ORDER BY " + ID + " LIMIT 1) RETURNING *")
|
||||||
abstract OutgoingMessageEntity remove(@Bind("destination") String destination, @Bind("source") String source, @Bind("timestamp") long timestamp);
|
abstract OutgoingMessageEntity remove(@Bind("destination") String destination,
|
||||||
|
@Bind("destination_device") long destinationDevice,
|
||||||
|
@Bind("source") String source,
|
||||||
|
@Bind("timestamp") long timestamp);
|
||||||
|
|
||||||
@Mapper(MessageMapper.class)
|
@Mapper(MessageMapper.class)
|
||||||
@SqlUpdate("DELETE FROM messages WHERE " + ID + " = :id AND " + DESTINATION + " = :destination")
|
@SqlUpdate("DELETE FROM messages WHERE " + ID + " = :id AND " + DESTINATION + " = :destination")
|
||||||
|
|
|
@ -33,8 +33,9 @@ public class MessagesManager {
|
||||||
this.messages.clear(destination, deviceId);
|
this.messages.clear(destination, deviceId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Optional<OutgoingMessageEntity> delete(String destination, String source, long timestamp) {
|
public Optional<OutgoingMessageEntity> delete(String destination, long destinationDevice, String source, long timestamp)
|
||||||
return Optional.fromNullable(this.messages.remove(destination, source, timestamp));
|
{
|
||||||
|
return Optional.fromNullable(this.messages.remove(destination, destinationDevice, source, timestamp));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void delete(String destination, long id) {
|
public void delete(String destination, long id) {
|
||||||
|
|
|
@ -214,20 +214,20 @@ public class MessageControllerTest {
|
||||||
@Test
|
@Test
|
||||||
public synchronized void testDeleteMessages() throws Exception {
|
public synchronized void testDeleteMessages() throws Exception {
|
||||||
long timestamp = System.currentTimeMillis();
|
long timestamp = System.currentTimeMillis();
|
||||||
when(messagesManager.delete(AuthHelper.VALID_NUMBER, "+14152222222", 31337))
|
when(messagesManager.delete(AuthHelper.VALID_NUMBER, 1, "+14152222222", 31337))
|
||||||
.thenReturn(Optional.of(new OutgoingMessageEntity(31337L,
|
.thenReturn(Optional.of(new OutgoingMessageEntity(31337L,
|
||||||
Envelope.Type.CIPHERTEXT_VALUE,
|
Envelope.Type.CIPHERTEXT_VALUE,
|
||||||
null, timestamp,
|
null, timestamp,
|
||||||
"+14152222222", 1, "hi".getBytes(), null)));
|
"+14152222222", 1, "hi".getBytes(), null)));
|
||||||
|
|
||||||
when(messagesManager.delete(AuthHelper.VALID_NUMBER, "+14152222222", 31338))
|
when(messagesManager.delete(AuthHelper.VALID_NUMBER, 1, "+14152222222", 31338))
|
||||||
.thenReturn(Optional.of(new OutgoingMessageEntity(31337L,
|
.thenReturn(Optional.of(new OutgoingMessageEntity(31337L,
|
||||||
Envelope.Type.RECEIPT_VALUE,
|
Envelope.Type.RECEIPT_VALUE,
|
||||||
null, System.currentTimeMillis(),
|
null, System.currentTimeMillis(),
|
||||||
"+14152222222", 1, null, null)));
|
"+14152222222", 1, null, null)));
|
||||||
|
|
||||||
|
|
||||||
when(messagesManager.delete(AuthHelper.VALID_NUMBER, "+14152222222", 31339))
|
when(messagesManager.delete(AuthHelper.VALID_NUMBER, 1, "+14152222222", 31339))
|
||||||
.thenReturn(Optional.<OutgoingMessageEntity>absent());
|
.thenReturn(Optional.<OutgoingMessageEntity>absent());
|
||||||
|
|
||||||
Response response = resources.getJerseyTest()
|
Response response = resources.getJerseyTest()
|
||||||
|
|
Loading…
Reference in New Issue