chore: add missing api properties on sync enums (#18916)

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
This commit is contained in:
shenlong 2025-06-04 18:51:34 +05:30 committed by GitHub
parent 2da94439c7
commit 70b9a4c8f1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 31 additions and 31 deletions

View file

@ -7,6 +7,7 @@ import 'package:immich_mobile/infrastructure/entities/remote_asset.entity.drift.
import 'package:immich_mobile/infrastructure/entities/user.entity.drift.dart';
import 'package:immich_mobile/infrastructure/repositories/db.repository.dart';
import 'package:logging/logging.dart';
import 'package:openapi/api.dart' as api show AssetVisibility;
import 'package:openapi/api.dart' hide AssetVisibility;
class DriftSyncStreamRepository extends DriftDatabaseRepository
@ -231,22 +232,22 @@ class DriftSyncStreamRepository extends DriftDatabaseRepository
});
}
extension on SyncAssetV1TypeEnum {
extension on AssetTypeEnum {
AssetType toAssetType() => switch (this) {
SyncAssetV1TypeEnum.IMAGE => AssetType.image,
SyncAssetV1TypeEnum.VIDEO => AssetType.video,
SyncAssetV1TypeEnum.AUDIO => AssetType.audio,
SyncAssetV1TypeEnum.OTHER => AssetType.other,
_ => throw Exception('Unknown SyncAssetV1TypeEnum value: $this'),
AssetTypeEnum.IMAGE => AssetType.image,
AssetTypeEnum.VIDEO => AssetType.video,
AssetTypeEnum.AUDIO => AssetType.audio,
AssetTypeEnum.OTHER => AssetType.other,
_ => throw Exception('Unknown AssetType value: $this'),
};
}
extension on SyncAssetV1VisibilityEnum {
extension on api.AssetVisibility {
AssetVisibility toAssetVisibility() => switch (this) {
SyncAssetV1VisibilityEnum.timeline => AssetVisibility.timeline,
SyncAssetV1VisibilityEnum.hidden => AssetVisibility.hidden,
SyncAssetV1VisibilityEnum.archive => AssetVisibility.archive,
SyncAssetV1VisibilityEnum.locked => AssetVisibility.locked,
_ => throw Exception('Unknown SyncAssetV1VisibilityEnum value: $this'),
api.AssetVisibility.timeline => AssetVisibility.timeline,
api.AssetVisibility.hidden => AssetVisibility.hidden,
api.AssetVisibility.archive => AssetVisibility.archive,
api.AssetVisibility.locked => AssetVisibility.locked,
_ => throw Exception('Unknown AssetVisibility value: $this'),
};
}

Binary file not shown.

Binary file not shown.

View file

@ -12988,11 +12988,11 @@
"type": "string"
},
"role": {
"enum": [
"editor",
"viewer"
],
"type": "string"
"allOf": [
{
"$ref": "#/components/schemas/AlbumUserRole"
}
]
},
"userId": {
"type": "string"
@ -13241,22 +13241,18 @@
"type": "string"
},
"type": {
"enum": [
"IMAGE",
"VIDEO",
"AUDIO",
"OTHER"
],
"type": "string"
"allOf": [
{
"$ref": "#/components/schemas/AssetTypeEnum"
}
]
},
"visibility": {
"enum": [
"archive",
"timeline",
"hidden",
"locked"
],
"type": "string"
"allOf": [
{
"$ref": "#/components/schemas/AssetVisibility"
}
]
}
},
"required": [

View file

@ -65,9 +65,11 @@ export class SyncAssetV1 {
fileCreatedAt!: Date | null;
fileModifiedAt!: Date | null;
localDateTime!: Date | null;
@ApiProperty({ enumName: 'AssetTypeEnum', enum: AssetType })
type!: AssetType;
deletedAt!: Date | null;
isFavorite!: boolean;
@ApiProperty({ enumName: 'AssetVisibility', enum: AssetVisibility })
visibility!: AssetVisibility;
}
@ -125,6 +127,7 @@ export class SyncAlbumUserDeleteV1 {
export class SyncAlbumUserV1 {
albumId!: string;
userId!: string;
@ApiProperty({ enumName: 'AlbumUserRole', enum: AlbumUserRole })
role!: AlbumUserRole;
}