Line data Source code
1 : /*
2 : * Famedly Matrix SDK
3 : * Copyright (C) 2019, 2020 Famedly GmbH
4 : *
5 : * This program is free software: you can redistribute it and/or modify
6 : * it under the terms of the GNU Affero General Public License as
7 : * published by the Free Software Foundation, either version 3 of the
8 : * License, or (at your option) any later version.
9 : *
10 : * This program is distributed in the hope that it will be useful,
11 : * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 : * GNU Affero General Public License for more details.
14 : *
15 : * You should have received a copy of the GNU Affero General Public License
16 : * along with this program. If not, see <https://www.gnu.org/licenses/>.
17 : */
18 :
19 : import 'dart:convert';
20 :
21 : class QueuedToDeviceEvent {
22 : final int id;
23 : final String type;
24 : final String txnId;
25 : final Map<String, dynamic> content;
26 :
27 2 : QueuedToDeviceEvent({
28 : required this.id,
29 : required this.type,
30 : required this.txnId,
31 : required this.content,
32 : });
33 :
34 2 : factory QueuedToDeviceEvent.fromJson(Map<String, dynamic> json) =>
35 2 : QueuedToDeviceEvent(
36 2 : id: json['id'],
37 2 : type: json['type'],
38 2 : txnId: json['txn_id'],
39 : // Temporary fix to stay compatible to Moor AND a key value store
40 4 : content: json['content'] is String
41 0 : ? jsonDecode(json['content'])
42 2 : : json['content'],
43 : );
44 :
45 0 : Map<String, dynamic> toJson() => {
46 0 : 'id': id,
47 0 : 'type': type,
48 0 : 'txn_id': txnId,
49 0 : 'content': content,
50 : };
51 : }
|