A framework for building convergent cross-platform Nextcloud clients using Flutter.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

876 lines
32 KiB

// ignore_for_file: camel_case_types
// ignore_for_file: public_member_api_docs
import 'dart:typed_data';
import 'package:built_collection/built_collection.dart';
import 'package:built_value/built_value.dart';
import 'package:built_value/json_object.dart';
import 'package:built_value/serializer.dart';
import 'package:built_value/standard_json_plugin.dart';
import 'package:dynamite_runtime/content_string.dart';
import 'package:dynamite_runtime/http_client.dart';
import 'package:universal_io/io.dart';
export 'package:dynamite_runtime/http_client.dart';
part 'news.openapi.g.dart';
class NewsResponse<T, U> extends DynamiteResponse<T, U> {
NewsResponse(
super.data,
super.headers,
);
@override
String toString() => 'NewsResponse(data: $data, headers: $headers)';
}
class NewsApiException extends DynamiteApiException {
NewsApiException(
super.statusCode,
super.headers,
super.body,
);
static Future<NewsApiException> fromResponse(final HttpClientResponse response) async {
String body;
try {
body = await response.body;
} on FormatException {
body = 'binary';
}
return NewsApiException(
response.statusCode,
response.responseHeaders,
body,
);
}
@override
String toString() => 'NewsApiException(statusCode: $statusCode, headers: $headers, body: $body)';
}
class NewsClient extends DynamiteClient {
NewsClient(
super.baseURL, {
super.baseHeaders,
super.userAgent,
super.httpClient,
super.cookieJar,
super.authentications,
});
NewsClient.fromClient(final DynamiteClient client)
: super(
client.baseURL,
baseHeaders: client.baseHeaders,
httpClient: client.httpClient,
cookieJar: client.cookieJar,
authentications: client.authentications,
);
Future<NewsSupportedAPIVersions> getSupportedApiVersions() async {
const path = '/index.php/apps/news/api';
final queryParameters = <String, dynamic>{};
final headers = <String, String>{
'Accept': 'application/json',
};
Uint8List? body;
// coverage:ignore-start
if (authentications.where((final a) => a.type == 'http' && a.scheme == 'basic').isNotEmpty) {
headers.addAll(authentications.singleWhere((final a) => a.type == 'http' && a.scheme == 'basic').headers);
} else {
throw Exception('Missing authentication for basic_auth');
}
// coverage:ignore-end
final response = await doRequest(
'get',
Uri(path: path, queryParameters: queryParameters.isNotEmpty ? queryParameters : null).toString(),
headers,
body,
);
if (response.statusCode == 200) {
return _jsonSerializers.deserialize(
await response.jsonBody,
specifiedType: const FullType(NewsSupportedAPIVersions),
)! as NewsSupportedAPIVersions;
}
throw await NewsApiException.fromResponse(response); // coverage:ignore-line
}
Future<NewsListFolders> listFolders() async {
const path = '/index.php/apps/news/api/v1-3/folders';
final queryParameters = <String, dynamic>{};
final headers = <String, String>{
'Accept': 'application/json',
};
Uint8List? body;
// coverage:ignore-start
if (authentications.where((final a) => a.type == 'http' && a.scheme == 'basic').isNotEmpty) {
headers.addAll(authentications.singleWhere((final a) => a.type == 'http' && a.scheme == 'basic').headers);
} else {
throw Exception('Missing authentication for basic_auth');
}
// coverage:ignore-end
final response = await doRequest(
'get',
Uri(path: path, queryParameters: queryParameters.isNotEmpty ? queryParameters : null).toString(),
headers,
body,
);
if (response.statusCode == 200) {
return _jsonSerializers.deserialize(await response.jsonBody, specifiedType: const FullType(NewsListFolders))!
as NewsListFolders;
}
throw await NewsApiException.fromResponse(response); // coverage:ignore-line
}
Future<NewsListFolders> createFolder({required final String name}) async {
const path = '/index.php/apps/news/api/v1-3/folders';
final queryParameters = <String, dynamic>{};
final headers = <String, String>{
'Accept': 'application/json',
};
Uint8List? body;
// coverage:ignore-start
if (authentications.where((final a) => a.type == 'http' && a.scheme == 'basic').isNotEmpty) {
headers.addAll(authentications.singleWhere((final a) => a.type == 'http' && a.scheme == 'basic').headers);
} else {
throw Exception('Missing authentication for basic_auth');
}
// coverage:ignore-end
queryParameters['name'] = name;
final response = await doRequest(
'post',
Uri(path: path, queryParameters: queryParameters.isNotEmpty ? queryParameters : null).toString(),
headers,
body,
);
if (response.statusCode == 200) {
return _jsonSerializers.deserialize(await response.jsonBody, specifiedType: const FullType(NewsListFolders))!
as NewsListFolders;
}
throw await NewsApiException.fromResponse(response); // coverage:ignore-line
}
Future renameFolder({
required final int folderId,
required final String name,
}) async {
var path = '/index.php/apps/news/api/v1-3/folders/{folderId}';
final queryParameters = <String, dynamic>{};
final headers = <String, String>{};
Uint8List? body;
// coverage:ignore-start
if (authentications.where((final a) => a.type == 'http' && a.scheme == 'basic').isNotEmpty) {
headers.addAll(authentications.singleWhere((final a) => a.type == 'http' && a.scheme == 'basic').headers);
} else {
throw Exception('Missing authentication for basic_auth');
}
// coverage:ignore-end
path = path.replaceAll('{folderId}', Uri.encodeQueryComponent(folderId.toString()));
queryParameters['name'] = name;
final response = await doRequest(
'put',
Uri(path: path, queryParameters: queryParameters.isNotEmpty ? queryParameters : null).toString(),
headers,
body,
);
if (response.statusCode == 200) {
return;
}
throw await NewsApiException.fromResponse(response); // coverage:ignore-line
}
Future deleteFolder({required final int folderId}) async {
var path = '/index.php/apps/news/api/v1-3/folders/{folderId}';
final queryParameters = <String, dynamic>{};
final headers = <String, String>{};
Uint8List? body;
// coverage:ignore-start
if (authentications.where((final a) => a.type == 'http' && a.scheme == 'basic').isNotEmpty) {
headers.addAll(authentications.singleWhere((final a) => a.type == 'http' && a.scheme == 'basic').headers);
} else {
throw Exception('Missing authentication for basic_auth');
}
// coverage:ignore-end
path = path.replaceAll('{folderId}', Uri.encodeQueryComponent(folderId.toString()));
final response = await doRequest(
'delete',
Uri(path: path, queryParameters: queryParameters.isNotEmpty ? queryParameters : null).toString(),
headers,
body,
);
if (response.statusCode == 200) {
return;
}
throw await NewsApiException.fromResponse(response); // coverage:ignore-line
}
Future markFolderAsRead({
required final int folderId,
required final int newestItemId,
}) async {
var path = '/index.php/apps/news/api/v1-3/folders/{folderId}/read';
final queryParameters = <String, dynamic>{};
final headers = <String, String>{};
Uint8List? body;
// coverage:ignore-start
if (authentications.where((final a) => a.type == 'http' && a.scheme == 'basic').isNotEmpty) {
headers.addAll(authentications.singleWhere((final a) => a.type == 'http' && a.scheme == 'basic').headers);
} else {
throw Exception('Missing authentication for basic_auth');
}
// coverage:ignore-end
path = path.replaceAll('{folderId}', Uri.encodeQueryComponent(folderId.toString()));
queryParameters['newestItemId'] = newestItemId.toString();
final response = await doRequest(
'post',
Uri(path: path, queryParameters: queryParameters.isNotEmpty ? queryParameters : null).toString(),
headers,
body,
);
if (response.statusCode == 200) {
return;
}
throw await NewsApiException.fromResponse(response); // coverage:ignore-line
}
Future<NewsListFeeds> listFeeds() async {
const path = '/index.php/apps/news/api/v1-3/feeds';
final queryParameters = <String, dynamic>{};
final headers = <String, String>{
'Accept': 'application/json',
};
Uint8List? body;
// coverage:ignore-start
if (authentications.where((final a) => a.type == 'http' && a.scheme == 'basic').isNotEmpty) {
headers.addAll(authentications.singleWhere((final a) => a.type == 'http' && a.scheme == 'basic').headers);
} else {
throw Exception('Missing authentication for basic_auth');
}
// coverage:ignore-end
final response = await doRequest(
'get',
Uri(path: path, queryParameters: queryParameters.isNotEmpty ? queryParameters : null).toString(),
headers,
body,
);
if (response.statusCode == 200) {
return _jsonSerializers.deserialize(await response.jsonBody, specifiedType: const FullType(NewsListFeeds))!
as NewsListFeeds;
}
throw await NewsApiException.fromResponse(response); // coverage:ignore-line
}
Future<NewsListFeeds> addFeed({
required final String url,
final int? folderId,
}) async {
const path = '/index.php/apps/news/api/v1-3/feeds';
final queryParameters = <String, dynamic>{};
final headers = <String, String>{
'Accept': 'application/json',
};
Uint8List? body;
// coverage:ignore-start
if (authentications.where((final a) => a.type == 'http' && a.scheme == 'basic').isNotEmpty) {
headers.addAll(authentications.singleWhere((final a) => a.type == 'http' && a.scheme == 'basic').headers);
} else {
throw Exception('Missing authentication for basic_auth');
}
// coverage:ignore-end
queryParameters['url'] = url;
if (folderId != null) {
queryParameters['folderId'] = folderId.toString();
}
final response = await doRequest(
'post',
Uri(path: path, queryParameters: queryParameters.isNotEmpty ? queryParameters : null).toString(),
headers,
body,
);
if (response.statusCode == 200) {
return _jsonSerializers.deserialize(await response.jsonBody, specifiedType: const FullType(NewsListFeeds))!
as NewsListFeeds;
}
throw await NewsApiException.fromResponse(response); // coverage:ignore-line
}
Future deleteFeed({required final int feedId}) async {
var path = '/index.php/apps/news/api/v1-3/feeds/{feedId}';
final queryParameters = <String, dynamic>{};
final headers = <String, String>{};
Uint8List? body;
// coverage:ignore-start
if (authentications.where((final a) => a.type == 'http' && a.scheme == 'basic').isNotEmpty) {
headers.addAll(authentications.singleWhere((final a) => a.type == 'http' && a.scheme == 'basic').headers);
} else {
throw Exception('Missing authentication for basic_auth');
}
// coverage:ignore-end
path = path.replaceAll('{feedId}', Uri.encodeQueryComponent(feedId.toString()));
final response = await doRequest(
'delete',
Uri(path: path, queryParameters: queryParameters.isNotEmpty ? queryParameters : null).toString(),
headers,
body,
);
if (response.statusCode == 200) {
return;
}
throw await NewsApiException.fromResponse(response); // coverage:ignore-line
}
Future moveFeed({
required final int feedId,
final int? folderId,
}) async {
var path = '/index.php/apps/news/api/v1-3/feeds/{feedId}/move';
final queryParameters = <String, dynamic>{};
final headers = <String, String>{};
Uint8List? body;
// coverage:ignore-start
if (authentications.where((final a) => a.type == 'http' && a.scheme == 'basic').isNotEmpty) {
headers.addAll(authentications.singleWhere((final a) => a.type == 'http' && a.scheme == 'basic').headers);
} else {
throw Exception('Missing authentication for basic_auth');
}
// coverage:ignore-end
path = path.replaceAll('{feedId}', Uri.encodeQueryComponent(feedId.toString()));
if (folderId != null) {
queryParameters['folderId'] = folderId.toString();
}
final response = await doRequest(
'post',
Uri(path: path, queryParameters: queryParameters.isNotEmpty ? queryParameters : null).toString(),
headers,
body,
);
if (response.statusCode == 200) {
return;
}
throw await NewsApiException.fromResponse(response); // coverage:ignore-line
}
Future renameFeed({
required final int feedId,
required final String feedTitle,
}) async {
var path = '/index.php/apps/news/api/v1-3/feeds/{feedId}/rename';
final queryParameters = <String, dynamic>{};
final headers = <String, String>{};
Uint8List? body;
// coverage:ignore-start
if (authentications.where((final a) => a.type == 'http' && a.scheme == 'basic').isNotEmpty) {
headers.addAll(authentications.singleWhere((final a) => a.type == 'http' && a.scheme == 'basic').headers);
} else {
throw Exception('Missing authentication for basic_auth');
}
// coverage:ignore-end
path = path.replaceAll('{feedId}', Uri.encodeQueryComponent(feedId.toString()));
queryParameters['feedTitle'] = feedTitle;
final response = await doRequest(
'post',
Uri(path: path, queryParameters: queryParameters.isNotEmpty ? queryParameters : null).toString(),
headers,
body,
);
if (response.statusCode == 200) {
return;
}
throw await NewsApiException.fromResponse(response); // coverage:ignore-line
}
Future markFeedAsRead({
required final int feedId,
required final int newestItemId,
}) async {
var path = '/index.php/apps/news/api/v1-3/feeds/{feedId}/read';
final queryParameters = <String, dynamic>{};
final headers = <String, String>{};
Uint8List? body;
// coverage:ignore-start
if (authentications.where((final a) => a.type == 'http' && a.scheme == 'basic').isNotEmpty) {
headers.addAll(authentications.singleWhere((final a) => a.type == 'http' && a.scheme == 'basic').headers);
} else {
throw Exception('Missing authentication for basic_auth');
}
// coverage:ignore-end
path = path.replaceAll('{feedId}', Uri.encodeQueryComponent(feedId.toString()));
queryParameters['newestItemId'] = newestItemId.toString();
final response = await doRequest(
'post',
Uri(path: path, queryParameters: queryParameters.isNotEmpty ? queryParameters : null).toString(),
headers,
body,
);
if (response.statusCode == 200) {
return;
}
throw await NewsApiException.fromResponse(response); // coverage:ignore-line
}
Future<NewsListArticles> listArticles({
final int type = 3,
final int id = 0,
final int getRead = 1,
final int batchSize = -1,
final int offset = 0,
final int oldestFirst = 0,
}) async {
const path = '/index.php/apps/news/api/v1-3/items';
final queryParameters = <String, dynamic>{};
final headers = <String, String>{
'Accept': 'application/json',
};
Uint8List? body;
// coverage:ignore-start
if (authentications.where((final a) => a.type == 'http' && a.scheme == 'basic').isNotEmpty) {
headers.addAll(authentications.singleWhere((final a) => a.type == 'http' && a.scheme == 'basic').headers);
} else {
throw Exception('Missing authentication for basic_auth');
}
// coverage:ignore-end
if (type != 3) {
queryParameters['type'] = type.toString();
}
if (id != 0) {
queryParameters['id'] = id.toString();
}
if (getRead != 1) {
queryParameters['getRead'] = getRead.toString();
}
if (batchSize != -1) {
queryParameters['batchSize'] = batchSize.toString();
}
if (offset != 0) {
queryParameters['offset'] = offset.toString();
}
if (oldestFirst != 0) {
queryParameters['oldestFirst'] = oldestFirst.toString();
}
final response = await doRequest(
'get',
Uri(path: path, queryParameters: queryParameters.isNotEmpty ? queryParameters : null).toString(),
headers,
body,
);
if (response.statusCode == 200) {
return _jsonSerializers.deserialize(await response.jsonBody, specifiedType: const FullType(NewsListArticles))!
as NewsListArticles;
}
throw await NewsApiException.fromResponse(response); // coverage:ignore-line
}
Future<NewsListArticles> listUpdatedArticles({
final int type = 3,
final int id = 0,
final int lastModified = 0,
}) async {
const path = '/index.php/apps/news/api/v1-3/items/updated';
final queryParameters = <String, dynamic>{};
final headers = <String, String>{
'Accept': 'application/json',
};
Uint8List? body;
// coverage:ignore-start
if (authentications.where((final a) => a.type == 'http' && a.scheme == 'basic').isNotEmpty) {
headers.addAll(authentications.singleWhere((final a) => a.type == 'http' && a.scheme == 'basic').headers);
} else {
throw Exception('Missing authentication for basic_auth');
}
// coverage:ignore-end
if (type != 3) {
queryParameters['type'] = type.toString();
}
if (id != 0) {
queryParameters['id'] = id.toString();
}
if (lastModified != 0) {
queryParameters['lastModified'] = lastModified.toString();
}
final response = await doRequest(
'get',
Uri(path: path, queryParameters: queryParameters.isNotEmpty ? queryParameters : null).toString(),
headers,
body,
);
if (response.statusCode == 200) {
return _jsonSerializers.deserialize(await response.jsonBody, specifiedType: const FullType(NewsListArticles))!
as NewsListArticles;
}
throw await NewsApiException.fromResponse(response); // coverage:ignore-line
}
Future markArticleAsRead({required final int itemId}) async {
var path = '/index.php/apps/news/api/v1-3/items/{itemId}/read';
final queryParameters = <String, dynamic>{};
final headers = <String, String>{};
Uint8List? body;
// coverage:ignore-start
if (authentications.where((final a) => a.type == 'http' && a.scheme == 'basic').isNotEmpty) {
headers.addAll(authentications.singleWhere((final a) => a.type == 'http' && a.scheme == 'basic').headers);
} else {
throw Exception('Missing authentication for basic_auth');
}
// coverage:ignore-end
path = path.replaceAll('{itemId}', Uri.encodeQueryComponent(itemId.toString()));
final response = await doRequest(
'post',
Uri(path: path, queryParameters: queryParameters.isNotEmpty ? queryParameters : null).toString(),
headers,
body,
);
if (response.statusCode == 200) {
return;
}
throw await NewsApiException.fromResponse(response); // coverage:ignore-line
}
Future markArticleAsUnread({required final int itemId}) async {
var path = '/index.php/apps/news/api/v1-3/items/{itemId}/unread';
final queryParameters = <String, dynamic>{};
final headers = <String, String>{};
Uint8List? body;
// coverage:ignore-start
if (authentications.where((final a) => a.type == 'http' && a.scheme == 'basic').isNotEmpty) {
headers.addAll(authentications.singleWhere((final a) => a.type == 'http' && a.scheme == 'basic').headers);
} else {
throw Exception('Missing authentication for basic_auth');
}
// coverage:ignore-end
path = path.replaceAll('{itemId}', Uri.encodeQueryComponent(itemId.toString()));
final response = await doRequest(
'post',
Uri(path: path, queryParameters: queryParameters.isNotEmpty ? queryParameters : null).toString(),
headers,
body,
);
if (response.statusCode == 200) {
return;
}
throw await NewsApiException.fromResponse(response); // coverage:ignore-line
}
Future starArticle({required final int itemId}) async {
var path = '/index.php/apps/news/api/v1-3/items/{itemId}/star';
final queryParameters = <String, dynamic>{};
final headers = <String, String>{};
Uint8List? body;
// coverage:ignore-start
if (authentications.where((final a) => a.type == 'http' && a.scheme == 'basic').isNotEmpty) {
headers.addAll(authentications.singleWhere((final a) => a.type == 'http' && a.scheme == 'basic').headers);
} else {
throw Exception('Missing authentication for basic_auth');
}
// coverage:ignore-end
path = path.replaceAll('{itemId}', Uri.encodeQueryComponent(itemId.toString()));
final response = await doRequest(
'post',
Uri(path: path, queryParameters: queryParameters.isNotEmpty ? queryParameters : null).toString(),
headers,
body,
);
if (response.statusCode == 200) {
return;
}
throw await NewsApiException.fromResponse(response); // coverage:ignore-line
}
Future unstarArticle({required final int itemId}) async {
var path = '/index.php/apps/news/api/v1-3/items/{itemId}/unstar';
final queryParameters = <String, dynamic>{};
final headers = <String, String>{};
Uint8List? body;
// coverage:ignore-start
if (authentications.where((final a) => a.type == 'http' && a.scheme == 'basic').isNotEmpty) {
headers.addAll(authentications.singleWhere((final a) => a.type == 'http' && a.scheme == 'basic').headers);
} else {
throw Exception('Missing authentication for basic_auth');
}
// coverage:ignore-end
path = path.replaceAll('{itemId}', Uri.encodeQueryComponent(itemId.toString()));
final response = await doRequest(
'post',
Uri(path: path, queryParameters: queryParameters.isNotEmpty ? queryParameters : null).toString(),
headers,
body,
);
if (response.statusCode == 200) {
return;
}
throw await NewsApiException.fromResponse(response); // coverage:ignore-line
}
}
abstract class NewsSupportedAPIVersions implements Built<NewsSupportedAPIVersions, NewsSupportedAPIVersionsBuilder> {
factory NewsSupportedAPIVersions([final void Function(NewsSupportedAPIVersionsBuilder)? b]) =
_$NewsSupportedAPIVersions;
// coverage:ignore-start
const NewsSupportedAPIVersions._();
// coverage:ignore-end
// coverage:ignore-start
factory NewsSupportedAPIVersions.fromJson(final Map<String, dynamic> json) =>
_jsonSerializers.deserializeWith(serializer, json)!;
// coverage:ignore-end
// coverage:ignore-start
Map<String, dynamic> toJson() => _jsonSerializers.serializeWith(serializer, this)! as Map<String, dynamic>;
// coverage:ignore-end
BuiltList<String>? get apiLevels;
static Serializer<NewsSupportedAPIVersions> get serializer => _$newsSupportedAPIVersionsSerializer;
}
abstract class NewsArticle implements Built<NewsArticle, NewsArticleBuilder> {
factory NewsArticle([final void Function(NewsArticleBuilder)? b]) = _$NewsArticle;
// coverage:ignore-start
const NewsArticle._();
// coverage:ignore-end
// coverage:ignore-start
factory NewsArticle.fromJson(final Map<String, dynamic> json) => _jsonSerializers.deserializeWith(serializer, json)!;
// coverage:ignore-end
// coverage:ignore-start
Map<String, dynamic> toJson() => _jsonSerializers.serializeWith(serializer, this)! as Map<String, dynamic>;
// coverage:ignore-end
int get id;
String get guid;
String get guidHash;
String? get url;
String get title;
String? get author;
int get pubDate;
int? get updatedDate;
String get body;
String? get enclosureMime;
String? get enclosureLink;
String? get mediaThumbnail;
String? get mediaDescription;
int get feedId;
bool get unread;
bool get starred;
int get lastModified;
bool get rtl;
String get fingerprint;
String get contentHash;
static Serializer<NewsArticle> get serializer => _$newsArticleSerializer;
}
abstract class NewsFeed implements Built<NewsFeed, NewsFeedBuilder> {
factory NewsFeed([final void Function(NewsFeedBuilder)? b]) = _$NewsFeed;
// coverage:ignore-start
const NewsFeed._();
// coverage:ignore-end
// coverage:ignore-start
factory NewsFeed.fromJson(final Map<String, dynamic> json) => _jsonSerializers.deserializeWith(serializer, json)!;
// coverage:ignore-end
// coverage:ignore-start
Map<String, dynamic> toJson() => _jsonSerializers.serializeWith(serializer, this)! as Map<String, dynamic>;
// coverage:ignore-end
int get id;
String get url;
String get title;
String? get faviconLink;
int get added;
int? get folderId;
int? get unreadCount;
int get ordering;
String? get link;
bool get pinned;
int get updateErrorCount;
String? get lastUpdateError;
BuiltList<NewsArticle> get items;
static Serializer<NewsFeed> get serializer => _$newsFeedSerializer;
}
abstract class NewsFolder implements Built<NewsFolder, NewsFolderBuilder> {
factory NewsFolder([final void Function(NewsFolderBuilder)? b]) = _$NewsFolder;
// coverage:ignore-start
const NewsFolder._();
// coverage:ignore-end
// coverage:ignore-start
factory NewsFolder.fromJson(final Map<String, dynamic> json) => _jsonSerializers.deserializeWith(serializer, json)!;
// coverage:ignore-end
// coverage:ignore-start
Map<String, dynamic> toJson() => _jsonSerializers.serializeWith(serializer, this)! as Map<String, dynamic>;
// coverage:ignore-end
int get id;
String get name;
bool get opened;
/// This seems to be broken. In testing it is always empty
BuiltList<NewsFeed> get feeds;
static Serializer<NewsFolder> get serializer => _$newsFolderSerializer;
}
abstract class NewsListFolders implements Built<NewsListFolders, NewsListFoldersBuilder> {
factory NewsListFolders([final void Function(NewsListFoldersBuilder)? b]) = _$NewsListFolders;
// coverage:ignore-start
const NewsListFolders._();
// coverage:ignore-end
// coverage:ignore-start
factory NewsListFolders.fromJson(final Map<String, dynamic> json) =>
_jsonSerializers.deserializeWith(serializer, json)!;
// coverage:ignore-end
// coverage:ignore-start
Map<String, dynamic> toJson() => _jsonSerializers.serializeWith(serializer, this)! as Map<String, dynamic>;
// coverage:ignore-end
BuiltList<NewsFolder> get folders;
static Serializer<NewsListFolders> get serializer => _$newsListFoldersSerializer;
}
abstract class NewsListFeeds implements Built<NewsListFeeds, NewsListFeedsBuilder> {
factory NewsListFeeds([final void Function(NewsListFeedsBuilder)? b]) = _$NewsListFeeds;
// coverage:ignore-start
const NewsListFeeds._();
// coverage:ignore-end
// coverage:ignore-start
factory NewsListFeeds.fromJson(final Map<String, dynamic> json) =>
_jsonSerializers.deserializeWith(serializer, json)!;
// coverage:ignore-end
// coverage:ignore-start
Map<String, dynamic> toJson() => _jsonSerializers.serializeWith(serializer, this)! as Map<String, dynamic>;
// coverage:ignore-end
int? get starredCount;
int? get newestItemId;
BuiltList<NewsFeed> get feeds;
static Serializer<NewsListFeeds> get serializer => _$newsListFeedsSerializer;
}
abstract class NewsListArticles implements Built<NewsListArticles, NewsListArticlesBuilder> {
factory NewsListArticles([final void Function(NewsListArticlesBuilder)? b]) = _$NewsListArticles;
// coverage:ignore-start
const NewsListArticles._();
// coverage:ignore-end
// coverage:ignore-start
factory NewsListArticles.fromJson(final Map<String, dynamic> json) =>
_jsonSerializers.deserializeWith(serializer, json)!;
// coverage:ignore-end
// coverage:ignore-start
Map<String, dynamic> toJson() => _jsonSerializers.serializeWith(serializer, this)! as Map<String, dynamic>;
// coverage:ignore-end
BuiltList<NewsArticle> get items;
static Serializer<NewsListArticles> get serializer => _$newsListArticlesSerializer;
}
abstract class NewsOCSMeta implements Built<NewsOCSMeta, NewsOCSMetaBuilder> {
factory NewsOCSMeta([final void Function(NewsOCSMetaBuilder)? b]) = _$NewsOCSMeta;
// coverage:ignore-start
const NewsOCSMeta._();
// coverage:ignore-end
// coverage:ignore-start
factory NewsOCSMeta.fromJson(final Map<String, dynamic> json) => _jsonSerializers.deserializeWith(serializer, json)!;
// coverage:ignore-end
// coverage:ignore-start
Map<String, dynamic> toJson() => _jsonSerializers.serializeWith(serializer, this)! as Map<String, dynamic>;
// coverage:ignore-end
String get status;
int get statuscode;
String? get message;
String? get totalitems;
String? get itemsperpage;
static Serializer<NewsOCSMeta> get serializer => _$newsOCSMetaSerializer;
}
abstract class NewsEmptyOCS_Ocs implements Built<NewsEmptyOCS_Ocs, NewsEmptyOCS_OcsBuilder> {
factory NewsEmptyOCS_Ocs([final void Function(NewsEmptyOCS_OcsBuilder)? b]) = _$NewsEmptyOCS_Ocs;
// coverage:ignore-start
const NewsEmptyOCS_Ocs._();
// coverage:ignore-end
// coverage:ignore-start
factory NewsEmptyOCS_Ocs.fromJson(final Map<String, dynamic> json) =>
_jsonSerializers.deserializeWith(serializer, json)!;
// coverage:ignore-end
// coverage:ignore-start
Map<String, dynamic> toJson() => _jsonSerializers.serializeWith(serializer, this)! as Map<String, dynamic>;
// coverage:ignore-end
NewsOCSMeta get meta;
BuiltList<JsonObject> get data;
static Serializer<NewsEmptyOCS_Ocs> get serializer => _$newsEmptyOCSOcsSerializer;
}
abstract class NewsEmptyOCS implements Built<NewsEmptyOCS, NewsEmptyOCSBuilder> {
factory NewsEmptyOCS([final void Function(NewsEmptyOCSBuilder)? b]) = _$NewsEmptyOCS;
// coverage:ignore-start
const NewsEmptyOCS._();
// coverage:ignore-end
// coverage:ignore-start
factory NewsEmptyOCS.fromJson(final Map<String, dynamic> json) => _jsonSerializers.deserializeWith(serializer, json)!;
// coverage:ignore-end
// coverage:ignore-start
Map<String, dynamic> toJson() => _jsonSerializers.serializeWith(serializer, this)! as Map<String, dynamic>;
// coverage:ignore-end
NewsEmptyOCS_Ocs get ocs;
static Serializer<NewsEmptyOCS> get serializer => _$newsEmptyOCSSerializer;
}
// coverage:ignore-start
final Serializers _serializers = (Serializers().toBuilder()
..addBuilderFactory(const FullType(NewsSupportedAPIVersions), NewsSupportedAPIVersions.new)
..add(NewsSupportedAPIVersions.serializer)
..addBuilderFactory(const FullType(BuiltList, [FullType(String)]), ListBuilder<String>.new)
..addBuilderFactory(const FullType(NewsListFolders), NewsListFolders.new)
..add(NewsListFolders.serializer)
..addBuilderFactory(const FullType(NewsFolder), NewsFolder.new)
..add(NewsFolder.serializer)
..addBuilderFactory(const FullType(NewsFeed), NewsFeed.new)
..add(NewsFeed.serializer)
..addBuilderFactory(const FullType(NewsArticle), NewsArticle.new)
..add(NewsArticle.serializer)
..addBuilderFactory(const FullType(BuiltList, [FullType(NewsArticle)]), ListBuilder<NewsArticle>.new)
..addBuilderFactory(const FullType(BuiltList, [FullType(NewsFeed)]), ListBuilder<NewsFeed>.new)
..addBuilderFactory(const FullType(BuiltList, [FullType(NewsFolder)]), ListBuilder<NewsFolder>.new)
..addBuilderFactory(const FullType(NewsListFeeds), NewsListFeeds.new)
..add(NewsListFeeds.serializer)
..addBuilderFactory(const FullType(NewsListArticles), NewsListArticles.new)
..add(NewsListArticles.serializer)
..addBuilderFactory(const FullType(NewsOCSMeta), NewsOCSMeta.new)
..add(NewsOCSMeta.serializer)
..addBuilderFactory(const FullType(NewsEmptyOCS), NewsEmptyOCS.new)
..add(NewsEmptyOCS.serializer)
..addBuilderFactory(const FullType(NewsEmptyOCS_Ocs), NewsEmptyOCS_Ocs.new)
..add(NewsEmptyOCS_Ocs.serializer)
..addBuilderFactory(const FullType(BuiltList, [FullType(JsonObject)]), ListBuilder<JsonObject>.new))
.build();
Serializers get newsSerializers => _serializers;
final Serializers _jsonSerializers = (_serializers.toBuilder()
..addPlugin(StandardJsonPlugin())
..addPlugin(const ContentStringPlugin()))
.build();
T deserializeNews<T>(final Object data) => _serializers.deserialize(data, specifiedType: FullType(T))! as T;
Object? serializeNews<T>(final T data) => _serializers.serialize(data, specifiedType: FullType(T));
// coverage:ignore-end