Skip to content

Commit 871beac

Browse files
fix: realtime event payload
1 parent 24792b7 commit 871beac

File tree

4 files changed

+26
-4
lines changed

4 files changed

+26
-4
lines changed

Sources/Appwrite/Client.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,9 @@ open class Client {
308308
return response.body as! T
309309
default:
310310
let data = try await response.body.collect(upTo: Int.max)
311+
if data.readableBytes == 0 {
312+
return true as! T
313+
}
311314
let dict = try JSONSerialization.jsonObject(with: data) as? [String: Any]
312315

313316
return converter?(dict!) ?? dict! as! T

Sources/Appwrite/Models/AppwriteError.swift

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,19 @@ open class AppwriteError : Swift.Error, Decodable {
1212
self.type = type
1313
}
1414
}
15+
16+
extension AppwriteError: CustomStringConvertible {
17+
public var description: String {
18+
get {
19+
return self.message
20+
}
21+
}
22+
}
23+
24+
extension AppwriteError: LocalizedError {
25+
public var errorDescription: String? {
26+
get {
27+
return self.message
28+
}
29+
}
30+
}

Sources/Appwrite/Models/RealtimeModels.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,18 @@ public class RealtimeCallback {
2222
}
2323

2424
public class RealtimeResponseEvent {
25-
public let event: String?
25+
public let events: [String]?
2626
public let channels: [String]?
2727
public let timestamp: Int64?
2828
public var payload: [String: Any]?
2929

3030
init(
31-
event: String,
31+
events: [String],
3232
channels: [String],
3333
timestamp: Int64,
3434
payload: [String: Any]
3535
) {
36-
self.event = event
36+
self.events = events
3737
self.channels = channels
3838
self.timestamp = timestamp
3939
self.payload = payload

Sources/Appwrite/Services/Realtime.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,9 @@ extension Realtime: WebSocketClientDelegate {
192192
guard let channels = data["channels"] as? Array<String> else {
193193
return
194194
}
195+
guard let events = data["events"] as? Array<String> else {
196+
return
197+
}
195198
guard let payload = data["payload"] as? [String: Any] else {
196199
return
197200
}
@@ -204,7 +207,7 @@ extension Realtime: WebSocketClientDelegate {
204207
for subscription in activeSubscriptions {
205208
if channels.contains(where: { subscription.value.channels.contains($0) }) {
206209
let response = RealtimeResponseEvent(
207-
event: data["event"] as! String,
210+
events: events,
208211
channels: channels,
209212
timestamp: data["timestamp"] as! Int64,
210213
payload: payload

0 commit comments

Comments
 (0)