Erweiterungen Ranking
This commit is contained in:
1 parent
972855789d
commit
9f89673751
5 files changed
+266
-509
No files matched your search
+16
-16
@@ -6,7 +6,7 @@ import 'package:flutter/services.dart';
|
||||
import 'package:isar/isar.dart';
|
||||
import 'package:mqtt_client/mqtt_client.dart';
|
||||
import 'package:mqtt_client/mqtt_server_client.dart';
|
||||
import 'package:stadtbote/model/ranking.dart';
|
||||
import 'package:stadtbote/model/rank.dart';
|
||||
import 'package:stadtbote/model/status.dart';
|
||||
import 'package:stadtbote/protocoll_messages/bootstrap_response_payload.dart';
|
||||
import 'package:stadtbote/model/job.dart';
|
||||
@@ -172,31 +172,29 @@ class MqttCore {
|
||||
var topicArray = topic!.split('/');
|
||||
var messageType = topicArray[topicArray.length - 1];
|
||||
|
||||
Map<String, dynamic> messageData = jsonDecode(payload);
|
||||
|
||||
switch(messageType) {
|
||||
case 'session':
|
||||
_sessionMessageReceived(messageData);
|
||||
_sessionMessageReceived(jsonDecode(payload));
|
||||
break;
|
||||
|
||||
case 'status':
|
||||
_statusMessageReceived(messageData);
|
||||
_statusMessageReceived(jsonDecode(payload));
|
||||
break;
|
||||
|
||||
case 'ranks':
|
||||
//_rankingMessageReceived(payloadData);
|
||||
case 'ranking':
|
||||
_rankingMessageReceived(jsonDecode(payload));
|
||||
break;
|
||||
|
||||
case 'job':
|
||||
_jobMessageReceived(messageData);
|
||||
_jobMessageReceived(jsonDecode(payload));
|
||||
break;
|
||||
|
||||
case 'job_del':
|
||||
_jobDeleteReceived(messageData);
|
||||
_jobDeleteReceived(jsonDecode(payload));
|
||||
break;
|
||||
|
||||
case 'sync_request':
|
||||
_syncRequestReceived(messageData);
|
||||
_syncRequestReceived(jsonDecode(payload));
|
||||
break;
|
||||
|
||||
case "mssg":
|
||||
@@ -216,6 +214,7 @@ class MqttCore {
|
||||
_mqttClient.subscribe(_fromServerTopic + "/status", MqttQos.exactlyOnce);
|
||||
_mqttClient.subscribe(_fromServerTopic + "/job", MqttQos.exactlyOnce);
|
||||
_mqttClient.subscribe(_fromServerTopic + "/job_del", MqttQos.exactlyOnce);
|
||||
_mqttClient.subscribe(_fromServerTopic + "/ranking", MqttQos.exactlyOnce);
|
||||
Util.logInfo('subscribed to topic: $_fromServerTopic');
|
||||
|
||||
MessageService().publish<ConnectionStatus>(Constants.messageTopicConnectionStatusChanged, arguments: ConnectionStatus(status: ConnectionStatusEnum.connected));
|
||||
@@ -250,13 +249,14 @@ class MqttCore {
|
||||
}
|
||||
|
||||
void _rankingMessageReceived(List<dynamic> payloadData) async {
|
||||
Map<String, dynamic> rankingMap = {};
|
||||
rankingMap["ranks"] = payloadData;
|
||||
var ranking = Ranking.fromJson(rankingMap);
|
||||
for (var entry in payloadData) {
|
||||
var rank = Rank.fromJson(entry);
|
||||
|
||||
await MyApp.isarInstance.writeTxn(() async {
|
||||
await MyApp.isarInstance.ranks.put(rank);
|
||||
});
|
||||
}
|
||||
|
||||
await MyApp.isarInstance.writeTxn(() async {
|
||||
await MyApp.isarInstance.rankings.put(ranking);
|
||||
});
|
||||
|
||||
MessageService().publish<RankingUpdated>(Constants.messageTopicRankingUpdated, arguments: RankingUpdated());
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user