Added ability to save attachments

This commit is contained in:
delvh
2020-07-27 12:00:49 +02:00
parent 1cdad2df0b
commit e216152e6b
5 changed files with 81 additions and 24 deletions

View File

@ -47,7 +47,7 @@ public class Message {
/**
* Named query retrieving pending messages for a user (parameter {@code :user})
* which was last seen after a specific date (parameter {@code :lastSeen}).
*
*
* @since Envoy Server Standalone v0.1-beta
*/
public static final String getPending = "Message.getPending";
@ -76,6 +76,7 @@ public class Message {
protected envoy.data.Message.MessageStatus status;
protected AttachmentType attachmentType;
protected byte[] attachment;
protected String attachmentName;
protected boolean forwarded;
/**
@ -93,7 +94,7 @@ public class Message {
* @since Envoy Server Standalone v0.1-alpha
*/
public Message(envoy.data.Message message) {
PersistenceManager persistenceManager = PersistenceManager.getInstance();
final var persistenceManager = PersistenceManager.getInstance();
id = message.getID();
status = message.getStatus();
text = message.getText();
@ -104,8 +105,10 @@ public class Message {
recipient = persistenceManager.getContactByID(message.getRecipientID());
forwarded = message.isForwarded();
if (message.hasAttachment()) {
attachment = message.getAttachment().getData();
attachmentType = message.getAttachment().getType();
final var messageAttachment = message.getAttachment();
attachment = messageAttachment.getData();
attachmentName = messageAttachment.getName();
attachmentType = messageAttachment.getType();
}
}
@ -123,20 +126,20 @@ public class Message {
* @since Envoy Server Standalone v0.1-beta
*/
MessageBuilder prepareBuilder() {
var builder = new MessageBuilder(sender.getID(), recipient.getID(), id).setText(text)
final var builder = new MessageBuilder(sender.getID(), recipient.getID(), id).setText(text)
.setCreationDate(creationDate)
.setReceivedDate(receivedDate)
.setReadDate(readDate)
.setStatus(status)
.setForwarded(forwarded);
if (attachment != null) builder.setAttachment(new Attachment(attachment, attachmentType));
if (attachment != null) builder.setAttachment(new Attachment(attachment, attachmentName, attachmentType));
return builder;
}
/**
* Sets the message status to {@link MessageStatus#RECEIVED} and sets the
* current time stamp as the received date.
*
*
* @since Envoy Server Standalone v0.1-beta
*/
public void received() {
@ -147,7 +150,7 @@ public class Message {
/**
* Sets the message status to {@link MessageStatus#READ} and sets the
* current time stamp as the read date.
*
*
* @since Envoy Server Standalone v0.1-beta
*/
public void read() {
@ -282,6 +285,18 @@ public class Message {
*/
public void setAttachmentType(AttachmentType attachmentType) { this.attachmentType = attachmentType; }
/**
* @return the attachmentName
* @since Envoy Server v0.2-beta
*/
public String getAttachmentName() { return attachmentName; }
/**
* @param attachmentName the attachmentName to set
* @since Envoy Server v0.2-beta
*/
public void setAttachmentName(String attachmentName) { this.attachmentName = attachmentName; }
/**
* @return whether this message is a forwarded message
* @since Envoy Server Standalone v0.1-alpha