Erweiterungen Ranking

This commit is contained in:
Sven committed 2024-02-26 15:40:22 +01:00
1 parent 972855789d
commit 9f89673751
5 files changed
+266 -509

No files matched your search

+16 -16
View File
@@ -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());
}