myhomie_app/mycore_api/lib/api_client.dart

412 lines
15 KiB
Dart

//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// @dart=2.12
// ignore_for_file: unused_element, unused_import
// ignore_for_file: always_put_required_named_parameters_first
// ignore_for_file: constant_identifier_names
// ignore_for_file: lines_longer_than_80_chars
part of openapi.api;
class ApiClient {
ApiClient({this.basePath = 'http://192.168.31.140', this.authentication});
final String basePath;
var _client = Client();
/// Returns the current HTTP [Client] instance to use in this class.
///
/// The return value is guaranteed to never be null.
Client get client => _client;
/// Requests to use a new HTTP [Client] in this class.
set client(Client newClient) {
_client = newClient;
}
final _defaultHeaderMap = <String, String>{};
final Authentication? authentication;
void addDefaultHeader(String key, String value) {
_defaultHeaderMap[key] = value;
}
Map<String,String> get defaultHeaderMap => _defaultHeaderMap;
// We don't use a Map<String, String> for queryParams.
// If collectionFormat is 'multi', a key might appear multiple times.
Future<Response> invokeAPI(
String path,
String method,
List<QueryParam> queryParams,
Object? body,
Map<String, String> headerParams,
Map<String, String> formParams,
String? contentType,
) async {
_updateParamsForAuth(queryParams, headerParams);
headerParams.addAll(_defaultHeaderMap);
if (contentType != null) {
headerParams['Content-Type'] = contentType;
}
final urlEncodedQueryParams = queryParams.map((param) => '$param');
final queryString = urlEncodedQueryParams.isNotEmpty ? '?${urlEncodedQueryParams.join('&')}' : '';
final uri = Uri.parse('$basePath$path$queryString');
try {
// Special case for uploading a single file which isn't a 'multipart/form-data'.
if (
body is MultipartFile && (contentType == null ||
!contentType.toLowerCase().startsWith('multipart/form-data'))
) {
final request = StreamedRequest(method, uri);
request.headers.addAll(headerParams);
request.contentLength = body.length;
body.finalize().listen(
request.sink.add,
onDone: request.sink.close,
// ignore: avoid_types_on_closure_parameters
onError: (Object error, StackTrace trace) => request.sink.close(),
cancelOnError: true,
);
final response = await _client.send(request);
return Response.fromStream(response);
}
if (body is MultipartRequest) {
final request = MultipartRequest(method, uri);
request.fields.addAll(body.fields);
request.files.addAll(body.files);
request.headers.addAll(body.headers);
request.headers.addAll(headerParams);
final response = await _client.send(request);
return Response.fromStream(response);
}
final msgBody = contentType == 'application/x-www-form-urlencoded'
? formParams
: await serializeAsync(body);
final nullableHeaderParams = headerParams.isEmpty ? null : headerParams;
switch(method) {
case 'POST': return await _client.post(uri, headers: nullableHeaderParams, body: msgBody,);
case 'PUT': return await _client.put(uri, headers: nullableHeaderParams, body: msgBody,);
case 'DELETE': return await _client.delete(uri, headers: nullableHeaderParams, body: msgBody,);
case 'PATCH': return await _client.patch(uri, headers: nullableHeaderParams, body: msgBody,);
case 'HEAD': return await _client.head(uri, headers: nullableHeaderParams,);
case 'GET': return await _client.get(uri, headers: nullableHeaderParams,);
}
} on SocketException catch (error, trace) {
throw ApiException.withInner(
HttpStatus.badRequest,
'Socket operation failed: $method $path',
error,
trace,
);
} on TlsException catch (error, trace) {
throw ApiException.withInner(
HttpStatus.badRequest,
'TLS/SSL communication failed: $method $path',
error,
trace,
);
} on IOException catch (error, trace) {
throw ApiException.withInner(
HttpStatus.badRequest,
'I/O operation failed: $method $path',
error,
trace,
);
} on ClientException catch (error, trace) {
throw ApiException.withInner(
HttpStatus.badRequest,
'HTTP connection failed: $method $path',
error,
trace,
);
} on Exception catch (error, trace) {
throw ApiException.withInner(
HttpStatus.badRequest,
'Exception occurred: $method $path',
error,
trace,
);
}
throw ApiException(
HttpStatus.badRequest,
'Invalid HTTP operation: $method $path',
);
}
Future<dynamic> deserializeAsync(String json, String targetType, {bool growable = false,}) async =>
// ignore: deprecated_member_use_from_same_package
deserialize(json, targetType, growable: growable);
@Deprecated('Scheduled for removal in OpenAPI Generator 6.x. Use deserializeAsync() instead.')
dynamic deserialize(String json, String targetType, {bool growable = false,}) {
// Remove all spaces. Necessary for regular expressions as well.
targetType = targetType.replaceAll(' ', ''); // ignore: parameter_assignments
// If the expected target type is String, nothing to do...
return targetType == 'String'
? json
: _deserialize(jsonDecode(json), targetType, growable: growable);
}
// ignore: deprecated_member_use_from_same_package
Future<String> serializeAsync(Object? value) async => serialize(value);
@Deprecated('Scheduled for removal in OpenAPI Generator 6.x. Use serializeAsync() instead.')
String serialize(Object? value) => value == null ? '' : json.encode(value);
/// Update query and header parameters based on authentication settings.
void _updateParamsForAuth(
List<QueryParam> queryParams,
Map<String, String> headerParams,
) {
if (authentication != null) {
authentication!.applyToParams(queryParams, headerParams);
}
}
static dynamic _deserialize(dynamic value, String targetType, {bool growable = false}) {
try {
switch (targetType) {
case 'String':
return value is String ? value : value.toString();
case 'int':
return value is int ? value : int.parse('$value');
case 'double':
return value is double ? value : double.parse('$value');
case 'bool':
if (value is bool) {
return value;
}
final valueString = '$value'.toLowerCase();
return valueString == 'true' || valueString == '1';
case 'Action':
return Action.fromJson(value);
case 'ActionType':
return ActionTypeTypeTransformer().decode(value);
case 'AlarmMode':
return AlarmMode.fromJson(value);
case 'AlarmModeCreateOrUpdateDetailDTO':
return AlarmModeCreateOrUpdateDetailDTO.fromJson(value);
case 'AlarmModeCreateOrUpdateDetailDTOAllOf':
return AlarmModeCreateOrUpdateDetailDTOAllOf.fromJson(value);
case 'AlarmModeDTO':
return AlarmModeDTO.fromJson(value);
case 'AlarmModeDetailDTO':
return AlarmModeDetailDTO.fromJson(value);
case 'AlarmModeDetailDTOAllOf':
return AlarmModeDetailDTOAllOf.fromJson(value);
case 'AlarmModeGeolocalizedMode':
return AlarmModeGeolocalizedMode.fromJson(value);
case 'AlarmModeProgrammedMode':
return AlarmModeProgrammedMode.fromJson(value);
case 'AlarmTriggered':
return AlarmTriggered.fromJson(value);
case 'AlarmType':
return AlarmTypeTypeTransformer().decode(value);
case 'AutomationDTO':
return AutomationDTO.fromJson(value);
case 'AutomationDetailDTO':
return AutomationDetailDTO.fromJson(value);
case 'AutomationDetailDTOAllOf':
return AutomationDetailDTOAllOf.fromJson(value);
case 'AutomationState':
return AutomationState.fromJson(value);
case 'AutomationTriggered':
return AutomationTriggered.fromJson(value);
case 'AzureADAuthModel':
return AzureADAuthModel.fromJson(value);
case 'Book':
return Book.fromJson(value);
case 'Condition':
return Condition.fromJson(value);
case 'ConditionState':
return ConditionState.fromJson(value);
case 'ConditionType':
return ConditionTypeTypeTransformer().decode(value);
case 'ConditionValue':
return ConditionValueTypeTransformer().decode(value);
case 'ConnectionStatus':
return ConnectionStatusTypeTransformer().decode(value);
case 'CreateOrUpdateHomeDTO':
return CreateOrUpdateHomeDTO.fromJson(value);
case 'CreateOrUpdateHomeDTOAllOf':
return CreateOrUpdateHomeDTOAllOf.fromJson(value);
case 'DeviceDetailDTO':
return DeviceDetailDTO.fromJson(value);
case 'DeviceDetailDTOAllOf':
return DeviceDetailDTOAllOf.fromJson(value);
case 'DeviceState':
return DeviceState.fromJson(value);
case 'DeviceSummaryDTO':
return DeviceSummaryDTO.fromJson(value);
case 'DeviceType':
return DeviceTypeTypeTransformer().decode(value);
case 'ElectricityProduction':
return ElectricityProduction.fromJson(value);
case 'EventDTO':
return EventDTO.fromJson(value);
case 'EventDetailDTO':
return EventDetailDTO.fromJson(value);
case 'EventDetailDTOAllOf':
return EventDetailDTOAllOf.fromJson(value);
case 'EventFilter':
return EventFilter.fromJson(value);
case 'EventHomeFilter':
return EventHomeFilter.fromJson(value);
case 'EventHomeFilterAllOf':
return EventHomeFilterAllOf.fromJson(value);
case 'EventType':
return EventTypeTypeTransformer().decode(value);
case 'FacebookAuthModel':
return FacebookAuthModel.fromJson(value);
case 'GeolocalizedMode':
return GeolocalizedMode.fromJson(value);
case 'GoogleAuthModel':
return GoogleAuthModel.fromJson(value);
case 'GroupCreateOrUpdateDetailDTO':
return GroupCreateOrUpdateDetailDTO.fromJson(value);
case 'GroupCreateOrUpdateDetailDTOAllOf':
return GroupCreateOrUpdateDetailDTOAllOf.fromJson(value);
case 'GroupDetailDTO':
return GroupDetailDTO.fromJson(value);
case 'GroupDetailDTOAllOf':
return GroupDetailDTOAllOf.fromJson(value);
case 'GroupSummaryDTO':
return GroupSummaryDTO.fromJson(value);
case 'HomeDTO':
return HomeDTO.fromJson(value);
case 'HomeDetailDTO':
return HomeDetailDTO.fromJson(value);
case 'HomeDetailDTOAllOf':
return HomeDetailDTOAllOf.fromJson(value);
case 'ListResponseOfEventDetailDTOAndEventHomeFilter':
return ListResponseOfEventDetailDTOAndEventHomeFilter.fromJson(value);
case 'LoginDTO':
return LoginDTO.fromJson(value);
case 'MeansOfCommunication':
return MeansOfCommunicationTypeTransformer().decode(value);
case 'MqttMessageDTO':
return MqttMessageDTO.fromJson(value);
case 'OddNice':
return OddNice.fromJson(value);
case 'OddNiceOdds':
return OddNiceOdds.fromJson(value);
case 'OddObject':
return OddObject.fromJson(value);
case 'PanelMenuItem':
return PanelMenuItem.fromJson(value);
case 'PanelSection':
return PanelSection.fromJson(value);
case 'ProgrammedMode':
return ProgrammedMode.fromJson(value);
case 'ProviderDTO':
return ProviderDTO.fromJson(value);
case 'ProviderType':
return ProviderTypeTypeTransformer().decode(value);
case 'RoomCreateOrUpdateDetailDTO':
return RoomCreateOrUpdateDetailDTO.fromJson(value);
case 'RoomDetailDTO':
return RoomDetailDTO.fromJson(value);
case 'RoomMainDetailDTO':
return RoomMainDetailDTO.fromJson(value);
case 'RoomMainDetailDTOAllOf':
return RoomMainDetailDTOAllOf.fromJson(value);
case 'RoomSummaryDTO':
return RoomSummaryDTO.fromJson(value);
case 'ScreenDevice':
return ScreenDevice.fromJson(value);
case 'SmartGardenMessage':
return SmartGardenMessage.fromJson(value);
case 'SmartPrinterMessage':
return SmartPrinterMessage.fromJson(value);
case 'TimePeriodAlarm':
return TimePeriodAlarm.fromJson(value);
case 'TokenDTO':
return TokenDTO.fromJson(value);
case 'Trigger':
return Trigger.fromJson(value);
case 'TriggerType':
return TriggerTypeTypeTransformer().decode(value);
case 'TwitterAuthModel':
return TwitterAuthModel.fromJson(value);
case 'User':
return User.fromJson(value);
case 'UserInfo':
return UserInfo.fromJson(value);
case 'UserInfoDetailDTO':
return UserInfoDetailDTO.fromJson(value);
case 'ViewBy':
return ViewByTypeTransformer().decode(value);
default:
dynamic match;
if (value is List && (match = _regList.firstMatch(targetType)?.group(1)) != null) {
return value
.map<dynamic>((dynamic v) => _deserialize(v, match, growable: growable,))
.toList(growable: growable);
}
if (value is Set && (match = _regSet.firstMatch(targetType)?.group(1)) != null) {
return value
.map<dynamic>((dynamic v) => _deserialize(v, match, growable: growable,))
.toSet();
}
if (value is Map && (match = _regMap.firstMatch(targetType)?.group(1)) != null) {
return Map<String, dynamic>.fromIterables(
value.keys.cast<String>(),
value.values.map<dynamic>((dynamic v) => _deserialize(v, match, growable: growable,)),
);
}
}
} on Exception catch (error, trace) {
throw ApiException.withInner(HttpStatus.internalServerError, 'Exception during deserialization.', error, trace,);
}
throw ApiException(HttpStatus.internalServerError, 'Could not find a suitable class for deserialization',);
}
}
/// Primarily intended for use in an isolate.
class DeserializationMessage {
const DeserializationMessage({
required this.json,
required this.targetType,
this.growable = false,
});
/// The JSON value to deserialize.
final String json;
/// Target type to deserialize to.
final String targetType;
/// Whether to make deserialized lists or maps growable.
final bool growable;
}
/// Primarily intended for use in an isolate.
Future<dynamic> deserializeAsync(DeserializationMessage message) async {
// Remove all spaces. Necessary for regular expressions as well.
final targetType = message.targetType.replaceAll(' ', '');
// If the expected target type is String, nothing to do...
return targetType == 'String'
? message.json
: ApiClient._deserialize(
jsonDecode(message.json),
targetType,
growable: message.growable,
);
}
/// Primarily intended for use in an isolate.
Future<String> serializeAsync(Object? value) async => value == null ? '' : json.encode(value);