Erweiterungen

This commit is contained in:
Sven committed 2024-03-04 11:12:26 +01:00
1 parent a35532b909
commit 4b0203b71b
5 files changed
+107 -37

No files matched your search

+34 -36
View File
@@ -22,9 +22,9 @@ const EnqueuedMessageSchema = CollectionSchema(
name: r'payload', name: r'payload',
type: IsarType.string, type: IsarType.string,
), ),
r'receiver': PropertySchema( r'topic': PropertySchema(
id: 1, id: 1,
name: r'receiver', name: r'topic',
type: IsarType.string, type: IsarType.string,
) )
}, },
@@ -380,13 +380,13 @@ extension EnqueuedMessageQueryFilter
} }
QueryBuilder<EnqueuedMessage, EnqueuedMessage, QAfterFilterCondition> QueryBuilder<EnqueuedMessage, EnqueuedMessage, QAfterFilterCondition>
receiverEqualTo( topicEqualTo(
String value, { String value, {
bool caseSensitive = true, bool caseSensitive = true,
}) { }) {
return QueryBuilder.apply(this, (query) { return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.equalTo( return query.addFilterCondition(FilterCondition.equalTo(
property: r'receiver', property: r'topic',
value: value, value: value,
caseSensitive: caseSensitive, caseSensitive: caseSensitive,
)); ));
@@ -394,7 +394,7 @@ extension EnqueuedMessageQueryFilter
} }
QueryBuilder<EnqueuedMessage, EnqueuedMessage, QAfterFilterCondition> QueryBuilder<EnqueuedMessage, EnqueuedMessage, QAfterFilterCondition>
receiverGreaterThan( topicGreaterThan(
String value, { String value, {
bool include = false, bool include = false,
bool caseSensitive = true, bool caseSensitive = true,
@@ -402,7 +402,7 @@ extension EnqueuedMessageQueryFilter
return QueryBuilder.apply(this, (query) { return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.greaterThan( return query.addFilterCondition(FilterCondition.greaterThan(
include: include, include: include,
property: r'receiver', property: r'topic',
value: value, value: value,
caseSensitive: caseSensitive, caseSensitive: caseSensitive,
)); ));
@@ -410,7 +410,7 @@ extension EnqueuedMessageQueryFilter
} }
QueryBuilder<EnqueuedMessage, EnqueuedMessage, QAfterFilterCondition> QueryBuilder<EnqueuedMessage, EnqueuedMessage, QAfterFilterCondition>
receiverLessThan( topicLessThan(
String value, { String value, {
bool include = false, bool include = false,
bool caseSensitive = true, bool caseSensitive = true,
@@ -418,7 +418,7 @@ extension EnqueuedMessageQueryFilter
return QueryBuilder.apply(this, (query) { return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.lessThan( return query.addFilterCondition(FilterCondition.lessThan(
include: include, include: include,
property: r'receiver', property: r'topic',
value: value, value: value,
caseSensitive: caseSensitive, caseSensitive: caseSensitive,
)); ));
@@ -426,7 +426,7 @@ extension EnqueuedMessageQueryFilter
} }
QueryBuilder<EnqueuedMessage, EnqueuedMessage, QAfterFilterCondition> QueryBuilder<EnqueuedMessage, EnqueuedMessage, QAfterFilterCondition>
receiverBetween( topicBetween(
String lower, String lower,
String upper, { String upper, {
bool includeLower = true, bool includeLower = true,
@@ -435,7 +435,7 @@ extension EnqueuedMessageQueryFilter
}) { }) {
return QueryBuilder.apply(this, (query) { return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.between( return query.addFilterCondition(FilterCondition.between(
property: r'receiver', property: r'topic',
lower: lower, lower: lower,
includeLower: includeLower, includeLower: includeLower,
upper: upper, upper: upper,
@@ -446,13 +446,13 @@ extension EnqueuedMessageQueryFilter
} }
QueryBuilder<EnqueuedMessage, EnqueuedMessage, QAfterFilterCondition> QueryBuilder<EnqueuedMessage, EnqueuedMessage, QAfterFilterCondition>
receiverStartsWith( topicStartsWith(
String value, { String value, {
bool caseSensitive = true, bool caseSensitive = true,
}) { }) {
return QueryBuilder.apply(this, (query) { return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.startsWith( return query.addFilterCondition(FilterCondition.startsWith(
property: r'receiver', property: r'topic',
value: value, value: value,
caseSensitive: caseSensitive, caseSensitive: caseSensitive,
)); ));
@@ -460,13 +460,13 @@ extension EnqueuedMessageQueryFilter
} }
QueryBuilder<EnqueuedMessage, EnqueuedMessage, QAfterFilterCondition> QueryBuilder<EnqueuedMessage, EnqueuedMessage, QAfterFilterCondition>
receiverEndsWith( topicEndsWith(
String value, { String value, {
bool caseSensitive = true, bool caseSensitive = true,
}) { }) {
return QueryBuilder.apply(this, (query) { return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.endsWith( return query.addFilterCondition(FilterCondition.endsWith(
property: r'receiver', property: r'topic',
value: value, value: value,
caseSensitive: caseSensitive, caseSensitive: caseSensitive,
)); ));
@@ -474,10 +474,10 @@ extension EnqueuedMessageQueryFilter
} }
QueryBuilder<EnqueuedMessage, EnqueuedMessage, QAfterFilterCondition> QueryBuilder<EnqueuedMessage, EnqueuedMessage, QAfterFilterCondition>
receiverContains(String value, {bool caseSensitive = true}) { topicContains(String value, {bool caseSensitive = true}) {
return QueryBuilder.apply(this, (query) { return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.contains( return query.addFilterCondition(FilterCondition.contains(
property: r'receiver', property: r'topic',
value: value, value: value,
caseSensitive: caseSensitive, caseSensitive: caseSensitive,
)); ));
@@ -485,10 +485,10 @@ extension EnqueuedMessageQueryFilter
} }
QueryBuilder<EnqueuedMessage, EnqueuedMessage, QAfterFilterCondition> QueryBuilder<EnqueuedMessage, EnqueuedMessage, QAfterFilterCondition>
receiverMatches(String pattern, {bool caseSensitive = true}) { topicMatches(String pattern, {bool caseSensitive = true}) {
return QueryBuilder.apply(this, (query) { return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.matches( return query.addFilterCondition(FilterCondition.matches(
property: r'receiver', property: r'topic',
wildcard: pattern, wildcard: pattern,
caseSensitive: caseSensitive, caseSensitive: caseSensitive,
)); ));
@@ -496,20 +496,20 @@ extension EnqueuedMessageQueryFilter
} }
QueryBuilder<EnqueuedMessage, EnqueuedMessage, QAfterFilterCondition> QueryBuilder<EnqueuedMessage, EnqueuedMessage, QAfterFilterCondition>
receiverIsEmpty() { topicIsEmpty() {
return QueryBuilder.apply(this, (query) { return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.equalTo( return query.addFilterCondition(FilterCondition.equalTo(
property: r'receiver', property: r'topic',
value: '', value: '',
)); ));
}); });
} }
QueryBuilder<EnqueuedMessage, EnqueuedMessage, QAfterFilterCondition> QueryBuilder<EnqueuedMessage, EnqueuedMessage, QAfterFilterCondition>
receiverIsNotEmpty() { topicIsNotEmpty() {
return QueryBuilder.apply(this, (query) { return QueryBuilder.apply(this, (query) {
return query.addFilterCondition(FilterCondition.greaterThan( return query.addFilterCondition(FilterCondition.greaterThan(
property: r'receiver', property: r'topic',
value: '', value: '',
)); ));
}); });
@@ -537,17 +537,16 @@ extension EnqueuedMessageQuerySortBy
}); });
} }
QueryBuilder<EnqueuedMessage, EnqueuedMessage, QAfterSortBy> QueryBuilder<EnqueuedMessage, EnqueuedMessage, QAfterSortBy> sortByTopic() {
sortByReceiver() {
return QueryBuilder.apply(this, (query) { return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'receiver', Sort.asc); return query.addSortBy(r'topic', Sort.asc);
}); });
} }
QueryBuilder<EnqueuedMessage, EnqueuedMessage, QAfterSortBy> QueryBuilder<EnqueuedMessage, EnqueuedMessage, QAfterSortBy>
sortByReceiverDesc() { sortByTopicDesc() {
return QueryBuilder.apply(this, (query) { return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'receiver', Sort.desc); return query.addSortBy(r'topic', Sort.desc);
}); });
} }
} }
@@ -579,17 +578,16 @@ extension EnqueuedMessageQuerySortThenBy
}); });
} }
QueryBuilder<EnqueuedMessage, EnqueuedMessage, QAfterSortBy> QueryBuilder<EnqueuedMessage, EnqueuedMessage, QAfterSortBy> thenByTopic() {
thenByReceiver() {
return QueryBuilder.apply(this, (query) { return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'receiver', Sort.asc); return query.addSortBy(r'topic', Sort.asc);
}); });
} }
QueryBuilder<EnqueuedMessage, EnqueuedMessage, QAfterSortBy> QueryBuilder<EnqueuedMessage, EnqueuedMessage, QAfterSortBy>
thenByReceiverDesc() { thenByTopicDesc() {
return QueryBuilder.apply(this, (query) { return QueryBuilder.apply(this, (query) {
return query.addSortBy(r'receiver', Sort.desc); return query.addSortBy(r'topic', Sort.desc);
}); });
} }
} }
@@ -603,10 +601,10 @@ extension EnqueuedMessageQueryWhereDistinct
}); });
} }
QueryBuilder<EnqueuedMessage, EnqueuedMessage, QDistinct> distinctByReceiver( QueryBuilder<EnqueuedMessage, EnqueuedMessage, QDistinct> distinctByTopic(
{bool caseSensitive = true}) { {bool caseSensitive = true}) {
return QueryBuilder.apply(this, (query) { return QueryBuilder.apply(this, (query) {
return query.addDistinctBy(r'receiver', caseSensitive: caseSensitive); return query.addDistinctBy(r'topic', caseSensitive: caseSensitive);
}); });
} }
} }
@@ -625,9 +623,9 @@ extension EnqueuedMessageQueryProperty
}); });
} }
QueryBuilder<EnqueuedMessage, String, QQueryOperations> receiverProperty() { QueryBuilder<EnqueuedMessage, String, QQueryOperations> topicProperty() {
return QueryBuilder.apply(this, (query) { return QueryBuilder.apply(this, (query) {
return query.addPropertyName(r'receiver'); return query.addPropertyName(r'topic');
}); });
} }
} }
+1 -1
View File
@@ -5,7 +5,7 @@ import 'package:stadtbote/tools/mqtt_core.dart';
import 'package:stadtbote/tools/util.dart'; import 'package:stadtbote/tools/util.dart';
void showInfosPopup(BuildContext context, SessionStatus? status) async { void showInfosPopup(BuildContext context, SessionStatus? status) async {
var text = "Versionsnummer: a206\n"; var text = "Versionsnummer: a207\n";
text += "Verbindungsstatus: ${MqttCore.instance.connectionState == ConnectionStateEnum.connected ? "Verbunden" : "NICHT verbunden"}\n"; text += "Verbindungsstatus: ${MqttCore.instance.connectionState == ConnectionStateEnum.connected ? "Verbunden" : "NICHT verbunden"}\n";
text += "GPS-Status: ${MyApp.currentPosition != null ? MyApp.currentPosition!.timestamp.toString() : "Unbekannt"}\n"; text += "GPS-Status: ${MyApp.currentPosition != null ? MyApp.currentPosition!.timestamp.toString() : "Unbekannt"}\n";
text += "\n"; text += "\n";
@@ -0,0 +1,21 @@
import 'package:isar/isar.dart';
import 'package:json_annotation/json_annotation.dart';
part 'acknowledge_job.g.dart';
@JsonSerializable()
class AcknowledgeJob {
late int id;
late int state;
late int ver;
late int utc;
AcknowledgeJob();
factory AcknowledgeJob.fromJson(Map<String, dynamic> json) => _$AcknowledgeJobFromJson(json);
Map<String, dynamic> toJson() => _$AcknowledgeJobToJson(this);
}
@@ -0,0 +1,22 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'acknowledge_job.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
AcknowledgeJob _$AcknowledgeJobFromJson(Map<String, dynamic> json) =>
AcknowledgeJob()
..id = json['id'] as int
..state = json['state'] as int
..ver = json['ver'] as int
..utc = json['utc'] as int;
Map<String, dynamic> _$AcknowledgeJobToJson(AcknowledgeJob instance) =>
<String, dynamic>{
'id': instance.id,
'state': instance.state,
'ver': instance.ver,
'utc': instance.utc,
};
+29
View File
@@ -9,6 +9,7 @@ import 'package:mqtt_client/mqtt_server_client.dart';
import 'package:stadtbote/model/enqueued_message.dart'; import 'package:stadtbote/model/enqueued_message.dart';
import 'package:stadtbote/model/ranking.dart'; import 'package:stadtbote/model/ranking.dart';
import 'package:stadtbote/model/status.dart'; import 'package:stadtbote/model/status.dart';
import 'package:stadtbote/protocoll_messages/acknowledge_job.dart';
import 'package:stadtbote/protocoll_messages/bootstrap_request.dart'; import 'package:stadtbote/protocoll_messages/bootstrap_request.dart';
import 'package:stadtbote/protocoll_messages/bootstrap_response_payload.dart'; import 'package:stadtbote/protocoll_messages/bootstrap_response_payload.dart';
import 'package:stadtbote/protocoll_messages/device_object.dart'; import 'package:stadtbote/protocoll_messages/device_object.dart';
@@ -285,6 +286,8 @@ class MqttCore {
} }
MessageService().publish<JobReceivedMessage>(Constants.messageTopicJobReceived, arguments: JobReceivedMessage(job: newJob)); MessageService().publish<JobReceivedMessage>(Constants.messageTopicJobReceived, arguments: JobReceivedMessage(job: newJob));
_acknowlegdeJob(newJob);
} }
} }
@@ -483,4 +486,30 @@ class MqttCore {
} }
} }
} }
/*
private void AcknowledgeJob(Job job)
{
var payloadObject = new JObject();
var receivedObject = new JObject();
payloadObject.Add(new JProperty("received", receivedObject));
receivedObject.Add(new JProperty("id", job.Id));
receivedObject.Add(new JProperty("state", job.State));
receivedObject.Add(new JProperty("ver", job.Ver));
receivedObject.Add(new JProperty("utc", Utils.GetUTCTimestamp()));
SendJsonMessageAsync("job", payloadObject);
}
*/
void _acknowlegdeJob(Job job) {
var message = AcknowledgeJob();
message.id = job.id;
message.state = job.state;
message.ver = job.ver;
message.utc = DateTime.now().millisecondsSinceEpoch;
MqttCore.instance.publishPayloadMessage('job', message.toJson());
}
} }