Skip to content

Commit a491b29

Browse files
fix: Add private topic to Realtime (#442)
* fix: Add private topic to Realtime * rename struct field * fix tests * remove public access control --------- Co-authored-by: Guilherme Souza <[email protected]>
1 parent 8a80aae commit a491b29

File tree

5 files changed

+10
-3
lines changed

5 files changed

+10
-3
lines changed

Sources/Realtime/V2/RealtimeChannelV2.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import Helpers
1212
public struct RealtimeChannelConfig: Sendable {
1313
public var broadcast: BroadcastJoinConfig
1414
public var presence: PresenceJoinConfig
15+
public var isPrivate: Bool
1516
}
1617

1718
struct Socket: Sendable {
@@ -111,7 +112,8 @@ public final class RealtimeChannelV2: Sendable {
111112
let joinConfig = RealtimeJoinConfig(
112113
broadcast: config.broadcast,
113114
presence: config.presence,
114-
postgresChanges: mutableState.clientChanges
115+
postgresChanges: mutableState.clientChanges,
116+
isPrivate: config.isPrivate
115117
)
116118

117119
let payload = RealtimeJoinPayload(

Sources/Realtime/V2/RealtimeClientV2.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,8 @@ public final class RealtimeClientV2: Sendable {
249249
) -> RealtimeChannelV2 {
250250
var config = RealtimeChannelConfig(
251251
broadcast: BroadcastJoinConfig(acknowledgeBroadcasts: false, receiveOwnBroadcasts: false),
252-
presence: PresenceJoinConfig(key: "")
252+
presence: PresenceJoinConfig(key: ""),
253+
isPrivate: false
253254
)
254255
options(&config)
255256

Sources/Realtime/V2/RealtimeJoinConfig.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,12 @@ struct RealtimeJoinConfig: Codable, Hashable {
2121
var broadcast: BroadcastJoinConfig = .init()
2222
var presence: PresenceJoinConfig = .init()
2323
var postgresChanges: [PostgresJoinConfig] = []
24+
var isPrivate: Bool = false
2425

2526
enum CodingKeys: String, CodingKey {
2627
case broadcast
2728
case presence
29+
case isPrivate = "private"
2830
case postgresChanges = "postgres_changes"
2931
}
3032
}

Tests/RealtimeTests/RealtimeTests.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,7 @@ extension RealtimeMessageV2 {
257257
["schema": "public", "table": "messages", "event": "DELETE"],
258258
],
259259
"presence": ["key": ""],
260+
"private": false,
260261
],
261262
]
262263
)

Tests/RealtimeTests/_PushTests.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ final class _PushTests: XCTestCase {
3838
topic: "realtime:users",
3939
config: RealtimeChannelConfig(
4040
broadcast: .init(acknowledgeBroadcasts: false),
41-
presence: .init()
41+
presence: .init(),
42+
isPrivate: false
4243
),
4344
socket: Socket(client: socket),
4445
logger: nil

0 commit comments

Comments
 (0)