$createPoll_Request method
- @experimental
- required String question,
- required BuiltList<
String> options, - required PollCreatePollResultMode resultMode,
- required int maxVotes,
- required String token,
- PollCreatePollApiVersion? apiVersion,
- bool? oCSAPIRequest,
Create a poll.
Returns a DynamiteRequest
backing the createPoll operation.
Throws a DynamiteApiException
if the API call does not return an expected status code.
Parameters:
question
Question of the poll.options
Options of the poll.resultMode
Mode how the results will be shown.maxVotes
Number of maximum votes per voter.apiVersion
Defaults to"v1"
.token
oCSAPIRequest
Required to be true for the API request to pass. Defaults totrue
.
Status codes:
- 201: Poll created successfully
- 400: Creating poll is not possible
See:
- createPoll for a method executing this request and parsing the response.
- $createPoll_Serializer for a converter to parse the
Response
from an executed this request.
Implementation
@_i2.experimental
_i3.Request $createPoll_Request({
required String question,
required BuiltList<String> options,
required PollCreatePollResultMode resultMode,
required int maxVotes,
required String token,
PollCreatePollApiVersion? apiVersion,
bool? oCSAPIRequest,
}) {
final _parameters = <String, Object?>{};
final $question = _$jsonSerializers.serialize(question, specifiedType: const FullType(String));
_parameters['question'] = $question;
final $options = _$jsonSerializers.serialize(options, specifiedType: const FullType(BuiltList, [FullType(String)]));
_parameters['options%5B%5D'] = $options;
final $resultMode =
_$jsonSerializers.serialize(resultMode, specifiedType: const FullType(PollCreatePollResultMode));
_parameters['resultMode'] = $resultMode;
final $maxVotes = _$jsonSerializers.serialize(maxVotes, specifiedType: const FullType(int));
_parameters['maxVotes'] = $maxVotes;
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 $apiVersion = _$jsonSerializers.serialize(apiVersion, specifiedType: const FullType(PollCreatePollApiVersion));
$apiVersion ??= 'v1';
_parameters['apiVersion'] = $apiVersion;
final _path = _i5.UriTemplate(
'/ocs/v2.php/apps/spreed/api/{apiVersion}/poll/{token}{?question*,options%5B%5D*,resultMode*,maxVotes*}',
).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;
}