diff --git a/android/app/src/main/java/com/vernu/sms/dtos/SMSDTO.java b/android/app/src/main/java/com/vernu/sms/dtos/SMSDTO.java index c73fc18..fd42d16 100644 --- a/android/app/src/main/java/com/vernu/sms/dtos/SMSDTO.java +++ b/android/app/src/main/java/com/vernu/sms/dtos/SMSDTO.java @@ -5,16 +5,11 @@ import java.util.Date; public class SMSDTO { private String sender; private String message = ""; - private Date receivedAt; + private long receivedAtInMillis; public SMSDTO() { } - public SMSDTO(String sender, String message, Date receivedAt) { - this.sender = sender; - this.message = message; - this.receivedAt = receivedAt; - } public String getSender() { return sender; @@ -32,11 +27,11 @@ public class SMSDTO { this.message = message; } - public Date getReceivedAt() { - return receivedAt; + public long getReceivedAtInMillis() { + return receivedAtInMillis; } - public void setReceivedAt(Date receivedAt) { - this.receivedAt = receivedAt; + public void setReceivedAtInMillis(long receivedAtInMillis) { + this.receivedAtInMillis = receivedAtInMillis; } } diff --git a/android/app/src/main/java/com/vernu/sms/receivers/SMSBroadcastReceiver.java b/android/app/src/main/java/com/vernu/sms/receivers/SMSBroadcastReceiver.java index 2e7ab55..385806c 100644 --- a/android/app/src/main/java/com/vernu/sms/receivers/SMSBroadcastReceiver.java +++ b/android/app/src/main/java/com/vernu/sms/receivers/SMSBroadcastReceiver.java @@ -58,7 +58,7 @@ public class SMSBroadcastReceiver extends BroadcastReceiver { for (SmsMessage message : messages) { receivedSMSDTO.setMessage(receivedSMSDTO.getMessage() + message.getMessageBody()); receivedSMSDTO.setSender(message.getOriginatingAddress()); - receivedSMSDTO.setReceivedAt(new Date(message.getTimestampMillis())); + receivedSMSDTO.setReceivedAtInMillis(message.getTimestampMillis()); } // receivedSMSDTO.setSender(receivedSMS.getSender()); // receivedSMSDTO.setMessage(receivedSMS.getMessage()); diff --git a/api/src/gateway/gateway.dto.ts b/api/src/gateway/gateway.dto.ts index ae26d78..b5721ad 100644 --- a/api/src/gateway/gateway.dto.ts +++ b/api/src/gateway/gateway.dto.ts @@ -98,7 +98,14 @@ export class ReceivedSMSDTO { required: true, description: 'The time the message was received', }) - receivedAt: Date + receivedAt?: Date + + @ApiProperty({ + type: Number, + required: true, + description: 'The time the message was created', + }) + receivedAtInMillis?: number } export class DeviceDTO { diff --git a/api/src/gateway/gateway.service.ts b/api/src/gateway/gateway.service.ts index 78987da..b2e1c7d 100644 --- a/api/src/gateway/gateway.service.ts +++ b/api/src/gateway/gateway.service.ts @@ -200,7 +200,11 @@ export class GatewayService { ) } - if (!dto.receivedAt || !dto.sender || !dto.message) { + if ( + (!dto.receivedAt && !dto.receivedAtInMillis) || + !dto.sender || + !dto.message + ) { console.log('Invalid received SMS data') throw new HttpException( { @@ -211,12 +215,16 @@ export class GatewayService { ) } + const receivedAt = dto.receivedAtInMillis + ? new Date(dto.receivedAtInMillis) + : dto.receivedAt + const sms = await this.smsModel.create({ device: device._id, message: dto.message, type: SMSType.RECEIVED, sender: dto.sender, - receivedAt: dto.receivedAt, + receivedAt, }) this.deviceModel