Skip to content

Commit 4932e60

Browse files
authored
Merge pull request #93 from appwrite/dev
feat: Apple SDK update for version 13.3.0
2 parents f8032bc + 04d2933 commit 4932e60

File tree

4 files changed

+27
-2
lines changed

4 files changed

+27
-2
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Change Log
22

3+
## 13.3.0
4+
5+
* Add `onOpen`, `onClose` and `onError` callbacks to `Realtime` service
6+
37
## 13.2.2
48

59
* Fix issue: Missing AppwriteEnums dependency causing build failure

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ Add the package to your `Package.swift` dependencies:
3131

3232
```swift
3333
dependencies: [
34-
.package(url: "git@github.com:appwrite/sdk-for-apple.git", from: "13.2.2"),
34+
.package(url: "git@github.com:appwrite/sdk-for-apple.git", from: "13.3.0"),
3535
],
3636
```
3737

Sources/Appwrite/Client.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ open class Client {
2323
"x-sdk-name": "Apple",
2424
"x-sdk-platform": "client",
2525
"x-sdk-language": "apple",
26-
"x-sdk-version": "13.2.2",
26+
"x-sdk-version": "13.3.0",
2727
"x-appwrite-response-format": "1.8.0"
2828
]
2929

Sources/Appwrite/Services/Realtime.swift

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,22 @@ open class Realtime : Service {
2222
private var reconnectAttempts = 0
2323
private var subscriptionsCounter = 0
2424
private var reconnect = true
25+
26+
private var onErrorCallbacks: [((Swift.Error?, HTTPResponseStatus?) -> Void)] = []
27+
private var onCloseCallbacks: [(() -> Void)] = []
28+
private var onOpenCallbacks: [(() -> Void)] = []
29+
30+
public func onError(_ callback: @escaping (Swift.Error?, HTTPResponseStatus?) -> Void) {
31+
self.onErrorCallbacks.append(callback)
32+
}
33+
34+
public func onClose(_ callback: @escaping () -> Void) {
35+
self.onCloseCallbacks.append(callback)
36+
}
37+
38+
public func onOpen(_ callback: @escaping () -> Void) {
39+
self.onOpenCallbacks.append(callback)
40+
}
2541

2642
private func startHeartbeat() {
2743
stopHeartbeat()
@@ -191,6 +207,7 @@ extension Realtime: WebSocketClientDelegate {
191207

192208
public func onOpen(channel: Channel) {
193209
self.reconnectAttempts = 0
210+
onOpenCallbacks.forEach { $0() }
194211
startHeartbeat()
195212
}
196213

@@ -210,6 +227,8 @@ extension Realtime: WebSocketClientDelegate {
210227

211228
public func onClose(channel: Channel, data: Data) async throws {
212229
stopHeartbeat()
230+
231+
onCloseCallbacks.forEach { $0() }
213232

214233
if (!reconnect) {
215234
reconnect = true
@@ -230,6 +249,8 @@ extension Realtime: WebSocketClientDelegate {
230249
public func onError(error: Swift.Error?, status: HTTPResponseStatus?) {
231250
stopHeartbeat()
232251
print(error?.localizedDescription ?? "Unknown error")
252+
253+
onErrorCallbacks.forEach { $0(error, status) }
233254
}
234255

235256
func handleResponseError(from json: [String: Any]) throws {

0 commit comments

Comments
 (0)