open-project-flutter-api/lib/api_client.dart
2023-11-05 19:54:17 +01:00

1031 lines
48 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 = 'https://community.openproject.org', this.authentication,});
final String basePath;
final Authentication? authentication;
var _client = Client();
final _defaultHeaderMap = <String, String>{};
/// 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;
}
Map<String, String> get defaultHeaderMap => _defaultHeaderMap;
void addDefaultHeader(String key, String value) {
_defaultHeaderMap[key] = value;
}
// 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 {
await authentication?.applyToParams(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 value, String targetType, {bool growable = false,}) async =>
// ignore: deprecated_member_use_from_same_package
deserialize(value, targetType, growable: growable);
@Deprecated('Scheduled for removal in OpenAPI Generator 6.x. Use deserializeAsync() instead.')
dynamic deserialize(String value, 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'
? value
: fromJson(json.decode(value), 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);
/// Returns a native instance of an OpenAPI class matching the [specified type][targetType].
static dynamic fromJson(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 'DateTime':
return value is DateTime ? value : DateTime.tryParse(value);
case 'ActivityModel':
return ActivityModel.fromJson(value);
case 'ActivityModelComment':
return ActivityModelComment.fromJson(value);
case 'AddWatcherRequest':
return AddWatcherRequest.fromJson(value);
case 'AttachmentModel':
return AttachmentModel.fromJson(value);
case 'AttachmentModelDescription':
return AttachmentModelDescription.fromJson(value);
case 'AttachmentModelLinks':
return AttachmentModelLinks.fromJson(value);
case 'AttachmentModelLinksAuthor':
return AttachmentModelLinksAuthor.fromJson(value);
case 'AttachmentModelLinksContainer':
return AttachmentModelLinksContainer.fromJson(value);
case 'AttachmentModelLinksDelete':
return AttachmentModelLinksDelete.fromJson(value);
case 'AttachmentModelLinksDownloadLocation':
return AttachmentModelLinksDownloadLocation.fromJson(value);
case 'AttachmentModelLinksSelf':
return AttachmentModelLinksSelf.fromJson(value);
case 'AttachmentsModel':
return AttachmentsModel.fromJson(value);
case 'AttachmentsModelAllOfEmbedded':
return AttachmentsModelAllOfEmbedded.fromJson(value);
case 'AttachmentsModelAllOfEmbeddedElementsInner':
return AttachmentsModelAllOfEmbeddedElementsInner.fromJson(value);
case 'AttachmentsModelAllOfLinks':
return AttachmentsModelAllOfLinks.fromJson(value);
case 'AttachmentsModelAllOfLinksSelf':
return AttachmentsModelAllOfLinksSelf.fromJson(value);
case 'BudgetModel':
return BudgetModel.fromJson(value);
case 'BudgetModelLinks':
return BudgetModelLinks.fromJson(value);
case 'BudgetModelLinksSelf':
return BudgetModelLinksSelf.fromJson(value);
case 'CategoryModel':
return CategoryModel.fromJson(value);
case 'CategoryModelLinks':
return CategoryModelLinks.fromJson(value);
case 'CategoryModelLinksDefaultAssignee':
return CategoryModelLinksDefaultAssignee.fromJson(value);
case 'CategoryModelLinksProject':
return CategoryModelLinksProject.fromJson(value);
case 'CategoryModelLinksSelf':
return CategoryModelLinksSelf.fromJson(value);
case 'CollectionModel':
return CollectionModel.fromJson(value);
case 'CollectionModelLinks':
return CollectionModelLinks.fromJson(value);
case 'CollectionModelLinksSelf':
return CollectionModelLinksSelf.fromJson(value);
case 'CommentWorkPackageRequest':
return CommentWorkPackageRequest.fromJson(value);
case 'ConfigurationModel':
return ConfigurationModel.fromJson(value);
case 'CreateViewsRequest':
return CreateViewsRequest.fromJson(value);
case 'CreateViewsRequestLinks':
return CreateViewsRequestLinks.fromJson(value);
case 'CreateViewsRequestLinksQuery':
return CreateViewsRequestLinksQuery.fromJson(value);
case 'CustomActionModel':
return CustomActionModel.fromJson(value);
case 'CustomActionModelLinks':
return CustomActionModelLinks.fromJson(value);
case 'CustomActionModelLinksExecuteImmediately':
return CustomActionModelLinksExecuteImmediately.fromJson(value);
case 'CustomActionModelLinksSelf':
return CustomActionModelLinksSelf.fromJson(value);
case 'CustomOptionModel':
return CustomOptionModel.fromJson(value);
case 'CustomOptionModelLinks':
return CustomOptionModelLinks.fromJson(value);
case 'CustomOptionModelLinksSelf':
return CustomOptionModelLinksSelf.fromJson(value);
case 'DayCollectionModel':
return DayCollectionModel.fromJson(value);
case 'DayCollectionModelAllOfEmbedded':
return DayCollectionModelAllOfEmbedded.fromJson(value);
case 'DayCollectionModelAllOfLinks':
return DayCollectionModelAllOfLinks.fromJson(value);
case 'DayCollectionModelAllOfLinksSelf':
return DayCollectionModelAllOfLinksSelf.fromJson(value);
case 'DayModel':
return DayModel.fromJson(value);
case 'DayModelLinks':
return DayModelLinks.fromJson(value);
case 'DayModelLinksWeekDay':
return DayModelLinksWeekDay.fromJson(value);
case 'DocumentModel':
return DocumentModel.fromJson(value);
case 'DocumentModelLinks':
return DocumentModelLinks.fromJson(value);
case 'DocumentModelLinksAttachments':
return DocumentModelLinksAttachments.fromJson(value);
case 'DocumentModelLinksProject':
return DocumentModelLinksProject.fromJson(value);
case 'DocumentModelLinksSelf':
return DocumentModelLinksSelf.fromJson(value);
case 'ErrorResponse':
return ErrorResponse.fromJson(value);
case 'ErrorResponseEmbedded':
return ErrorResponseEmbedded.fromJson(value);
case 'ErrorResponseEmbeddedDetails':
return ErrorResponseEmbeddedDetails.fromJson(value);
case 'ExecuteCustomActionRequest':
return ExecuteCustomActionRequest.fromJson(value);
case 'ExecuteCustomActionRequestLinks':
return ExecuteCustomActionRequestLinks.fromJson(value);
case 'ExecuteCustomActionRequestLinksWorkPackage':
return ExecuteCustomActionRequestLinksWorkPackage.fromJson(value);
case 'FileLinkCollectionReadModel':
return FileLinkCollectionReadModel.fromJson(value);
case 'FileLinkCollectionReadModelAllOfEmbedded':
return FileLinkCollectionReadModelAllOfEmbedded.fromJson(value);
case 'FileLinkCollectionReadModelAllOfLinks':
return FileLinkCollectionReadModelAllOfLinks.fromJson(value);
case 'FileLinkCollectionReadModelAllOfLinksSelf':
return FileLinkCollectionReadModelAllOfLinksSelf.fromJson(value);
case 'FileLinkCollectionWriteModel':
return FileLinkCollectionWriteModel.fromJson(value);
case 'FileLinkCollectionWriteModelAllOfEmbedded':
return FileLinkCollectionWriteModelAllOfEmbedded.fromJson(value);
case 'FileLinkOriginDataModel':
return FileLinkOriginDataModel.fromJson(value);
case 'FileLinkReadModel':
return FileLinkReadModel.fromJson(value);
case 'FileLinkReadModelEmbedded':
return FileLinkReadModelEmbedded.fromJson(value);
case 'FileLinkReadModelLinks':
return FileLinkReadModelLinks.fromJson(value);
case 'FileLinkReadModelLinksContainer':
return FileLinkReadModelLinksContainer.fromJson(value);
case 'FileLinkReadModelLinksCreator':
return FileLinkReadModelLinksCreator.fromJson(value);
case 'FileLinkReadModelLinksDelete':
return FileLinkReadModelLinksDelete.fromJson(value);
case 'FileLinkReadModelLinksOriginOpen':
return FileLinkReadModelLinksOriginOpen.fromJson(value);
case 'FileLinkReadModelLinksOriginOpenLocation':
return FileLinkReadModelLinksOriginOpenLocation.fromJson(value);
case 'FileLinkReadModelLinksPermission':
return FileLinkReadModelLinksPermission.fromJson(value);
case 'FileLinkReadModelLinksSelf':
return FileLinkReadModelLinksSelf.fromJson(value);
case 'FileLinkReadModelLinksStaticOriginDownload':
return FileLinkReadModelLinksStaticOriginDownload.fromJson(value);
case 'FileLinkReadModelLinksStaticOriginOpen':
return FileLinkReadModelLinksStaticOriginOpen.fromJson(value);
case 'FileLinkReadModelLinksStaticOriginOpenLocation':
return FileLinkReadModelLinksStaticOriginOpenLocation.fromJson(value);
case 'FileLinkReadModelLinksStorage':
return FileLinkReadModelLinksStorage.fromJson(value);
case 'FileLinkWriteModel':
return FileLinkWriteModel.fromJson(value);
case 'Formattable':
return Formattable.fromJson(value);
case 'GridCollectionModel':
return GridCollectionModel.fromJson(value);
case 'GridCollectionModelAllOfEmbedded':
return GridCollectionModelAllOfEmbedded.fromJson(value);
case 'GridReadModel':
return GridReadModel.fromJson(value);
case 'GridReadModelLinks':
return GridReadModelLinks.fromJson(value);
case 'GridReadModelLinksAddAttachment':
return GridReadModelLinksAddAttachment.fromJson(value);
case 'GridReadModelLinksAttachments':
return GridReadModelLinksAttachments.fromJson(value);
case 'GridReadModelLinksDelete':
return GridReadModelLinksDelete.fromJson(value);
case 'GridReadModelLinksScope':
return GridReadModelLinksScope.fromJson(value);
case 'GridReadModelLinksSelf':
return GridReadModelLinksSelf.fromJson(value);
case 'GridReadModelLinksUpdate':
return GridReadModelLinksUpdate.fromJson(value);
case 'GridReadModelLinksUpdateImmediately':
return GridReadModelLinksUpdateImmediately.fromJson(value);
case 'GridWidgetModel':
return GridWidgetModel.fromJson(value);
case 'GridWriteModel':
return GridWriteModel.fromJson(value);
case 'GridWriteModelLinks':
return GridWriteModelLinks.fromJson(value);
case 'GroupCollectionModel':
return GroupCollectionModel.fromJson(value);
case 'GroupCollectionModelAllOfEmbedded':
return GroupCollectionModelAllOfEmbedded.fromJson(value);
case 'GroupCollectionModelAllOfLinks':
return GroupCollectionModelAllOfLinks.fromJson(value);
case 'GroupCollectionModelAllOfLinksSelf':
return GroupCollectionModelAllOfLinksSelf.fromJson(value);
case 'GroupModel':
return GroupModel.fromJson(value);
case 'GroupModelLinks':
return GroupModelLinks.fromJson(value);
case 'GroupModelLinksDelete':
return GroupModelLinksDelete.fromJson(value);
case 'GroupModelLinksMembersInner':
return GroupModelLinksMembersInner.fromJson(value);
case 'GroupModelLinksMemberships':
return GroupModelLinksMemberships.fromJson(value);
case 'GroupModelLinksSelf':
return GroupModelLinksSelf.fromJson(value);
case 'GroupModelLinksUpdateImmediately':
return GroupModelLinksUpdateImmediately.fromJson(value);
case 'GroupWriteModel':
return GroupWriteModel.fromJson(value);
case 'GroupWriteModelLinks':
return GroupWriteModelLinks.fromJson(value);
case 'GroupWriteModelLinksMembersInner':
return GroupWriteModelLinksMembersInner.fromJson(value);
case 'HelpTextCollectionModel':
return HelpTextCollectionModel.fromJson(value);
case 'HelpTextCollectionModelAllOfEmbedded':
return HelpTextCollectionModelAllOfEmbedded.fromJson(value);
case 'HelpTextCollectionModelAllOfLinks':
return HelpTextCollectionModelAllOfLinks.fromJson(value);
case 'HelpTextCollectionModelAllOfLinksSelf':
return HelpTextCollectionModelAllOfLinksSelf.fromJson(value);
case 'HelpTextModel':
return HelpTextModel.fromJson(value);
case 'HelpTextModelLinks':
return HelpTextModelLinks.fromJson(value);
case 'HelpTextModelLinksAddAttachment':
return HelpTextModelLinksAddAttachment.fromJson(value);
case 'HelpTextModelLinksAttachments':
return HelpTextModelLinksAttachments.fromJson(value);
case 'HelpTextModelLinksEditText':
return HelpTextModelLinksEditText.fromJson(value);
case 'HelpTextModelLinksSelf':
return HelpTextModelLinksSelf.fromJson(value);
case 'Link':
return Link.fromJson(value);
case 'NewsModel':
return NewsModel.fromJson(value);
case 'NewsModelLinks':
return NewsModelLinks.fromJson(value);
case 'NewsModelLinksAuthor':
return NewsModelLinksAuthor.fromJson(value);
case 'NewsModelLinksProject':
return NewsModelLinksProject.fromJson(value);
case 'NewsModelLinksSelf':
return NewsModelLinksSelf.fromJson(value);
case 'NonWorkingDayCollectionModel':
return NonWorkingDayCollectionModel.fromJson(value);
case 'NonWorkingDayCollectionModelAllOfEmbedded':
return NonWorkingDayCollectionModelAllOfEmbedded.fromJson(value);
case 'NonWorkingDayCollectionModelAllOfLinks':
return NonWorkingDayCollectionModelAllOfLinks.fromJson(value);
case 'NonWorkingDayCollectionModelAllOfLinksSelf':
return NonWorkingDayCollectionModelAllOfLinksSelf.fromJson(value);
case 'NonWorkingDayModel':
return NonWorkingDayModel.fromJson(value);
case 'NonWorkingDayModelLinks':
return NonWorkingDayModelLinks.fromJson(value);
case 'NonWorkingDayModelLinksSelf':
return NonWorkingDayModelLinksSelf.fromJson(value);
case 'NotificationCollectionModel':
return NotificationCollectionModel.fromJson(value);
case 'NotificationCollectionModelAllOfEmbedded':
return NotificationCollectionModelAllOfEmbedded.fromJson(value);
case 'NotificationCollectionModelAllOfLinks':
return NotificationCollectionModelAllOfLinks.fromJson(value);
case 'NotificationCollectionModelAllOfLinksChangeSize':
return NotificationCollectionModelAllOfLinksChangeSize.fromJson(value);
case 'NotificationCollectionModelAllOfLinksJumpTo':
return NotificationCollectionModelAllOfLinksJumpTo.fromJson(value);
case 'NotificationCollectionModelAllOfLinksSelf':
return NotificationCollectionModelAllOfLinksSelf.fromJson(value);
case 'NotificationModel':
return NotificationModel.fromJson(value);
case 'NotificationModelDetailsInner':
return NotificationModelDetailsInner.fromJson(value);
case 'NotificationModelEmbedded':
return NotificationModelEmbedded.fromJson(value);
case 'NotificationModelEmbeddedResource':
return NotificationModelEmbeddedResource.fromJson(value);
case 'NotificationModelLinks':
return NotificationModelLinks.fromJson(value);
case 'NotificationModelLinksActivity':
return NotificationModelLinksActivity.fromJson(value);
case 'NotificationModelLinksActor':
return NotificationModelLinksActor.fromJson(value);
case 'NotificationModelLinksDetailsInner':
return NotificationModelLinksDetailsInner.fromJson(value);
case 'NotificationModelLinksProject':
return NotificationModelLinksProject.fromJson(value);
case 'NotificationModelLinksReadIAN':
return NotificationModelLinksReadIAN.fromJson(value);
case 'NotificationModelLinksResource':
return NotificationModelLinksResource.fromJson(value);
case 'NotificationModelLinksSelf':
return NotificationModelLinksSelf.fromJson(value);
case 'NotificationModelLinksUnreadIAN':
return NotificationModelLinksUnreadIAN.fromJson(value);
case 'OAuthApplicationReadModel':
return OAuthApplicationReadModel.fromJson(value);
case 'OAuthApplicationReadModelLinks':
return OAuthApplicationReadModelLinks.fromJson(value);
case 'OAuthApplicationReadModelLinksIntegration':
return OAuthApplicationReadModelLinksIntegration.fromJson(value);
case 'OAuthApplicationReadModelLinksOwner':
return OAuthApplicationReadModelLinksOwner.fromJson(value);
case 'OAuthApplicationReadModelLinksRedirectUri':
return OAuthApplicationReadModelLinksRedirectUri.fromJson(value);
case 'OAuthApplicationReadModelLinksSelf':
return OAuthApplicationReadModelLinksSelf.fromJson(value);
case 'OAuthClientCredentialsReadModel':
return OAuthClientCredentialsReadModel.fromJson(value);
case 'OAuthClientCredentialsReadModelLinks':
return OAuthClientCredentialsReadModelLinks.fromJson(value);
case 'OAuthClientCredentialsReadModelLinksIntegration':
return OAuthClientCredentialsReadModelLinksIntegration.fromJson(value);
case 'OAuthClientCredentialsReadModelLinksSelf':
return OAuthClientCredentialsReadModelLinksSelf.fromJson(value);
case 'OAuthClientCredentialsWriteModel':
return OAuthClientCredentialsWriteModel.fromJson(value);
case 'PaginatedCollectionModel':
return PaginatedCollectionModel.fromJson(value);
case 'PaginatedCollectionModelAllOfLinks':
return PaginatedCollectionModelAllOfLinks.fromJson(value);
case 'PaginatedCollectionModelAllOfLinksChangeSize':
return PaginatedCollectionModelAllOfLinksChangeSize.fromJson(value);
case 'PaginatedCollectionModelAllOfLinksJumpTo':
return PaginatedCollectionModelAllOfLinksJumpTo.fromJson(value);
case 'PostModel':
return PostModel.fromJson(value);
case 'PostModelLinks':
return PostModelLinks.fromJson(value);
case 'PostModelLinksAddAttachment':
return PostModelLinksAddAttachment.fromJson(value);
case 'PriorityModel':
return PriorityModel.fromJson(value);
case 'PriorityModelLinks':
return PriorityModelLinks.fromJson(value);
case 'PriorityModelLinksSelf':
return PriorityModelLinksSelf.fromJson(value);
case 'ProjectModel':
return ProjectModel.fromJson(value);
case 'ProjectModelLinks':
return ProjectModelLinks.fromJson(value);
case 'ProjectModelLinksCategories':
return ProjectModelLinksCategories.fromJson(value);
case 'ProjectModelLinksCreateWorkPackage':
return ProjectModelLinksCreateWorkPackage.fromJson(value);
case 'ProjectModelLinksCreateWorkPackageImmediately':
return ProjectModelLinksCreateWorkPackageImmediately.fromJson(value);
case 'ProjectModelLinksDelete':
return ProjectModelLinksDelete.fromJson(value);
case 'ProjectModelLinksMemberships':
return ProjectModelLinksMemberships.fromJson(value);
case 'ProjectModelLinksParent':
return ProjectModelLinksParent.fromJson(value);
case 'ProjectModelLinksSelf':
return ProjectModelLinksSelf.fromJson(value);
case 'ProjectModelLinksStatus':
return ProjectModelLinksStatus.fromJson(value);
case 'ProjectModelLinksStoragesInner':
return ProjectModelLinksStoragesInner.fromJson(value);
case 'ProjectModelLinksTypes':
return ProjectModelLinksTypes.fromJson(value);
case 'ProjectModelLinksUpdate':
return ProjectModelLinksUpdate.fromJson(value);
case 'ProjectModelLinksUpdateImmediately':
return ProjectModelLinksUpdateImmediately.fromJson(value);
case 'ProjectModelLinksVersions':
return ProjectModelLinksVersions.fromJson(value);
case 'ProjectModelLinksWorkPackages':
return ProjectModelLinksWorkPackages.fromJson(value);
case 'ProjectModelStatusExplanation':
return ProjectModelStatusExplanation.fromJson(value);
case 'ProjectStorageCollectionModel':
return ProjectStorageCollectionModel.fromJson(value);
case 'ProjectStorageCollectionModelAllOfEmbedded':
return ProjectStorageCollectionModelAllOfEmbedded.fromJson(value);
case 'ProjectStorageCollectionModelAllOfLinks':
return ProjectStorageCollectionModelAllOfLinks.fromJson(value);
case 'ProjectStorageCollectionModelAllOfLinksSelf':
return ProjectStorageCollectionModelAllOfLinksSelf.fromJson(value);
case 'ProjectStorageModel':
return ProjectStorageModel.fromJson(value);
case 'ProjectStorageModelLinks':
return ProjectStorageModelLinks.fromJson(value);
case 'ProjectStorageModelLinksCreator':
return ProjectStorageModelLinksCreator.fromJson(value);
case 'ProjectStorageModelLinksProject':
return ProjectStorageModelLinksProject.fromJson(value);
case 'ProjectStorageModelLinksProjectFolder':
return ProjectStorageModelLinksProjectFolder.fromJson(value);
case 'ProjectStorageModelLinksSelf':
return ProjectStorageModelLinksSelf.fromJson(value);
case 'ProjectStorageModelLinksStorage':
return ProjectStorageModelLinksStorage.fromJson(value);
case 'QueryColumnModel':
return QueryColumnModel.fromJson(value);
case 'QueryCreateForm':
return QueryCreateForm.fromJson(value);
case 'QueryFilterInstanceSchemaModel':
return QueryFilterInstanceSchemaModel.fromJson(value);
case 'QueryFilterInstanceSchemaModelLinks':
return QueryFilterInstanceSchemaModelLinks.fromJson(value);
case 'QueryFilterInstanceSchemaModelLinksFilter':
return QueryFilterInstanceSchemaModelLinksFilter.fromJson(value);
case 'QueryFilterInstanceSchemaModelLinksSelf':
return QueryFilterInstanceSchemaModelLinksSelf.fromJson(value);
case 'QueryFilterModel':
return QueryFilterModel.fromJson(value);
case 'QueryModel':
return QueryModel.fromJson(value);
case 'QueryModelLinks':
return QueryModelLinks.fromJson(value);
case 'QueryModelLinksStar':
return QueryModelLinksStar.fromJson(value);
case 'QueryModelLinksUnstar':
return QueryModelLinksUnstar.fromJson(value);
case 'QueryModelLinksUpdate':
return QueryModelLinksUpdate.fromJson(value);
case 'QueryModelLinksUpdateImmediately':
return QueryModelLinksUpdateImmediately.fromJson(value);
case 'QueryOperatorModel':
return QueryOperatorModel.fromJson(value);
case 'QuerySortByModel':
return QuerySortByModel.fromJson(value);
case 'QueryUpdateForm':
return QueryUpdateForm.fromJson(value);
case 'RelationModel':
return RelationModel.fromJson(value);
case 'RelationModelLinks':
return RelationModelLinks.fromJson(value);
case 'RelationModelLinksDelete':
return RelationModelLinksDelete.fromJson(value);
case 'RelationModelLinksFrom':
return RelationModelLinksFrom.fromJson(value);
case 'RelationModelLinksSchema':
return RelationModelLinksSchema.fromJson(value);
case 'RelationModelLinksSelf':
return RelationModelLinksSelf.fromJson(value);
case 'RelationModelLinksTo':
return RelationModelLinksTo.fromJson(value);
case 'RelationModelLinksUpdate':
return RelationModelLinksUpdate.fromJson(value);
case 'RelationModelLinksUpdateImmediately':
return RelationModelLinksUpdateImmediately.fromJson(value);
case 'RevisionModel':
return RevisionModel.fromJson(value);
case 'RevisionModelLinks':
return RevisionModelLinks.fromJson(value);
case 'RevisionModelLinksAuthor':
return RevisionModelLinksAuthor.fromJson(value);
case 'RevisionModelLinksProject':
return RevisionModelLinksProject.fromJson(value);
case 'RevisionModelLinksSelf':
return RevisionModelLinksSelf.fromJson(value);
case 'RevisionModelLinksShowRevision':
return RevisionModelLinksShowRevision.fromJson(value);
case 'RevisionModelMessage':
return RevisionModelMessage.fromJson(value);
case 'RoleModel':
return RoleModel.fromJson(value);
case 'RoleModelLinks':
return RoleModelLinks.fromJson(value);
case 'RoleModelLinksSelf':
return RoleModelLinksSelf.fromJson(value);
case 'RootModel':
return RootModel.fromJson(value);
case 'RootModelLinks':
return RootModelLinks.fromJson(value);
case 'RootModelLinksConfiguration':
return RootModelLinksConfiguration.fromJson(value);
case 'RootModelLinksMemberships':
return RootModelLinksMemberships.fromJson(value);
case 'RootModelLinksPriorities':
return RootModelLinksPriorities.fromJson(value);
case 'RootModelLinksRelations':
return RootModelLinksRelations.fromJson(value);
case 'RootModelLinksSelf':
return RootModelLinksSelf.fromJson(value);
case 'RootModelLinksStatuses':
return RootModelLinksStatuses.fromJson(value);
case 'RootModelLinksTimeEntries':
return RootModelLinksTimeEntries.fromJson(value);
case 'RootModelLinksTypes':
return RootModelLinksTypes.fromJson(value);
case 'RootModelLinksUser':
return RootModelLinksUser.fromJson(value);
case 'RootModelLinksUserPreferences':
return RootModelLinksUserPreferences.fromJson(value);
case 'RootModelLinksWorkPackages':
return RootModelLinksWorkPackages.fromJson(value);
case 'SchemaModel':
return SchemaModel.fromJson(value);
case 'SchemaModelLinks':
return SchemaModelLinks.fromJson(value);
case 'SchemaModelLinksSelf':
return SchemaModelLinksSelf.fromJson(value);
case 'ShowOrValidateFormRequest':
return ShowOrValidateFormRequest.fromJson(value);
case 'StatusModel':
return StatusModel.fromJson(value);
case 'StatusModelLinks':
return StatusModelLinks.fromJson(value);
case 'StatusModelLinksSelf':
return StatusModelLinksSelf.fromJson(value);
case 'StorageFileModel':
return StorageFileModel.fromJson(value);
case 'StorageFileModelAllOfLinks':
return StorageFileModelAllOfLinks.fromJson(value);
case 'StorageFileModelAllOfLinksSelf':
return StorageFileModelAllOfLinksSelf.fromJson(value);
case 'StorageFileUploadLinkModel':
return StorageFileUploadLinkModel.fromJson(value);
case 'StorageFileUploadLinkModelLinks':
return StorageFileUploadLinkModelLinks.fromJson(value);
case 'StorageFileUploadLinkModelLinksDestination':
return StorageFileUploadLinkModelLinksDestination.fromJson(value);
case 'StorageFileUploadLinkModelLinksSelf':
return StorageFileUploadLinkModelLinksSelf.fromJson(value);
case 'StorageFileUploadPreparationModel':
return StorageFileUploadPreparationModel.fromJson(value);
case 'StorageFilesModel':
return StorageFilesModel.fromJson(value);
case 'StorageFilesModelParent':
return StorageFilesModelParent.fromJson(value);
case 'StorageReadModel':
return StorageReadModel.fromJson(value);
case 'StorageReadModelEmbedded':
return StorageReadModelEmbedded.fromJson(value);
case 'StorageReadModelLinks':
return StorageReadModelLinks.fromJson(value);
case 'StorageReadModelLinksAuthorizationState':
return StorageReadModelLinksAuthorizationState.fromJson(value);
case 'StorageReadModelLinksAuthorize':
return StorageReadModelLinksAuthorize.fromJson(value);
case 'StorageReadModelLinksOauthApplication':
return StorageReadModelLinksOauthApplication.fromJson(value);
case 'StorageReadModelLinksOauthClientCredentials':
return StorageReadModelLinksOauthClientCredentials.fromJson(value);
case 'StorageReadModelLinksOpen':
return StorageReadModelLinksOpen.fromJson(value);
case 'StorageReadModelLinksOrigin':
return StorageReadModelLinksOrigin.fromJson(value);
case 'StorageReadModelLinksSelf':
return StorageReadModelLinksSelf.fromJson(value);
case 'StorageReadModelLinksType':
return StorageReadModelLinksType.fromJson(value);
case 'StorageWriteModel':
return StorageWriteModel.fromJson(value);
case 'StorageWriteModelLinks':
return StorageWriteModelLinks.fromJson(value);
case 'StorageWriteModelLinksOrigin':
return StorageWriteModelLinksOrigin.fromJson(value);
case 'StorageWriteModelLinksType':
return StorageWriteModelLinksType.fromJson(value);
case 'TimeEntryActivityModel':
return TimeEntryActivityModel.fromJson(value);
case 'TimeEntryActivityModelEmbedded':
return TimeEntryActivityModelEmbedded.fromJson(value);
case 'TimeEntryActivityModelLinks':
return TimeEntryActivityModelLinks.fromJson(value);
case 'TimeEntryActivityModelLinksSelf':
return TimeEntryActivityModelLinksSelf.fromJson(value);
case 'TimeEntryCollectionModel':
return TimeEntryCollectionModel.fromJson(value);
case 'TimeEntryCollectionModelAllOfEmbedded':
return TimeEntryCollectionModelAllOfEmbedded.fromJson(value);
case 'TimeEntryCollectionModelAllOfLinks':
return TimeEntryCollectionModelAllOfLinks.fromJson(value);
case 'TimeEntryCollectionModelAllOfLinksSelf':
return TimeEntryCollectionModelAllOfLinksSelf.fromJson(value);
case 'TimeEntryModel':
return TimeEntryModel.fromJson(value);
case 'TimeEntryModelComment':
return TimeEntryModelComment.fromJson(value);
case 'TimeEntryModelLinks':
return TimeEntryModelLinks.fromJson(value);
case 'TimeEntryModelLinksActivity':
return TimeEntryModelLinksActivity.fromJson(value);
case 'TimeEntryModelLinksDelete':
return TimeEntryModelLinksDelete.fromJson(value);
case 'TimeEntryModelLinksProject':
return TimeEntryModelLinksProject.fromJson(value);
case 'TimeEntryModelLinksSchema':
return TimeEntryModelLinksSchema.fromJson(value);
case 'TimeEntryModelLinksSelf':
return TimeEntryModelLinksSelf.fromJson(value);
case 'TimeEntryModelLinksUpdate':
return TimeEntryModelLinksUpdate.fromJson(value);
case 'TimeEntryModelLinksUpdateImmediately':
return TimeEntryModelLinksUpdateImmediately.fromJson(value);
case 'TimeEntryModelLinksUser':
return TimeEntryModelLinksUser.fromJson(value);
case 'TimeEntryModelLinksWorkPackage':
return TimeEntryModelLinksWorkPackage.fromJson(value);
case 'TypeModel':
return TypeModel.fromJson(value);
case 'TypeModelLinks':
return TypeModelLinks.fromJson(value);
case 'TypeModelLinksSelf':
return TypeModelLinksSelf.fromJson(value);
case 'UpdateActivityRequest':
return UpdateActivityRequest.fromJson(value);
case 'UpdateActivityRequestComment':
return UpdateActivityRequestComment.fromJson(value);
case 'UpdateUserPreferencesRequest':
return UpdateUserPreferencesRequest.fromJson(value);
case 'UserCollectionModel':
return UserCollectionModel.fromJson(value);
case 'UserCollectionModelAllOfEmbedded':
return UserCollectionModelAllOfEmbedded.fromJson(value);
case 'UserCollectionModelAllOfLinks':
return UserCollectionModelAllOfLinks.fromJson(value);
case 'UserCollectionModelAllOfLinksSelf':
return UserCollectionModelAllOfLinksSelf.fromJson(value);
case 'UserCreateModel':
return UserCreateModel.fromJson(value);
case 'UserModel':
return UserModel.fromJson(value);
case 'UserModelLinks':
return UserModelLinks.fromJson(value);
case 'UserModelLinksDelete':
return UserModelLinksDelete.fromJson(value);
case 'UserModelLinksLock':
return UserModelLinksLock.fromJson(value);
case 'UserModelLinksMemberships':
return UserModelLinksMemberships.fromJson(value);
case 'UserModelLinksSelf':
return UserModelLinksSelf.fromJson(value);
case 'UserModelLinksShowUser':
return UserModelLinksShowUser.fromJson(value);
case 'UserModelLinksUnlock':
return UserModelLinksUnlock.fromJson(value);
case 'UserModelLinksUpdateImmediately':
return UserModelLinksUpdateImmediately.fromJson(value);
case 'ValuesPropertyModel':
return ValuesPropertyModel.fromJson(value);
case 'ValuesPropertyModelLinks':
return ValuesPropertyModelLinks.fromJson(value);
case 'ValuesPropertyModelLinksSchema':
return ValuesPropertyModelLinksSchema.fromJson(value);
case 'ValuesPropertyModelLinksSelf':
return ValuesPropertyModelLinksSelf.fromJson(value);
case 'VersionModel':
return VersionModel.fromJson(value);
case 'VersionModelLinks':
return VersionModelLinks.fromJson(value);
case 'VersionModelLinksAvailableInProjects':
return VersionModelLinksAvailableInProjects.fromJson(value);
case 'VersionModelLinksDefiningProject':
return VersionModelLinksDefiningProject.fromJson(value);
case 'VersionModelLinksSelf':
return VersionModelLinksSelf.fromJson(value);
case 'VersionModelLinksUpdate':
return VersionModelLinksUpdate.fromJson(value);
case 'VersionModelLinksUpdateImmediately':
return VersionModelLinksUpdateImmediately.fromJson(value);
case 'WatchersModel':
return WatchersModel.fromJson(value);
case 'WatchersModelAllOfEmbedded':
return WatchersModelAllOfEmbedded.fromJson(value);
case 'WatchersModelAllOfLinks':
return WatchersModelAllOfLinks.fromJson(value);
case 'WatchersModelAllOfLinksSelf':
return WatchersModelAllOfLinksSelf.fromJson(value);
case 'WeekDayCollectionModel':
return WeekDayCollectionModel.fromJson(value);
case 'WeekDayCollectionModelAllOfEmbedded':
return WeekDayCollectionModelAllOfEmbedded.fromJson(value);
case 'WeekDayCollectionModelAllOfLinks':
return WeekDayCollectionModelAllOfLinks.fromJson(value);
case 'WeekDayCollectionModelAllOfLinksSelf':
return WeekDayCollectionModelAllOfLinksSelf.fromJson(value);
case 'WeekDayCollectionWriteModel':
return WeekDayCollectionWriteModel.fromJson(value);
case 'WeekDayCollectionWriteModelEmbedded':
return WeekDayCollectionWriteModelEmbedded.fromJson(value);
case 'WeekDayModel':
return WeekDayModel.fromJson(value);
case 'WeekDaySelfLinkModel':
return WeekDaySelfLinkModel.fromJson(value);
case 'WeekDaySelfLinkModelSelf':
return WeekDaySelfLinkModelSelf.fromJson(value);
case 'WeekDayWriteModel':
return WeekDayWriteModel.fromJson(value);
case 'WikiPageModel':
return WikiPageModel.fromJson(value);
case 'WikiPageModelLinks':
return WikiPageModelLinks.fromJson(value);
case 'WikiPageModelLinksAddAttachment':
return WikiPageModelLinksAddAttachment.fromJson(value);
case 'WorkPackageModel':
return WorkPackageModel.fromJson(value);
case 'WorkPackageModelDescription':
return WorkPackageModelDescription.fromJson(value);
case 'WorkPackageModelLinks':
return WorkPackageModelLinks.fromJson(value);
case 'WorkPackageModelLinksAddAttachment':
return WorkPackageModelLinksAddAttachment.fromJson(value);
case 'WorkPackageModelLinksAddComment':
return WorkPackageModelLinksAddComment.fromJson(value);
case 'WorkPackageModelLinksAddFileLink':
return WorkPackageModelLinksAddFileLink.fromJson(value);
case 'WorkPackageModelLinksAddRelation':
return WorkPackageModelLinksAddRelation.fromJson(value);
case 'WorkPackageModelLinksAddWatcher':
return WorkPackageModelLinksAddWatcher.fromJson(value);
case 'WorkPackageModelLinksAssignee':
return WorkPackageModelLinksAssignee.fromJson(value);
case 'WorkPackageModelLinksAttachments':
return WorkPackageModelLinksAttachments.fromJson(value);
case 'WorkPackageModelLinksAuthor':
return WorkPackageModelLinksAuthor.fromJson(value);
case 'WorkPackageModelLinksAvailableWatchers':
return WorkPackageModelLinksAvailableWatchers.fromJson(value);
case 'WorkPackageModelLinksBudget':
return WorkPackageModelLinksBudget.fromJson(value);
case 'WorkPackageModelLinksCategory':
return WorkPackageModelLinksCategory.fromJson(value);
case 'WorkPackageModelLinksFileLinks':
return WorkPackageModelLinksFileLinks.fromJson(value);
case 'WorkPackageModelLinksParent':
return WorkPackageModelLinksParent.fromJson(value);
case 'WorkPackageModelLinksPreviewMarkup':
return WorkPackageModelLinksPreviewMarkup.fromJson(value);
case 'WorkPackageModelLinksPriority':
return WorkPackageModelLinksPriority.fromJson(value);
case 'WorkPackageModelLinksProject':
return WorkPackageModelLinksProject.fromJson(value);
case 'WorkPackageModelLinksRelations':
return WorkPackageModelLinksRelations.fromJson(value);
case 'WorkPackageModelLinksRemoveWatcher':
return WorkPackageModelLinksRemoveWatcher.fromJson(value);
case 'WorkPackageModelLinksResponsible':
return WorkPackageModelLinksResponsible.fromJson(value);
case 'WorkPackageModelLinksRevisions':
return WorkPackageModelLinksRevisions.fromJson(value);
case 'WorkPackageModelLinksSchema':
return WorkPackageModelLinksSchema.fromJson(value);
case 'WorkPackageModelLinksSelf':
return WorkPackageModelLinksSelf.fromJson(value);
case 'WorkPackageModelLinksStatus':
return WorkPackageModelLinksStatus.fromJson(value);
case 'WorkPackageModelLinksTimeEntries':
return WorkPackageModelLinksTimeEntries.fromJson(value);
case 'WorkPackageModelLinksType':
return WorkPackageModelLinksType.fromJson(value);
case 'WorkPackageModelLinksUnwatch':
return WorkPackageModelLinksUnwatch.fromJson(value);
case 'WorkPackageModelLinksUpdate':
return WorkPackageModelLinksUpdate.fromJson(value);
case 'WorkPackageModelLinksUpdateImmediately':
return WorkPackageModelLinksUpdateImmediately.fromJson(value);
case 'WorkPackageModelLinksVersion':
return WorkPackageModelLinksVersion.fromJson(value);
case 'WorkPackageModelLinksWatch':
return WorkPackageModelLinksWatch.fromJson(value);
case 'WorkPackageModelLinksWatchers':
return WorkPackageModelLinksWatchers.fromJson(value);
case 'WorkPackagePatchModel':
return WorkPackagePatchModel.fromJson(value);
case 'WorkPackagePatchModelLinks':
return WorkPackagePatchModelLinks.fromJson(value);
case 'WorkPackagesModel':
return WorkPackagesModel.fromJson(value);
case 'WorkPackagesModelAllOfEmbedded':
return WorkPackagesModelAllOfEmbedded.fromJson(value);
case 'WorkPackagesModelAllOfLinks':
return WorkPackagesModelAllOfLinks.fromJson(value);
case 'WorkPackagesModelAllOfLinksSelf':
return WorkPackagesModelAllOfLinksSelf.fromJson(value);
default:
dynamic match;
if (value is List && (match = _regList.firstMatch(targetType)?.group(1)) != null) {
return value
.map<dynamic>((dynamic v) => fromJson(v, match, growable: growable,))
.toList(growable: growable);
}
if (value is Set && (match = _regSet.firstMatch(targetType)?.group(1)) != null) {
return value
.map<dynamic>((dynamic v) => fromJson(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) => fromJson(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> decodeAsync(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
: json.decode(message.json);
}
/// 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.fromJson(
json.decode(message.json),
targetType,
growable: message.growable,
);
}
/// Primarily intended for use in an isolate.
Future<String> serializeAsync(Object? value) async => value == null ? '' : json.encode(value);