getMessageContextRaw method
- @experimental
- required String token,
- required int messageId,
- int? limit,
- ChatGetMessageContextApiVersion? apiVersion,
- bool? oCSAPIRequest,
Get the context of a message.
This method and the response it returns is experimental. The API might change without a major version bump.
Returns a Future containing a DynamiteRawResponse with the raw HttpClientResponse and serialization helpers. Throws a DynamiteApiException if the API call does not return an expected status code.
Parameters:
limit
Number of chat messages to receive in both directions (50 by default, 100 at most, might return 201 messages). Defaults to50
.apiVersion
Defaults tov1
.token
messageId
The focused message which should be in the "middle" of the returned context.oCSAPIRequest
Required to be true for the API request to pass. Defaults totrue
.
Status codes:
- 200: Message context returned
- 304: No messages
See:
- getMessageContext for an operation that returns a DynamiteResponse with a stable API.
Implementation
@experimental
DynamiteRawResponse<ChatGetMessageContextResponseApplicationJson, ChatChatGetMessageContextHeaders>
getMessageContextRaw({
required String token,
required int messageId,
int? limit,
ChatGetMessageContextApiVersion? apiVersion,
bool? oCSAPIRequest,
}) {
final _parameters = <String, dynamic>{};
final _headers = <String, String>{
'Accept': 'application/json',
};
// coverage:ignore-start
final authentication = _rootClient.authentications.firstWhereOrNull(
(auth) => switch (auth) {
DynamiteHttpBearerAuthentication() || DynamiteHttpBasicAuthentication() => true,
_ => false,
},
);
if (authentication != null) {
_headers.addAll(
authentication.headers,
);
}
// coverage:ignore-end
final $token = jsonSerializers.serialize(token, specifiedType: const FullType(String));
dynamite_utils.checkPattern($token as String?, RegExp(r'^[a-z0-9]{4,30}$'), 'token');
_parameters['token'] = $token;
final $messageId = jsonSerializers.serialize(messageId, specifiedType: const FullType(int));
_parameters['messageId'] = $messageId;
var $limit = jsonSerializers.serialize(limit, specifiedType: const FullType(int));
$limit ??= 50;
_parameters['limit'] = $limit;
var $apiVersion =
jsonSerializers.serialize(apiVersion, specifiedType: const FullType(ChatGetMessageContextApiVersion));
$apiVersion ??= 'v1';
_parameters['apiVersion'] = $apiVersion;
var $oCSAPIRequest = jsonSerializers.serialize(oCSAPIRequest, specifiedType: const FullType(bool));
$oCSAPIRequest ??= true;
_headers['OCS-APIRequest'] = const dynamite_utils.HeaderEncoder().convert($oCSAPIRequest);
final _path = UriTemplate('/ocs/v2.php/apps/spreed/api/{apiVersion}/chat/{token}/{messageId}/context{?limit*}')
.expand(_parameters);
return DynamiteRawResponse<ChatGetMessageContextResponseApplicationJson, ChatChatGetMessageContextHeaders>(
response: _rootClient.executeRequest(
'get',
_path,
_headers,
null,
const {200, 304},
),
bodyType: const FullType(ChatGetMessageContextResponseApplicationJson),
headersType: const FullType(ChatChatGetMessageContextHeaders),
serializers: jsonSerializers,
);
}