Skip to content

Commit

Permalink
Set the live_delivery in status Message (#247)
Browse files Browse the repository at this point in the history
Set the field live_delivery in the Message messagepickup/3.0/status
This will improve/fix #243

Signed-off-by: Fabio <Pinheiro>
  • Loading branch information
FabioPinheiro authored and Fabio committed Apr 30, 2024
1 parent 442ee6c commit 610e495
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,12 @@ case class MediatorTransportManager(
}
)

def isLiveModeEnabled(subject: FROMTO, transportID: TransportID): Boolean =
liveMode.get(subject) match {
case Some(set) => set.contains(transportID)
case None => false
}

def getLiveModeEnableConnections(subject: FROMTO): Seq[TransportDIDComm[Any]] =
liveMode.get(subject).toSeq.flatMap(transportId => transports.filter(t => transportId.contains(t.id)))

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,9 @@ object PickupExecuter
repoDidAccount <- ZIO.service[UserAccountRepo]
didRequestingMessages = m.from.asFROMTO
mDidAccount <- repoDidAccount.getDidAccount(didRequestingMessages.toDID)
mediatorTransportManager <- ZIO.service[Ref[MediatorTransportManager]].flatMap(_.get)
transport <- ZIO.service[TransportDIDComm[Any]]
live_delivery = mediatorTransportManager.isLiveModeEnabled(m.from.asFROMTO, transport.id)
ret = mDidAccount match
case None =>
Problems
Expand All @@ -74,7 +77,7 @@ object PickupExecuter
newest_received_time = None, // TODO
oldest_received_time = None, // TODO
total_bytes = None, // TODO
live_delivery = None, // TODO
live_delivery = Some(live_delivery),
).toPlaintextMessage
} yield Reply(ret)
case m: Status =>
Expand Down Expand Up @@ -114,8 +117,11 @@ object PickupExecuter
case Some(didAccount) =>
val msgHash = didAccount.messagesRef.filter(_.state == false).map(_.hash)
if (msgHash.isEmpty) {
ZIO.succeed(
Status(
for {
mediatorTransportManager <- ZIO.service[Ref[MediatorTransportManager]].flatMap(_.get)
transport <- ZIO.service[TransportDIDComm[Any]]
live_delivery = mediatorTransportManager.isLiveModeEnabled(m.from.asFROMTO, transport.id)
ret = Status(
thid = m.id,
from = m.to.asFROM,
to = m.from.asTO,
Expand All @@ -125,9 +131,9 @@ object PickupExecuter
newest_received_time = None, // TODO
oldest_received_time = None, // TODO
total_bytes = None, // TODO
live_delivery = None, // TODO
live_delivery = Some(live_delivery)
).toPlaintextMessage
)
} yield ret
} else {
for {
allMessagesFor <- repoMessageItem.findByIds(msgHash)
Expand Down Expand Up @@ -157,7 +163,6 @@ object PickupExecuter
attachments = messagesToReturn.map(m => (m._id, m.msg)).toMap,
).toPlaintextMessage
}

} yield Reply(ret)
case m: MessageDelivery =>
ZIO.logInfo("MessageDelivery") *>
Expand Down Expand Up @@ -236,7 +241,7 @@ object PickupExecuter
newest_received_time = None, // TODO
oldest_received_time = None, // TODO
total_bytes = None, // TODO
live_delivery = None, // TODO
live_delivery = Some(m.live_delivery),
).toPlaintextMessage
} yield ret
} yield Reply(ret)
Expand Down

0 comments on commit 610e495

Please sign in to comment.