publish<T> method
Future<MessageStatus?>
publish<T>(
- T message, {
- String channelName = 'default',
- PublishOptions? publishOptions,
- DeliveryOptions? deliveryOptions,
Implementation
Future<MessageStatus?> publish<T>(T message,
{String channelName = 'default',
PublishOptions? publishOptions,
DeliveryOptions? deliveryOptions}) async {
var messageToPublish = reflector.isCustomClass(message)
? reflector.serialize(message)
: message;
Map<String, dynamic> parameters = {'message': messageToPublish};
if (publishOptions?.headers != null) {
parameters['headers'] = publishOptions!.headers;
}
if (publishOptions?.publisherId != null) {
parameters['publisherId'] = publishOptions!.publisherId;
}
if (deliveryOptions?.publishAt != null) {
parameters['publishAt'] = deliveryOptions!.publishAt;
}
if (deliveryOptions?.repeatEvery != null) {
parameters['repeatEvery'] = deliveryOptions!.repeatEvery;
}
if (deliveryOptions?.repeatExpiresAt != null) {
parameters['repeatExpiresAt'] = deliveryOptions!.repeatExpiresAt;
}
if (deliveryOptions?.publishPolicy != null) {
parameters['publishPolicy'] = deliveryOptions!.publishPolicy;
}
if (deliveryOptions?.pushBroadcast != null) {
parameters['pushBroadcast'] = deliveryOptions!.pushBroadcast;
}
if (deliveryOptions?.pushSinglecast != null) {
parameters['pushSinglecast'] = deliveryOptions!.pushSinglecast;
}
if (deliveryOptions?.segmentQuery != null) {
parameters['segmentQuery'] = deliveryOptions!.segmentQuery;
}
return Invoker.post('/messaging/$channelName', parameters);
}