|
|
@ -270,12 +270,15 @@ extension MessageReceiver {
|
|
|
|
state: CallMessage.MessageInfo.State? = nil,
|
|
|
|
state: CallMessage.MessageInfo.State? = nil,
|
|
|
|
using dependencies: Dependencies
|
|
|
|
using dependencies: Dependencies
|
|
|
|
) throws -> Interaction? {
|
|
|
|
) throws -> Interaction? {
|
|
|
|
guard
|
|
|
|
guard (
|
|
|
|
(try? Interaction
|
|
|
|
try? Interaction
|
|
|
|
.filter(Interaction.Columns.variant == Interaction.Variant.infoCall)
|
|
|
|
.filter(Interaction.Columns.variant == Interaction.Variant.infoCall)
|
|
|
|
.filter(Interaction.Columns.messageUuid == message.uuid)
|
|
|
|
.filter(Interaction.Columns.messageUuid == message.uuid)
|
|
|
|
.isEmpty(db))
|
|
|
|
.isEmpty(db)
|
|
|
|
.defaulting(to: false),
|
|
|
|
).defaulting(to: false)
|
|
|
|
|
|
|
|
else { throw MessageReceiverError.duplicatedCall }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
guard
|
|
|
|
let sender: String = message.sender,
|
|
|
|
let sender: String = message.sender,
|
|
|
|
let thread: SessionThread = try SessionThread.fetchOne(db, id: sender),
|
|
|
|
let thread: SessionThread = try SessionThread.fetchOne(db, id: sender),
|
|
|
|
!thread.isMessageRequest(db)
|
|
|
|
!thread.isMessageRequest(db)
|
|
|
|