Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 14 additions & 16 deletions Sources/AblyChat/DefaultPresence.swift
Original file line number Diff line number Diff line change
Expand Up @@ -204,15 +204,14 @@ internal final class DefaultPresence: Presence {

logger.log(message: "Subscribing to presence events", level: .debug)

let eventListener = channel.presence.subscribe(event.toARTPresenceAction()) { [processPresenceSubscribe, logger] message in
logger.log(message: "Received presence message: \(message)", level: .debug)
do {
// processPresenceSubscribe is logging so we don't need to log here
let presenceEvent = try processPresenceSubscribe(PresenceMessage(ablyCocoaPresenceMessage: message), event)
callback(presenceEvent)
} catch {
// note: this replaces some existing code that also didn't handle the processPresenceSubscribe error; I suspect not intentional, will leave whoever writes the tests for this class to see what's going on
let eventListener = channel.presence.subscribe(event.toARTPresenceAction()) { [weak self] message in
guard let self else {
return
}
logger.log(message: "Received presence message: \(message)", level: .debug)
// processPresenceSubscribe is logging so we don't need to log here
let presenceEvent = processPresenceSubscribe(PresenceMessage(ablyCocoaPresenceMessage: message), for: event)
callback(presenceEvent)
}
Comment thread
maratal marked this conversation as resolved.

return Subscription { [weak self] in
Expand All @@ -228,14 +227,13 @@ internal final class DefaultPresence: Presence {
logger.log(message: "Subscribing to presence events", level: .debug)

let eventListeners = events.map { event in
channel.presence.subscribe(event.toARTPresenceAction()) { [processPresenceSubscribe, logger] message in
logger.log(message: "Received presence message: \(message)", level: .debug)
do {
let presenceEvent = try processPresenceSubscribe(PresenceMessage(ablyCocoaPresenceMessage: message), event)
callback(presenceEvent)
} catch {
// note: this replaces some existing code that also didn't handle the processPresenceSubscribe error; I suspect not intentional, will leave whoever writes the tests for this class to see what's going on
channel.presence.subscribe(event.toARTPresenceAction()) { [weak self] message in
guard let self else {
return
}
logger.log(message: "Received presence message: \(message)", level: .debug)
let presenceEvent = processPresenceSubscribe(PresenceMessage(ablyCocoaPresenceMessage: message), for: event)
callback(presenceEvent)
}
Comment thread
maratal marked this conversation as resolved.
}

Expand Down Expand Up @@ -263,7 +261,7 @@ internal final class DefaultPresence: Presence {
return presenceMembers
}

private func processPresenceSubscribe(_ message: PresenceMessage, for event: PresenceEventType) throws -> PresenceEvent {
private func processPresenceSubscribe(_ message: PresenceMessage, for event: PresenceEventType) -> PresenceEvent {
let member = PresenceMember(
clientID: message.clientId ?? "", // CHA-M4k1
data: message.data,
Expand Down