Skip to content

Commit 841281f

Browse files
Merge pull request #444 from appwrite/fix-realtime-changes-0-14
fix: realtime event model for 0.14 events
2 parents 2711b47 + ae6c3d7 commit 841281f

File tree

5 files changed

+18
-15
lines changed

5 files changed

+18
-15
lines changed

templates/android/library/src/main/java/io/appwrite/models/RealtimeModels.kt.twig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ open class RealtimeResponse(
2121
)
2222

2323
data class RealtimeResponseEvent<T>(
24-
val event: String,
24+
val events: Collection<String>,
2525
val channels: Collection<String>,
2626
val timestamp: Long,
2727
var payload: T

templates/flutter/lib/src/realtime_message.dart.twig

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,25 @@ import 'dart:convert';
22
import 'package:flutter/foundation.dart';
33

44
class RealtimeMessage {
5-
final String event;
5+
final List<String> events;
66
final Map<String, dynamic> payload;
77
final List<String> channels;
88
final int timestamp;
99
RealtimeMessage({
10-
required this.event,
10+
required this.events,
1111
required this.payload,
1212
required this.channels,
1313
required this.timestamp,
1414
});
1515

1616
RealtimeMessage copyWith({
17-
String? event,
17+
List<String>? events,
1818
Map<String, dynamic>? payload,
1919
List<String>? channels,
2020
int? timestamp,
2121
}) {
2222
return RealtimeMessage(
23-
event: event ?? this.event,
23+
events: events ?? this.events,
2424
payload: payload ?? this.payload,
2525
channels: channels ?? this.channels,
2626
timestamp: timestamp ?? this.timestamp,
@@ -29,7 +29,7 @@ class RealtimeMessage {
2929

3030
Map<String, dynamic> toMap() {
3131
return {
32-
'event': event,
32+
'events': events,
3333
'payload': payload,
3434
'channels': channels,
3535
'timestamp': timestamp,
@@ -38,7 +38,7 @@ class RealtimeMessage {
3838

3939
factory RealtimeMessage.fromMap(Map<String, dynamic> map) {
4040
return RealtimeMessage(
41-
event: map['event'],
41+
events: List<String>.from(map['events'] ?? []),
4242
payload: Map<String, dynamic>.from(map['payload'] ?? <String, dynamic>{}),
4343
channels: List<String>.from(map['channels'] ?? []),
4444
timestamp: map['timestamp'],
@@ -52,23 +52,23 @@ class RealtimeMessage {
5252

5353
@override
5454
String toString() {
55-
return 'RealtimeMessage(event: $event, payload: $payload, channels: $channels, timestamp: $timestamp)';
55+
return 'RealtimeMessage(events: $events, payload: $payload, channels: $channels, timestamp: $timestamp)';
5656
}
5757

5858
@override
5959
bool operator ==(Object other) {
6060
if (identical(this, other)) return true;
6161

6262
return other is RealtimeMessage &&
63-
other.event == event &&
63+
listEquals(other.events, events) &&
6464
mapEquals(other.payload, payload) &&
6565
listEquals(other.channels, channels) &&
6666
other.timestamp == timestamp;
6767
}
6868

6969
@override
7070
int get hashCode {
71-
return event.hashCode ^
71+
return events.hashCode ^
7272
payload.hashCode ^
7373
channels.hashCode ^
7474
timestamp.hashCode;

templates/swift/Sources/Models/RealtimeModels.swift.twig

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

templates/swift/Sources/Services/Realtime.swift.twig

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

templates/web/src/sdk.ts.twig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ type RealtimeRequest = {
3737
}
3838

3939
export type RealtimeResponseEvent<T extends unknown> = {
40-
event: string;
40+
events: string[];
4141
channels: string[];
4242
timestamp: number;
4343
payload: T;

0 commit comments

Comments
 (0)