This commit is contained in:
mertalev 2025-05-04 19:26:09 -04:00
parent 97cc9e223e
commit 8837f5b4fb
No known key found for this signature in database
GPG Key ID: DF6ABC77AAD98C95
10 changed files with 75 additions and 477 deletions

View File

@ -478,10 +478,7 @@ Class | Method | HTTP request | Description
- [TemplateResponseDto](doc//TemplateResponseDto.md) - [TemplateResponseDto](doc//TemplateResponseDto.md)
- [TestEmailResponseDto](doc//TestEmailResponseDto.md) - [TestEmailResponseDto](doc//TestEmailResponseDto.md)
- [TimeBucketAssetResponseDto](doc//TimeBucketAssetResponseDto.md) - [TimeBucketAssetResponseDto](doc//TimeBucketAssetResponseDto.md)
- [TimeBucketResponseDto](doc//TimeBucketResponseDto.md)
- [TimeBucketsResponseDto](doc//TimeBucketsResponseDto.md) - [TimeBucketsResponseDto](doc//TimeBucketsResponseDto.md)
- [TimelineAssetDescriptionDto](doc//TimelineAssetDescriptionDto.md)
- [TimelineStackResponseDto](doc//TimelineStackResponseDto.md)
- [ToneMapping](doc//ToneMapping.md) - [ToneMapping](doc//ToneMapping.md)
- [TranscodeHWAccel](doc//TranscodeHWAccel.md) - [TranscodeHWAccel](doc//TranscodeHWAccel.md)
- [TranscodePolicy](doc//TranscodePolicy.md) - [TranscodePolicy](doc//TranscodePolicy.md)

View File

@ -282,10 +282,7 @@ part 'model/template_dto.dart';
part 'model/template_response_dto.dart'; part 'model/template_response_dto.dart';
part 'model/test_email_response_dto.dart'; part 'model/test_email_response_dto.dart';
part 'model/time_bucket_asset_response_dto.dart'; part 'model/time_bucket_asset_response_dto.dart';
part 'model/time_bucket_response_dto.dart';
part 'model/time_buckets_response_dto.dart'; part 'model/time_buckets_response_dto.dart';
part 'model/timeline_asset_description_dto.dart';
part 'model/timeline_stack_response_dto.dart';
part 'model/tone_mapping.dart'; part 'model/tone_mapping.dart';
part 'model/transcode_hw_accel.dart'; part 'model/transcode_hw_accel.dart';
part 'model/transcode_policy.dart'; part 'model/transcode_policy.dart';

View File

@ -141,7 +141,7 @@ class TimelineApi {
/// * [bool] withPartners: /// * [bool] withPartners:
/// ///
/// * [bool] withStacked: /// * [bool] withStacked:
Future<TimeBucketResponseDto?> getTimeBucket(String timeBucket, { String? albumId, bool? isArchived, bool? isFavorite, bool? isTrashed, String? key, AssetOrder? order, num? page, num? pageSize, String? personId, String? tagId, String? userId, bool? withPartners, bool? withStacked, }) async { Future<TimeBucketAssetResponseDto?> getTimeBucket(String timeBucket, { String? albumId, bool? isArchived, bool? isFavorite, bool? isTrashed, String? key, AssetOrder? order, num? page, num? pageSize, String? personId, String? tagId, String? userId, bool? withPartners, bool? withStacked, }) async {
final response = await getTimeBucketWithHttpInfo(timeBucket, albumId: albumId, isArchived: isArchived, isFavorite: isFavorite, isTrashed: isTrashed, key: key, order: order, page: page, pageSize: pageSize, personId: personId, tagId: tagId, userId: userId, withPartners: withPartners, withStacked: withStacked, ); final response = await getTimeBucketWithHttpInfo(timeBucket, albumId: albumId, isArchived: isArchived, isFavorite: isFavorite, isTrashed: isTrashed, key: key, order: order, page: page, pageSize: pageSize, personId: personId, tagId: tagId, userId: userId, withPartners: withPartners, withStacked: withStacked, );
if (response.statusCode >= HttpStatus.badRequest) { if (response.statusCode >= HttpStatus.badRequest) {
throw ApiException(response.statusCode, await _decodeBodyBytes(response)); throw ApiException(response.statusCode, await _decodeBodyBytes(response));
@ -150,7 +150,7 @@ class TimelineApi {
// At the time of writing this, `dart:convert` will throw an "Unexpected end of input" // At the time of writing this, `dart:convert` will throw an "Unexpected end of input"
// FormatException when trying to decode an empty string. // FormatException when trying to decode an empty string.
if (response.body.isNotEmpty && response.statusCode != HttpStatus.noContent) { if (response.body.isNotEmpty && response.statusCode != HttpStatus.noContent) {
return await apiClient.deserializeAsync(await _decodeBodyBytes(response), 'TimeBucketResponseDto',) as TimeBucketResponseDto; return await apiClient.deserializeAsync(await _decodeBodyBytes(response), 'TimeBucketAssetResponseDto',) as TimeBucketAssetResponseDto;
} }
return null; return null;

View File

@ -620,14 +620,8 @@ class ApiClient {
return TestEmailResponseDto.fromJson(value); return TestEmailResponseDto.fromJson(value);
case 'TimeBucketAssetResponseDto': case 'TimeBucketAssetResponseDto':
return TimeBucketAssetResponseDto.fromJson(value); return TimeBucketAssetResponseDto.fromJson(value);
case 'TimeBucketResponseDto':
return TimeBucketResponseDto.fromJson(value);
case 'TimeBucketsResponseDto': case 'TimeBucketsResponseDto':
return TimeBucketsResponseDto.fromJson(value); return TimeBucketsResponseDto.fromJson(value);
case 'TimelineAssetDescriptionDto':
return TimelineAssetDescriptionDto.fromJson(value);
case 'TimelineStackResponseDto':
return TimelineStackResponseDto.fromJson(value);
case 'ToneMapping': case 'ToneMapping':
return ToneMappingTypeTransformer().decode(value); return ToneMappingTypeTransformer().decode(value);
case 'TranscodeHWAccel': case 'TranscodeHWAccel':

View File

@ -13,24 +13,27 @@ part of openapi.api;
class TimeBucketAssetResponseDto { class TimeBucketAssetResponseDto {
/// Returns a new [TimeBucketAssetResponseDto] instance. /// Returns a new [TimeBucketAssetResponseDto] instance.
TimeBucketAssetResponseDto({ TimeBucketAssetResponseDto({
this.description = const [], this.city = const [],
this.country = const [],
this.duration = const [], this.duration = const [],
this.id = const [], this.id = const [],
this.isArchived = const [], this.isArchived = const [],
this.isFavorite = const [], this.isFavorite = const [],
this.isImage = const [], this.isImage = const [],
this.isTrashed = const [], this.isTrashed = const [],
this.isVideo = const [],
this.livePhotoVideoId = const [], this.livePhotoVideoId = const [],
this.localDateTime = const [], this.localDateTime = const [],
this.ownerId = const [], this.ownerId = const [],
this.projectionType = const [], this.projectionType = const [],
this.ratio = const [], this.ratio = const [],
this.stack = const [], this.stackCount = const [],
this.stackId = const [],
this.thumbhash = const [], this.thumbhash = const [],
}); });
List<TimelineAssetDescriptionDto> description; List<String> city;
List<String> country;
List<String> duration; List<String> duration;
@ -44,8 +47,6 @@ class TimeBucketAssetResponseDto {
List<num> isTrashed; List<num> isTrashed;
List<num> isVideo;
List<String> livePhotoVideoId; List<String> livePhotoVideoId;
List<String> localDateTime; List<String> localDateTime;
@ -56,66 +57,71 @@ class TimeBucketAssetResponseDto {
List<num> ratio; List<num> ratio;
List<TimelineStackResponseDto> stack; List<num> stackCount;
List<String> stackId;
List<String> thumbhash; List<String> thumbhash;
@override @override
bool operator ==(Object other) => identical(this, other) || other is TimeBucketAssetResponseDto && bool operator ==(Object other) => identical(this, other) || other is TimeBucketAssetResponseDto &&
_deepEquality.equals(other.description, description) && _deepEquality.equals(other.city, city) &&
_deepEquality.equals(other.country, country) &&
_deepEquality.equals(other.duration, duration) && _deepEquality.equals(other.duration, duration) &&
_deepEquality.equals(other.id, id) && _deepEquality.equals(other.id, id) &&
_deepEquality.equals(other.isArchived, isArchived) && _deepEquality.equals(other.isArchived, isArchived) &&
_deepEquality.equals(other.isFavorite, isFavorite) && _deepEquality.equals(other.isFavorite, isFavorite) &&
_deepEquality.equals(other.isImage, isImage) && _deepEquality.equals(other.isImage, isImage) &&
_deepEquality.equals(other.isTrashed, isTrashed) && _deepEquality.equals(other.isTrashed, isTrashed) &&
_deepEquality.equals(other.isVideo, isVideo) &&
_deepEquality.equals(other.livePhotoVideoId, livePhotoVideoId) && _deepEquality.equals(other.livePhotoVideoId, livePhotoVideoId) &&
_deepEquality.equals(other.localDateTime, localDateTime) && _deepEquality.equals(other.localDateTime, localDateTime) &&
_deepEquality.equals(other.ownerId, ownerId) && _deepEquality.equals(other.ownerId, ownerId) &&
_deepEquality.equals(other.projectionType, projectionType) && _deepEquality.equals(other.projectionType, projectionType) &&
_deepEquality.equals(other.ratio, ratio) && _deepEquality.equals(other.ratio, ratio) &&
_deepEquality.equals(other.stack, stack) && _deepEquality.equals(other.stackCount, stackCount) &&
_deepEquality.equals(other.stackId, stackId) &&
_deepEquality.equals(other.thumbhash, thumbhash); _deepEquality.equals(other.thumbhash, thumbhash);
@override @override
int get hashCode => int get hashCode =>
// ignore: unnecessary_parenthesis // ignore: unnecessary_parenthesis
(description.hashCode) + (city.hashCode) +
(country.hashCode) +
(duration.hashCode) + (duration.hashCode) +
(id.hashCode) + (id.hashCode) +
(isArchived.hashCode) + (isArchived.hashCode) +
(isFavorite.hashCode) + (isFavorite.hashCode) +
(isImage.hashCode) + (isImage.hashCode) +
(isTrashed.hashCode) + (isTrashed.hashCode) +
(isVideo.hashCode) +
(livePhotoVideoId.hashCode) + (livePhotoVideoId.hashCode) +
(localDateTime.hashCode) + (localDateTime.hashCode) +
(ownerId.hashCode) + (ownerId.hashCode) +
(projectionType.hashCode) + (projectionType.hashCode) +
(ratio.hashCode) + (ratio.hashCode) +
(stack.hashCode) + (stackCount.hashCode) +
(stackId.hashCode) +
(thumbhash.hashCode); (thumbhash.hashCode);
@override @override
String toString() => 'TimeBucketAssetResponseDto[description=$description, duration=$duration, id=$id, isArchived=$isArchived, isFavorite=$isFavorite, isImage=$isImage, isTrashed=$isTrashed, isVideo=$isVideo, livePhotoVideoId=$livePhotoVideoId, localDateTime=$localDateTime, ownerId=$ownerId, projectionType=$projectionType, ratio=$ratio, stack=$stack, thumbhash=$thumbhash]'; String toString() => 'TimeBucketAssetResponseDto[city=$city, country=$country, duration=$duration, id=$id, isArchived=$isArchived, isFavorite=$isFavorite, isImage=$isImage, isTrashed=$isTrashed, livePhotoVideoId=$livePhotoVideoId, localDateTime=$localDateTime, ownerId=$ownerId, projectionType=$projectionType, ratio=$ratio, stackCount=$stackCount, stackId=$stackId, thumbhash=$thumbhash]';
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
final json = <String, dynamic>{}; final json = <String, dynamic>{};
json[r'description'] = this.description; json[r'city'] = this.city;
json[r'country'] = this.country;
json[r'duration'] = this.duration; json[r'duration'] = this.duration;
json[r'id'] = this.id; json[r'id'] = this.id;
json[r'isArchived'] = this.isArchived; json[r'isArchived'] = this.isArchived;
json[r'isFavorite'] = this.isFavorite; json[r'isFavorite'] = this.isFavorite;
json[r'isImage'] = this.isImage; json[r'isImage'] = this.isImage;
json[r'isTrashed'] = this.isTrashed; json[r'isTrashed'] = this.isTrashed;
json[r'isVideo'] = this.isVideo;
json[r'livePhotoVideoId'] = this.livePhotoVideoId; json[r'livePhotoVideoId'] = this.livePhotoVideoId;
json[r'localDateTime'] = this.localDateTime; json[r'localDateTime'] = this.localDateTime;
json[r'ownerId'] = this.ownerId; json[r'ownerId'] = this.ownerId;
json[r'projectionType'] = this.projectionType; json[r'projectionType'] = this.projectionType;
json[r'ratio'] = this.ratio; json[r'ratio'] = this.ratio;
json[r'stack'] = this.stack; json[r'stackCount'] = this.stackCount;
json[r'stackId'] = this.stackId;
json[r'thumbhash'] = this.thumbhash; json[r'thumbhash'] = this.thumbhash;
return json; return json;
} }
@ -129,7 +135,12 @@ class TimeBucketAssetResponseDto {
final json = value.cast<String, dynamic>(); final json = value.cast<String, dynamic>();
return TimeBucketAssetResponseDto( return TimeBucketAssetResponseDto(
description: TimelineAssetDescriptionDto.listFromJson(json[r'description']), city: json[r'city'] is Iterable
? (json[r'city'] as Iterable).cast<String>().toList(growable: false)
: const [],
country: json[r'country'] is Iterable
? (json[r'country'] as Iterable).cast<String>().toList(growable: false)
: const [],
duration: json[r'duration'] is Iterable duration: json[r'duration'] is Iterable
? (json[r'duration'] as Iterable).cast<String>().toList(growable: false) ? (json[r'duration'] as Iterable).cast<String>().toList(growable: false)
: const [], : const [],
@ -148,9 +159,6 @@ class TimeBucketAssetResponseDto {
isTrashed: json[r'isTrashed'] is Iterable isTrashed: json[r'isTrashed'] is Iterable
? (json[r'isTrashed'] as Iterable).cast<num>().toList(growable: false) ? (json[r'isTrashed'] as Iterable).cast<num>().toList(growable: false)
: const [], : const [],
isVideo: json[r'isVideo'] is Iterable
? (json[r'isVideo'] as Iterable).cast<num>().toList(growable: false)
: const [],
livePhotoVideoId: json[r'livePhotoVideoId'] is Iterable livePhotoVideoId: json[r'livePhotoVideoId'] is Iterable
? (json[r'livePhotoVideoId'] as Iterable).cast<String>().toList(growable: false) ? (json[r'livePhotoVideoId'] as Iterable).cast<String>().toList(growable: false)
: const [], : const [],
@ -166,7 +174,12 @@ class TimeBucketAssetResponseDto {
ratio: json[r'ratio'] is Iterable ratio: json[r'ratio'] is Iterable
? (json[r'ratio'] as Iterable).cast<num>().toList(growable: false) ? (json[r'ratio'] as Iterable).cast<num>().toList(growable: false)
: const [], : const [],
stack: TimelineStackResponseDto.listFromJson(json[r'stack']), stackCount: json[r'stackCount'] is Iterable
? (json[r'stackCount'] as Iterable).cast<num>().toList(growable: false)
: const [],
stackId: json[r'stackId'] is Iterable
? (json[r'stackId'] as Iterable).cast<String>().toList(growable: false)
: const [],
thumbhash: json[r'thumbhash'] is Iterable thumbhash: json[r'thumbhash'] is Iterable
? (json[r'thumbhash'] as Iterable).cast<String>().toList(growable: false) ? (json[r'thumbhash'] as Iterable).cast<String>().toList(growable: false)
: const [], : const [],
@ -217,20 +230,19 @@ class TimeBucketAssetResponseDto {
/// The list of required keys that must be present in a JSON. /// The list of required keys that must be present in a JSON.
static const requiredKeys = <String>{ static const requiredKeys = <String>{
'description', 'city',
'country',
'duration', 'duration',
'id', 'id',
'isArchived', 'isArchived',
'isFavorite', 'isFavorite',
'isImage', 'isImage',
'isTrashed', 'isTrashed',
'isVideo',
'livePhotoVideoId', 'livePhotoVideoId',
'localDateTime', 'localDateTime',
'ownerId', 'ownerId',
'projectionType', 'projectionType',
'ratio', 'ratio',
'stack',
'thumbhash', 'thumbhash',
}; };
} }

View File

@ -1,107 +0,0 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// @dart=2.18
// 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 TimeBucketResponseDto {
/// Returns a new [TimeBucketResponseDto] instance.
TimeBucketResponseDto({
required this.bucketAssets,
required this.hasNextPage,
});
TimeBucketAssetResponseDto bucketAssets;
bool hasNextPage;
@override
bool operator ==(Object other) => identical(this, other) || other is TimeBucketResponseDto &&
other.bucketAssets == bucketAssets &&
other.hasNextPage == hasNextPage;
@override
int get hashCode =>
// ignore: unnecessary_parenthesis
(bucketAssets.hashCode) +
(hasNextPage.hashCode);
@override
String toString() => 'TimeBucketResponseDto[bucketAssets=$bucketAssets, hasNextPage=$hasNextPage]';
Map<String, dynamic> toJson() {
final json = <String, dynamic>{};
json[r'bucketAssets'] = this.bucketAssets;
json[r'hasNextPage'] = this.hasNextPage;
return json;
}
/// Returns a new [TimeBucketResponseDto] instance and imports its values from
/// [value] if it's a [Map], null otherwise.
// ignore: prefer_constructors_over_static_methods
static TimeBucketResponseDto? fromJson(dynamic value) {
upgradeDto(value, "TimeBucketResponseDto");
if (value is Map) {
final json = value.cast<String, dynamic>();
return TimeBucketResponseDto(
bucketAssets: TimeBucketAssetResponseDto.fromJson(json[r'bucketAssets'])!,
hasNextPage: mapValueOfType<bool>(json, r'hasNextPage')!,
);
}
return null;
}
static List<TimeBucketResponseDto> listFromJson(dynamic json, {bool growable = false,}) {
final result = <TimeBucketResponseDto>[];
if (json is List && json.isNotEmpty) {
for (final row in json) {
final value = TimeBucketResponseDto.fromJson(row);
if (value != null) {
result.add(value);
}
}
}
return result.toList(growable: growable);
}
static Map<String, TimeBucketResponseDto> mapFromJson(dynamic json) {
final map = <String, TimeBucketResponseDto>{};
if (json is Map && json.isNotEmpty) {
json = json.cast<String, dynamic>(); // ignore: parameter_assignments
for (final entry in json.entries) {
final value = TimeBucketResponseDto.fromJson(entry.value);
if (value != null) {
map[entry.key] = value;
}
}
}
return map;
}
// maps a json object with a list of TimeBucketResponseDto-objects as value to a dart map
static Map<String, List<TimeBucketResponseDto>> mapListFromJson(dynamic json, {bool growable = false,}) {
final map = <String, List<TimeBucketResponseDto>>{};
if (json is Map && json.isNotEmpty) {
// ignore: parameter_assignments
json = json.cast<String, dynamic>();
for (final entry in json.entries) {
map[entry.key] = TimeBucketResponseDto.listFromJson(entry.value, growable: growable,);
}
}
return map;
}
/// The list of required keys that must be present in a JSON.
static const requiredKeys = <String>{
'bucketAssets',
'hasNextPage',
};
}

View File

@ -1,115 +0,0 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// @dart=2.18
// 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 TimelineAssetDescriptionDto {
/// Returns a new [TimelineAssetDescriptionDto] instance.
TimelineAssetDescriptionDto({
required this.city,
required this.country,
});
String? city;
String? country;
@override
bool operator ==(Object other) => identical(this, other) || other is TimelineAssetDescriptionDto &&
other.city == city &&
other.country == country;
@override
int get hashCode =>
// ignore: unnecessary_parenthesis
(city == null ? 0 : city!.hashCode) +
(country == null ? 0 : country!.hashCode);
@override
String toString() => 'TimelineAssetDescriptionDto[city=$city, country=$country]';
Map<String, dynamic> toJson() {
final json = <String, dynamic>{};
if (this.city != null) {
json[r'city'] = this.city;
} else {
// json[r'city'] = null;
}
if (this.country != null) {
json[r'country'] = this.country;
} else {
// json[r'country'] = null;
}
return json;
}
/// Returns a new [TimelineAssetDescriptionDto] instance and imports its values from
/// [value] if it's a [Map], null otherwise.
// ignore: prefer_constructors_over_static_methods
static TimelineAssetDescriptionDto? fromJson(dynamic value) {
upgradeDto(value, "TimelineAssetDescriptionDto");
if (value is Map) {
final json = value.cast<String, dynamic>();
return TimelineAssetDescriptionDto(
city: mapValueOfType<String>(json, r'city'),
country: mapValueOfType<String>(json, r'country'),
);
}
return null;
}
static List<TimelineAssetDescriptionDto> listFromJson(dynamic json, {bool growable = false,}) {
final result = <TimelineAssetDescriptionDto>[];
if (json is List && json.isNotEmpty) {
for (final row in json) {
final value = TimelineAssetDescriptionDto.fromJson(row);
if (value != null) {
result.add(value);
}
}
}
return result.toList(growable: growable);
}
static Map<String, TimelineAssetDescriptionDto> mapFromJson(dynamic json) {
final map = <String, TimelineAssetDescriptionDto>{};
if (json is Map && json.isNotEmpty) {
json = json.cast<String, dynamic>(); // ignore: parameter_assignments
for (final entry in json.entries) {
final value = TimelineAssetDescriptionDto.fromJson(entry.value);
if (value != null) {
map[entry.key] = value;
}
}
}
return map;
}
// maps a json object with a list of TimelineAssetDescriptionDto-objects as value to a dart map
static Map<String, List<TimelineAssetDescriptionDto>> mapListFromJson(dynamic json, {bool growable = false,}) {
final map = <String, List<TimelineAssetDescriptionDto>>{};
if (json is Map && json.isNotEmpty) {
// ignore: parameter_assignments
json = json.cast<String, dynamic>();
for (final entry in json.entries) {
map[entry.key] = TimelineAssetDescriptionDto.listFromJson(entry.value, growable: growable,);
}
}
return map;
}
/// The list of required keys that must be present in a JSON.
static const requiredKeys = <String>{
'city',
'country',
};
}

View File

@ -1,115 +0,0 @@
//
// AUTO-GENERATED FILE, DO NOT MODIFY!
//
// @dart=2.18
// 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 TimelineStackResponseDto {
/// Returns a new [TimelineStackResponseDto] instance.
TimelineStackResponseDto({
required this.assetCount,
required this.id,
required this.primaryAssetId,
});
num assetCount;
String id;
String primaryAssetId;
@override
bool operator ==(Object other) => identical(this, other) || other is TimelineStackResponseDto &&
other.assetCount == assetCount &&
other.id == id &&
other.primaryAssetId == primaryAssetId;
@override
int get hashCode =>
// ignore: unnecessary_parenthesis
(assetCount.hashCode) +
(id.hashCode) +
(primaryAssetId.hashCode);
@override
String toString() => 'TimelineStackResponseDto[assetCount=$assetCount, id=$id, primaryAssetId=$primaryAssetId]';
Map<String, dynamic> toJson() {
final json = <String, dynamic>{};
json[r'assetCount'] = this.assetCount;
json[r'id'] = this.id;
json[r'primaryAssetId'] = this.primaryAssetId;
return json;
}
/// Returns a new [TimelineStackResponseDto] instance and imports its values from
/// [value] if it's a [Map], null otherwise.
// ignore: prefer_constructors_over_static_methods
static TimelineStackResponseDto? fromJson(dynamic value) {
upgradeDto(value, "TimelineStackResponseDto");
if (value is Map) {
final json = value.cast<String, dynamic>();
return TimelineStackResponseDto(
assetCount: num.parse('${json[r'assetCount']}'),
id: mapValueOfType<String>(json, r'id')!,
primaryAssetId: mapValueOfType<String>(json, r'primaryAssetId')!,
);
}
return null;
}
static List<TimelineStackResponseDto> listFromJson(dynamic json, {bool growable = false,}) {
final result = <TimelineStackResponseDto>[];
if (json is List && json.isNotEmpty) {
for (final row in json) {
final value = TimelineStackResponseDto.fromJson(row);
if (value != null) {
result.add(value);
}
}
}
return result.toList(growable: growable);
}
static Map<String, TimelineStackResponseDto> mapFromJson(dynamic json) {
final map = <String, TimelineStackResponseDto>{};
if (json is Map && json.isNotEmpty) {
json = json.cast<String, dynamic>(); // ignore: parameter_assignments
for (final entry in json.entries) {
final value = TimelineStackResponseDto.fromJson(entry.value);
if (value != null) {
map[entry.key] = value;
}
}
}
return map;
}
// maps a json object with a list of TimelineStackResponseDto-objects as value to a dart map
static Map<String, List<TimelineStackResponseDto>> mapListFromJson(dynamic json, {bool growable = false,}) {
final map = <String, List<TimelineStackResponseDto>>{};
if (json is Map && json.isNotEmpty) {
// ignore: parameter_assignments
json = json.cast<String, dynamic>();
for (final entry in json.entries) {
map[entry.key] = TimelineStackResponseDto.listFromJson(entry.value, growable: growable,);
}
}
return map;
}
/// The list of required keys that must be present in a JSON.
static const requiredKeys = <String>{
'assetCount',
'id',
'primaryAssetId',
};
}

View File

@ -6963,6 +6963,7 @@
"required": false, "required": false,
"in": "query", "in": "query",
"schema": { "schema": {
"minimum": 1,
"type": "number" "type": "number"
} }
}, },
@ -7023,7 +7024,7 @@
"content": { "content": {
"application/json": { "application/json": {
"schema": { "schema": {
"$ref": "#/components/schemas/TimeBucketResponseDto" "$ref": "#/components/schemas/TimeBucketAssetResponseDto"
} }
} }
}, },
@ -13561,146 +13562,128 @@
}, },
"TimeBucketAssetResponseDto": { "TimeBucketAssetResponseDto": {
"properties": { "properties": {
"description": { "city": {
"default": [],
"items": { "items": {
"$ref": "#/components/schemas/TimelineAssetDescriptionDto" "nullable": true,
"type": "string"
},
"type": "array"
},
"country": {
"items": {
"nullable": true,
"type": "string"
}, },
"type": "array" "type": "array"
}, },
"duration": { "duration": {
"default": [],
"items": { "items": {
"nullable": true,
"type": "string" "type": "string"
}, },
"type": "array" "type": "array"
}, },
"id": { "id": {
"default": [],
"items": { "items": {
"type": "string" "type": "string"
}, },
"type": "array" "type": "array"
}, },
"isArchived": { "isArchived": {
"default": [],
"items": { "items": {
"type": "number" "type": "number"
}, },
"type": "array" "type": "array"
}, },
"isFavorite": { "isFavorite": {
"default": [],
"items": { "items": {
"type": "number" "type": "number"
}, },
"type": "array" "type": "array"
}, },
"isImage": { "isImage": {
"default": [],
"items": { "items": {
"type": "number" "type": "number"
}, },
"type": "array" "type": "array"
}, },
"isTrashed": { "isTrashed": {
"default": [],
"items": {
"type": "number"
},
"type": "array"
},
"isVideo": {
"default": [],
"items": { "items": {
"type": "number" "type": "number"
}, },
"type": "array" "type": "array"
}, },
"livePhotoVideoId": { "livePhotoVideoId": {
"default": [],
"items": { "items": {
"nullable": true,
"type": "string" "type": "string"
}, },
"type": "array" "type": "array"
}, },
"localDateTime": { "localDateTime": {
"default": [],
"items": { "items": {
"type": "string" "type": "string"
}, },
"type": "array" "type": "array"
}, },
"ownerId": { "ownerId": {
"default": [],
"items": { "items": {
"type": "string" "type": "string"
}, },
"type": "array" "type": "array"
}, },
"projectionType": { "projectionType": {
"default": [],
"items": { "items": {
"nullable": true,
"type": "string" "type": "string"
}, },
"type": "array" "type": "array"
}, },
"ratio": { "ratio": {
"default": [],
"items": { "items": {
"type": "number" "type": "number"
}, },
"type": "array" "type": "array"
}, },
"stack": { "stackCount": {
"default": [],
"items": { "items": {
"$ref": "#/components/schemas/TimelineStackResponseDto" "type": "number"
},
"type": "array"
},
"stackId": {
"items": {
"nullable": true,
"type": "string"
}, },
"type": "array" "type": "array"
}, },
"thumbhash": { "thumbhash": {
"default": [],
"items": { "items": {
"nullable": true,
"type": "string" "type": "string"
}, },
"type": "array" "type": "array"
} }
}, },
"required": [ "required": [
"description", "city",
"country",
"duration", "duration",
"id", "id",
"isArchived", "isArchived",
"isFavorite", "isFavorite",
"isImage", "isImage",
"isTrashed", "isTrashed",
"isVideo",
"livePhotoVideoId", "livePhotoVideoId",
"localDateTime", "localDateTime",
"ownerId", "ownerId",
"projectionType", "projectionType",
"ratio", "ratio",
"stack",
"thumbhash" "thumbhash"
], ],
"type": "object" "type": "object"
}, },
"TimeBucketResponseDto": {
"properties": {
"bucketAssets": {
"$ref": "#/components/schemas/TimeBucketAssetResponseDto"
},
"hasNextPage": {
"type": "boolean"
}
},
"required": [
"bucketAssets",
"hasNextPage"
],
"type": "object"
},
"TimeBucketsResponseDto": { "TimeBucketsResponseDto": {
"properties": { "properties": {
"count": { "count": {
@ -13716,42 +13699,6 @@
], ],
"type": "object" "type": "object"
}, },
"TimelineAssetDescriptionDto": {
"properties": {
"city": {
"nullable": true,
"type": "string"
},
"country": {
"nullable": true,
"type": "string"
}
},
"required": [
"city",
"country"
],
"type": "object"
},
"TimelineStackResponseDto": {
"properties": {
"assetCount": {
"type": "number"
},
"id": {
"type": "string"
},
"primaryAssetId": {
"type": "string"
}
},
"required": [
"assetCount",
"id",
"primaryAssetId"
],
"type": "object"
},
"ToneMapping": { "ToneMapping": {
"enum": [ "enum": [
"hable", "hable",

View File

@ -1384,35 +1384,23 @@ export type TagBulkAssetsResponseDto = {
export type TagUpdateDto = { export type TagUpdateDto = {
color?: string | null; color?: string | null;
}; };
export type TimelineAssetDescriptionDto = {
city: string | null;
country: string | null;
};
export type TimelineStackResponseDto = {
assetCount: number;
id: string;
primaryAssetId: string;
};
export type TimeBucketAssetResponseDto = { export type TimeBucketAssetResponseDto = {
description: TimelineAssetDescriptionDto[]; city: (string | null)[];
duration: string[]; country: (string | null)[];
duration: (string | null)[];
id: string[]; id: string[];
isArchived: number[]; isArchived: number[];
isFavorite: number[]; isFavorite: number[];
isImage: number[]; isImage: number[];
isTrashed: number[]; isTrashed: number[];
isVideo: number[]; livePhotoVideoId: (string | null)[];
livePhotoVideoId: string[];
localDateTime: string[]; localDateTime: string[];
ownerId: string[]; ownerId: string[];
projectionType: string[]; projectionType: (string | null)[];
ratio: number[]; ratio: number[];
stack: TimelineStackResponseDto[]; stackCount?: number[];
thumbhash: string[]; stackId?: (string | null)[];
}; thumbhash: (string | null)[];
export type TimeBucketResponseDto = {
bucketAssets: TimeBucketAssetResponseDto;
hasNextPage: boolean;
}; };
export type TimeBucketsResponseDto = { export type TimeBucketsResponseDto = {
count: number; count: number;
@ -3290,7 +3278,7 @@ export function getTimeBucket({ albumId, isArchived, isFavorite, isTrashed, key,
}, opts?: Oazapfts.RequestOpts) { }, opts?: Oazapfts.RequestOpts) {
return oazapfts.ok(oazapfts.fetchJson<{ return oazapfts.ok(oazapfts.fetchJson<{
status: 200; status: 200;
data: TimeBucketResponseDto; data: TimeBucketAssetResponseDto;
}>(`/timeline/bucket${QS.query(QS.explode({ }>(`/timeline/bucket${QS.query(QS.explode({
albumId, albumId,
isArchived, isArchived,