$createRoom_Request method
- @experimental
Create a room with a user, a group or a circle.
Returns a DynamiteRequest
backing the createRoom operation.
Throws a DynamiteApiException
if the API call does not return an expected status code.
Parameters:
roomType
Type of the room.invite
User, group, … ID to invite. Defaults to""
.roomName
Name of the room. Defaults to""
.source
Source of the invite ID ('circles' to create a room with a circle, etc.). Defaults to""
.objectType
Type of the object. Defaults to""
.objectId
ID of the object. Defaults to""
.apiVersion
Defaults to"v4"
.oCSAPIRequest
Required to be true for the API request to pass. Defaults totrue
.
Status codes:
- 200: Room already existed
- 201: Room created successfully
- 400: Room type invalid
- 403: Missing permissions to create room
- 404: User, group or other target to invite was not found
See:
- createRoom for a method executing this request and parsing the response.
- $createRoom_Serializer for a converter to parse the
Response
from an executed this request.
Implementation
@_i2.experimental
_i3.Request $createRoom_Request({
required int roomType,
String? invite,
String? roomName,
String? source,
String? objectType,
String? objectId,
RoomCreateRoomApiVersion? apiVersion,
bool? oCSAPIRequest,
}) {
final _parameters = <String, Object?>{};
final $roomType = _$jsonSerializers.serialize(roomType, specifiedType: const FullType(int));
_parameters['roomType'] = $roomType;
var $invite = _$jsonSerializers.serialize(invite, specifiedType: const FullType(String));
$invite ??= '';
_parameters['invite'] = $invite;
var $roomName = _$jsonSerializers.serialize(roomName, specifiedType: const FullType(String));
$roomName ??= '';
_parameters['roomName'] = $roomName;
var $source = _$jsonSerializers.serialize(source, specifiedType: const FullType(String));
$source ??= '';
_parameters['source'] = $source;
var $objectType = _$jsonSerializers.serialize(objectType, specifiedType: const FullType(String));
$objectType ??= '';
_parameters['objectType'] = $objectType;
var $objectId = _$jsonSerializers.serialize(objectId, specifiedType: const FullType(String));
$objectId ??= '';
_parameters['objectId'] = $objectId;
var $apiVersion = _$jsonSerializers.serialize(apiVersion, specifiedType: const FullType(RoomCreateRoomApiVersion));
$apiVersion ??= 'v4';
_parameters['apiVersion'] = $apiVersion;
final _path = _i5.UriTemplate(
'/ocs/v2.php/apps/spreed/api/{apiVersion}/room{?roomType*,invite*,roomName*,source*,objectType*,objectId*}',
).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,
);
} else {
throw Exception('Missing authentication for bearer_auth or basic_auth');
}
// 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;
}