$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:
questionQuestion of the poll.optionsOptions of the poll.resultModeMode how the results will be shown.maxVotesNumber of maximum votes per voter.apiVersionDefaults to"v1".tokenoCSAPIRequestRequired 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
Responsefrom 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;
}