$sendMessage_Request method
- @experimental
- required String message,
- required String token,
- String? referenceId,
- int? replyTo,
- BotSendMessageSilent? silent,
- BotSendMessageApiVersion? apiVersion,
- bool? oCSAPIRequest,
Sends a new chat message to the given room.
The author and timestamp are automatically set to the current user/guest and time.
Returns a DynamiteRequest
backing the sendMessage operation.
Throws a DynamiteApiException
if the API call does not return an expected status code.
Parameters:
message
The message to send.referenceId
For the message to be able to later identify it again. Defaults to""
.replyTo
Parent id which this message is a reply to. Defaults to0
.silent
If sent silent the chat message will not create any notifications. Defaults to0
.apiVersion
Defaults to"v1"
.token
Conversation token.oCSAPIRequest
Required to be true for the API request to pass. Defaults totrue
.
Status codes:
- 201: Message sent successfully
- 400: When the replyTo is invalid or message is empty
- 401: Sending message is not allowed
- 413: Message too long
See:
- sendMessage for a method executing this request and parsing the response.
- $sendMessage_Serializer for a converter to parse the
Response
from an executed this request.
Implementation
@_i2.experimental
_i3.Request $sendMessage_Request({
required String message,
required String token,
String? referenceId,
int? replyTo,
BotSendMessageSilent? silent,
BotSendMessageApiVersion? apiVersion,
bool? oCSAPIRequest,
}) {
final _parameters = <String, Object?>{};
final $message = _$jsonSerializers.serialize(message, specifiedType: const FullType(String));
_parameters['message'] = $message;
final $token = _$jsonSerializers.serialize(token, specifiedType: const FullType(String));
_i4.checkString(
$token,
'token',
pattern: RegExp(r'^[a-z0-9]{4,30}$'),
);
_parameters['token'] = $token;
var $referenceId = _$jsonSerializers.serialize(referenceId, specifiedType: const FullType(String));
$referenceId ??= '';
_parameters['referenceId'] = $referenceId;
var $replyTo = _$jsonSerializers.serialize(replyTo, specifiedType: const FullType(int));
$replyTo ??= 0;
_parameters['replyTo'] = $replyTo;
var $silent = _$jsonSerializers.serialize(silent, specifiedType: const FullType(BotSendMessageSilent));
$silent ??= 0;
_parameters['silent'] = $silent;
var $apiVersion = _$jsonSerializers.serialize(apiVersion, specifiedType: const FullType(BotSendMessageApiVersion));
$apiVersion ??= 'v1';
_parameters['apiVersion'] = $apiVersion;
final _path = _i5.UriTemplate(
'/ocs/v2.php/apps/spreed/api/{apiVersion}/bot/{token}/message{?message*,referenceId*,replyTo*,silent*}',
).expand(_parameters);
final _uri = Uri.parse('${_rootClient.baseURL}$_path');
final _request = _i3.Request('post', _uri);
_request.headers['Accept'] = 'application/json';
// coverage:ignore-start
final authentication = _rootClient.authentications?.firstWhereOrNull(
(auth) => switch (auth) {
_i1.DynamiteHttpBearerAuthentication() || _i1.DynamiteHttpBasicAuthentication() => true,
_ => false,
},
);
if (authentication != null) {
_request.headers.addAll(
authentication.headers,
);
}
// coverage:ignore-end
var $oCSAPIRequest = _$jsonSerializers.serialize(oCSAPIRequest, specifiedType: const FullType(bool));
$oCSAPIRequest ??= true;
_request.headers['OCS-APIRequest'] = const _i4.HeaderEncoder().convert($oCSAPIRequest);
return _request;
}