closeInstance method
Close Instance Close an instance or update the closedAt time when it will be closed. You can only close an instance if the ownerId is yourself or if the instance owner is a group and you have the `group-instance-moderate` permission.
Parameters:
worldId
- Must be a valid world ID.instanceId
- Must be a valid instance ID.hardClose
- Whether to hard close the instance. Defaults to false.closedAt
- The time after which users won't be allowed to join the instances. If omitted, the instance will be closed immediately.cancelToken
- ACancelToken
that can be used to cancel the operationheaders
- Can be used to add additional headers to the requestextras
- Can be used to add flags to the requestvalidateStatus
- AValidateStatus
callback that can be used to determine request success based on the HTTP status of the responseonSendProgress
- AProgressCallback
that can be used to get the send progressonReceiveProgress
- AProgressCallback
that can be used to get the receive progress
Returns a Future containing a Response
with a Instance as data
Throws DioException
if API call or serialization fails
Implementation
Future<Response<Instance>> closeInstance({
required String worldId,
required String instanceId,
bool? hardClose,
DateTime? closedAt,
CancelToken? cancelToken,
Map<String, dynamic>? headers,
Map<String, dynamic>? extra,
ValidateStatus? validateStatus,
ProgressCallback? onSendProgress,
ProgressCallback? onReceiveProgress,
}) async {
final _path = r'/instances/{worldId}:{instanceId}'
.replaceAll('{' r'worldId' '}', worldId.toString())
.replaceAll('{' r'instanceId' '}', instanceId.toString());
final _options = Options(
method: r'DELETE',
headers: <String, dynamic>{
...?headers,
},
extra: <String, dynamic>{
'secure': <Map<String, String>>[
{
'type': 'apiKey',
'name': 'authCookie',
'keyName': 'auth',
'where': '',
},
],
...?extra,
},
validateStatus: validateStatus,
);
final _queryParameters = <String, dynamic>{
if (hardClose != null) r'hardClose': hardClose,
if (closedAt != null) r'closedAt': closedAt,
};
final _response = await _dio.request<Object>(
_path,
options: _options,
queryParameters: _queryParameters,
cancelToken: cancelToken,
onSendProgress: onSendProgress,
onReceiveProgress: onReceiveProgress,
);
Instance? _responseData;
try {
final rawData = _response.data;
_responseData = rawData == null
? null
: deserialize<Instance, Instance>(rawData, 'Instance',
growable: true);
} catch (error, stackTrace) {
throw DioException(
requestOptions: _response.requestOptions,
response: _response,
type: DioExceptionType.unknown,
error: error,
stackTrace: stackTrace,
);
}
return Response<Instance>(
data: _responseData,
headers: _response.headers,
isRedirect: _response.isRedirect,
requestOptions: _response.requestOptions,
redirects: _response.redirects,
statusCode: _response.statusCode,
statusMessage: _response.statusMessage,
extra: _response.extra,
);
}