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

Binary file not shown.

Binary file not shown.

View file

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

View file

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