diff --git a/mobile/openapi/README.md b/mobile/openapi/README.md index 0f4786dd55..452a302db1 100644 --- a/mobile/openapi/README.md +++ b/mobile/openapi/README.md @@ -478,10 +478,7 @@ Class | Method | HTTP request | Description - [TemplateResponseDto](doc//TemplateResponseDto.md) - [TestEmailResponseDto](doc//TestEmailResponseDto.md) - [TimeBucketAssetResponseDto](doc//TimeBucketAssetResponseDto.md) - - [TimeBucketResponseDto](doc//TimeBucketResponseDto.md) - [TimeBucketsResponseDto](doc//TimeBucketsResponseDto.md) - - [TimelineAssetDescriptionDto](doc//TimelineAssetDescriptionDto.md) - - [TimelineStackResponseDto](doc//TimelineStackResponseDto.md) - [ToneMapping](doc//ToneMapping.md) - [TranscodeHWAccel](doc//TranscodeHWAccel.md) - [TranscodePolicy](doc//TranscodePolicy.md) diff --git a/mobile/openapi/lib/api.dart b/mobile/openapi/lib/api.dart index 2435be0b47..06086a5749 100644 --- a/mobile/openapi/lib/api.dart +++ b/mobile/openapi/lib/api.dart @@ -282,10 +282,7 @@ part 'model/template_dto.dart'; part 'model/template_response_dto.dart'; part 'model/test_email_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/timeline_asset_description_dto.dart'; -part 'model/timeline_stack_response_dto.dart'; part 'model/tone_mapping.dart'; part 'model/transcode_hw_accel.dart'; part 'model/transcode_policy.dart'; diff --git a/mobile/openapi/lib/api/timeline_api.dart b/mobile/openapi/lib/api/timeline_api.dart index 6513038d40..be678e34b3 100644 --- a/mobile/openapi/lib/api/timeline_api.dart +++ b/mobile/openapi/lib/api/timeline_api.dart @@ -141,7 +141,7 @@ class TimelineApi { /// * [bool] withPartners: /// /// * [bool] withStacked: - Future 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 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, ); if (response.statusCode >= HttpStatus.badRequest) { 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" // FormatException when trying to decode an empty string. 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; diff --git a/mobile/openapi/lib/api_client.dart b/mobile/openapi/lib/api_client.dart index 3bb7460bf9..f9ae2c9d07 100644 --- a/mobile/openapi/lib/api_client.dart +++ b/mobile/openapi/lib/api_client.dart @@ -620,14 +620,8 @@ class ApiClient { return TestEmailResponseDto.fromJson(value); case 'TimeBucketAssetResponseDto': return TimeBucketAssetResponseDto.fromJson(value); - case 'TimeBucketResponseDto': - return TimeBucketResponseDto.fromJson(value); case 'TimeBucketsResponseDto': return TimeBucketsResponseDto.fromJson(value); - case 'TimelineAssetDescriptionDto': - return TimelineAssetDescriptionDto.fromJson(value); - case 'TimelineStackResponseDto': - return TimelineStackResponseDto.fromJson(value); case 'ToneMapping': return ToneMappingTypeTransformer().decode(value); case 'TranscodeHWAccel': diff --git a/mobile/openapi/lib/model/time_bucket_asset_response_dto.dart b/mobile/openapi/lib/model/time_bucket_asset_response_dto.dart index 4e724437d3..e3241d8a4b 100644 --- a/mobile/openapi/lib/model/time_bucket_asset_response_dto.dart +++ b/mobile/openapi/lib/model/time_bucket_asset_response_dto.dart @@ -13,24 +13,27 @@ part of openapi.api; class TimeBucketAssetResponseDto { /// Returns a new [TimeBucketAssetResponseDto] instance. TimeBucketAssetResponseDto({ - this.description = const [], + this.city = const [], + this.country = const [], this.duration = const [], this.id = const [], this.isArchived = const [], this.isFavorite = const [], this.isImage = const [], this.isTrashed = const [], - this.isVideo = const [], this.livePhotoVideoId = const [], this.localDateTime = const [], this.ownerId = const [], this.projectionType = const [], this.ratio = const [], - this.stack = const [], + this.stackCount = const [], + this.stackId = const [], this.thumbhash = const [], }); - List description; + List city; + + List country; List duration; @@ -44,8 +47,6 @@ class TimeBucketAssetResponseDto { List isTrashed; - List isVideo; - List livePhotoVideoId; List localDateTime; @@ -56,66 +57,71 @@ class TimeBucketAssetResponseDto { List ratio; - List stack; + List stackCount; + + List stackId; List thumbhash; @override 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.id, id) && _deepEquality.equals(other.isArchived, isArchived) && _deepEquality.equals(other.isFavorite, isFavorite) && _deepEquality.equals(other.isImage, isImage) && _deepEquality.equals(other.isTrashed, isTrashed) && - _deepEquality.equals(other.isVideo, isVideo) && _deepEquality.equals(other.livePhotoVideoId, livePhotoVideoId) && _deepEquality.equals(other.localDateTime, localDateTime) && _deepEquality.equals(other.ownerId, ownerId) && _deepEquality.equals(other.projectionType, projectionType) && _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); @override int get hashCode => // ignore: unnecessary_parenthesis - (description.hashCode) + + (city.hashCode) + + (country.hashCode) + (duration.hashCode) + (id.hashCode) + (isArchived.hashCode) + (isFavorite.hashCode) + (isImage.hashCode) + (isTrashed.hashCode) + - (isVideo.hashCode) + (livePhotoVideoId.hashCode) + (localDateTime.hashCode) + (ownerId.hashCode) + (projectionType.hashCode) + (ratio.hashCode) + - (stack.hashCode) + + (stackCount.hashCode) + + (stackId.hashCode) + (thumbhash.hashCode); @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 toJson() { final json = {}; - json[r'description'] = this.description; + json[r'city'] = this.city; + json[r'country'] = this.country; json[r'duration'] = this.duration; json[r'id'] = this.id; json[r'isArchived'] = this.isArchived; json[r'isFavorite'] = this.isFavorite; json[r'isImage'] = this.isImage; json[r'isTrashed'] = this.isTrashed; - json[r'isVideo'] = this.isVideo; json[r'livePhotoVideoId'] = this.livePhotoVideoId; json[r'localDateTime'] = this.localDateTime; json[r'ownerId'] = this.ownerId; json[r'projectionType'] = this.projectionType; 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; return json; } @@ -129,7 +135,12 @@ class TimeBucketAssetResponseDto { final json = value.cast(); return TimeBucketAssetResponseDto( - description: TimelineAssetDescriptionDto.listFromJson(json[r'description']), + city: json[r'city'] is Iterable + ? (json[r'city'] as Iterable).cast().toList(growable: false) + : const [], + country: json[r'country'] is Iterable + ? (json[r'country'] as Iterable).cast().toList(growable: false) + : const [], duration: json[r'duration'] is Iterable ? (json[r'duration'] as Iterable).cast().toList(growable: false) : const [], @@ -148,9 +159,6 @@ class TimeBucketAssetResponseDto { isTrashed: json[r'isTrashed'] is Iterable ? (json[r'isTrashed'] as Iterable).cast().toList(growable: false) : const [], - isVideo: json[r'isVideo'] is Iterable - ? (json[r'isVideo'] as Iterable).cast().toList(growable: false) - : const [], livePhotoVideoId: json[r'livePhotoVideoId'] is Iterable ? (json[r'livePhotoVideoId'] as Iterable).cast().toList(growable: false) : const [], @@ -166,7 +174,12 @@ class TimeBucketAssetResponseDto { ratio: json[r'ratio'] is Iterable ? (json[r'ratio'] as Iterable).cast().toList(growable: false) : const [], - stack: TimelineStackResponseDto.listFromJson(json[r'stack']), + stackCount: json[r'stackCount'] is Iterable + ? (json[r'stackCount'] as Iterable).cast().toList(growable: false) + : const [], + stackId: json[r'stackId'] is Iterable + ? (json[r'stackId'] as Iterable).cast().toList(growable: false) + : const [], thumbhash: json[r'thumbhash'] is Iterable ? (json[r'thumbhash'] as Iterable).cast().toList(growable: false) : const [], @@ -217,20 +230,19 @@ class TimeBucketAssetResponseDto { /// The list of required keys that must be present in a JSON. static const requiredKeys = { - 'description', + 'city', + 'country', 'duration', 'id', 'isArchived', 'isFavorite', 'isImage', 'isTrashed', - 'isVideo', 'livePhotoVideoId', 'localDateTime', 'ownerId', 'projectionType', 'ratio', - 'stack', 'thumbhash', }; } diff --git a/mobile/openapi/lib/model/time_bucket_response_dto.dart b/mobile/openapi/lib/model/time_bucket_response_dto.dart deleted file mode 100644 index a79d87474d..0000000000 --- a/mobile/openapi/lib/model/time_bucket_response_dto.dart +++ /dev/null @@ -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 toJson() { - final json = {}; - 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(); - - return TimeBucketResponseDto( - bucketAssets: TimeBucketAssetResponseDto.fromJson(json[r'bucketAssets'])!, - hasNextPage: mapValueOfType(json, r'hasNextPage')!, - ); - } - return null; - } - - static List listFromJson(dynamic json, {bool growable = false,}) { - final result = []; - 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 mapFromJson(dynamic json) { - final map = {}; - if (json is Map && json.isNotEmpty) { - json = json.cast(); // 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> mapListFromJson(dynamic json, {bool growable = false,}) { - final map = >{}; - if (json is Map && json.isNotEmpty) { - // ignore: parameter_assignments - json = json.cast(); - 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 = { - 'bucketAssets', - 'hasNextPage', - }; -} - diff --git a/mobile/openapi/lib/model/timeline_asset_description_dto.dart b/mobile/openapi/lib/model/timeline_asset_description_dto.dart deleted file mode 100644 index 1bfb87fc92..0000000000 --- a/mobile/openapi/lib/model/timeline_asset_description_dto.dart +++ /dev/null @@ -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 toJson() { - final json = {}; - 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(); - - return TimelineAssetDescriptionDto( - city: mapValueOfType(json, r'city'), - country: mapValueOfType(json, r'country'), - ); - } - return null; - } - - static List listFromJson(dynamic json, {bool growable = false,}) { - final result = []; - 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 mapFromJson(dynamic json) { - final map = {}; - if (json is Map && json.isNotEmpty) { - json = json.cast(); // 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> mapListFromJson(dynamic json, {bool growable = false,}) { - final map = >{}; - if (json is Map && json.isNotEmpty) { - // ignore: parameter_assignments - json = json.cast(); - 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 = { - 'city', - 'country', - }; -} - diff --git a/mobile/openapi/lib/model/timeline_stack_response_dto.dart b/mobile/openapi/lib/model/timeline_stack_response_dto.dart deleted file mode 100644 index 132790ef03..0000000000 --- a/mobile/openapi/lib/model/timeline_stack_response_dto.dart +++ /dev/null @@ -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 toJson() { - final json = {}; - 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(); - - return TimelineStackResponseDto( - assetCount: num.parse('${json[r'assetCount']}'), - id: mapValueOfType(json, r'id')!, - primaryAssetId: mapValueOfType(json, r'primaryAssetId')!, - ); - } - return null; - } - - static List listFromJson(dynamic json, {bool growable = false,}) { - final result = []; - 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 mapFromJson(dynamic json) { - final map = {}; - if (json is Map && json.isNotEmpty) { - json = json.cast(); // 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> mapListFromJson(dynamic json, {bool growable = false,}) { - final map = >{}; - if (json is Map && json.isNotEmpty) { - // ignore: parameter_assignments - json = json.cast(); - 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 = { - 'assetCount', - 'id', - 'primaryAssetId', - }; -} - diff --git a/open-api/immich-openapi-specs.json b/open-api/immich-openapi-specs.json index b99c28c23d..ce7fa946e9 100644 --- a/open-api/immich-openapi-specs.json +++ b/open-api/immich-openapi-specs.json @@ -6963,6 +6963,7 @@ "required": false, "in": "query", "schema": { + "minimum": 1, "type": "number" } }, @@ -7023,7 +7024,7 @@ "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TimeBucketResponseDto" + "$ref": "#/components/schemas/TimeBucketAssetResponseDto" } } }, @@ -13561,146 +13562,128 @@ }, "TimeBucketAssetResponseDto": { "properties": { - "description": { - "default": [], + "city": { "items": { - "$ref": "#/components/schemas/TimelineAssetDescriptionDto" + "nullable": true, + "type": "string" + }, + "type": "array" + }, + "country": { + "items": { + "nullable": true, + "type": "string" }, "type": "array" }, "duration": { - "default": [], "items": { + "nullable": true, "type": "string" }, "type": "array" }, "id": { - "default": [], "items": { "type": "string" }, "type": "array" }, "isArchived": { - "default": [], "items": { "type": "number" }, "type": "array" }, "isFavorite": { - "default": [], "items": { "type": "number" }, "type": "array" }, "isImage": { - "default": [], "items": { "type": "number" }, "type": "array" }, "isTrashed": { - "default": [], - "items": { - "type": "number" - }, - "type": "array" - }, - "isVideo": { - "default": [], "items": { "type": "number" }, "type": "array" }, "livePhotoVideoId": { - "default": [], "items": { + "nullable": true, "type": "string" }, "type": "array" }, "localDateTime": { - "default": [], "items": { "type": "string" }, "type": "array" }, "ownerId": { - "default": [], "items": { "type": "string" }, "type": "array" }, "projectionType": { - "default": [], "items": { + "nullable": true, "type": "string" }, "type": "array" }, "ratio": { - "default": [], "items": { "type": "number" }, "type": "array" }, - "stack": { - "default": [], + "stackCount": { "items": { - "$ref": "#/components/schemas/TimelineStackResponseDto" + "type": "number" + }, + "type": "array" + }, + "stackId": { + "items": { + "nullable": true, + "type": "string" }, "type": "array" }, "thumbhash": { - "default": [], "items": { + "nullable": true, "type": "string" }, "type": "array" } }, "required": [ - "description", + "city", + "country", "duration", "id", "isArchived", "isFavorite", "isImage", "isTrashed", - "isVideo", "livePhotoVideoId", "localDateTime", "ownerId", "projectionType", "ratio", - "stack", "thumbhash" ], "type": "object" }, - "TimeBucketResponseDto": { - "properties": { - "bucketAssets": { - "$ref": "#/components/schemas/TimeBucketAssetResponseDto" - }, - "hasNextPage": { - "type": "boolean" - } - }, - "required": [ - "bucketAssets", - "hasNextPage" - ], - "type": "object" - }, "TimeBucketsResponseDto": { "properties": { "count": { @@ -13716,42 +13699,6 @@ ], "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": { "enum": [ "hable", diff --git a/open-api/typescript-sdk/src/fetch-client.ts b/open-api/typescript-sdk/src/fetch-client.ts index 9f163939f6..8680eccf83 100644 --- a/open-api/typescript-sdk/src/fetch-client.ts +++ b/open-api/typescript-sdk/src/fetch-client.ts @@ -1384,35 +1384,23 @@ export type TagBulkAssetsResponseDto = { export type TagUpdateDto = { color?: string | null; }; -export type TimelineAssetDescriptionDto = { - city: string | null; - country: string | null; -}; -export type TimelineStackResponseDto = { - assetCount: number; - id: string; - primaryAssetId: string; -}; export type TimeBucketAssetResponseDto = { - description: TimelineAssetDescriptionDto[]; - duration: string[]; + city: (string | null)[]; + country: (string | null)[]; + duration: (string | null)[]; id: string[]; isArchived: number[]; isFavorite: number[]; isImage: number[]; isTrashed: number[]; - isVideo: number[]; - livePhotoVideoId: string[]; + livePhotoVideoId: (string | null)[]; localDateTime: string[]; ownerId: string[]; - projectionType: string[]; + projectionType: (string | null)[]; ratio: number[]; - stack: TimelineStackResponseDto[]; - thumbhash: string[]; -}; -export type TimeBucketResponseDto = { - bucketAssets: TimeBucketAssetResponseDto; - hasNextPage: boolean; + stackCount?: number[]; + stackId?: (string | null)[]; + thumbhash: (string | null)[]; }; export type TimeBucketsResponseDto = { count: number; @@ -3290,7 +3278,7 @@ export function getTimeBucket({ albumId, isArchived, isFavorite, isTrashed, key, }, opts?: Oazapfts.RequestOpts) { return oazapfts.ok(oazapfts.fetchJson<{ status: 200; - data: TimeBucketResponseDto; + data: TimeBucketAssetResponseDto; }>(`/timeline/bucket${QS.query(QS.explode({ albumId, isArchived,